Question:
Comment obtenir la "position de la caméra" actuelle dans PyMol pour pouvoir la réutiliser dans des scripts?
Nick T
2012-01-20 10:29:52 UTC
view on stackexchange narkive permalink

J'ai quelques modèles de protéines sur lesquels je veux prendre des photos avec différents ligands liés. Ce serait bien si je pouvais le faire à partir de la même "position", mais la seule façon que je peux comprendre pour répéter la même vue est avec zoom resi. 64, 152, 150 ou autre, qui n'est pas très bien encadré.

Comment puis-je positionner manuellement la fenêtre, capturer ses paramètres et la répéter dans le script?


J'ai trouvé get_view , par exemple

  PyMOL>get_view ### couper ci-dessous ici et coller dans le script ### set_view (\ 0.590180993, 0.670941532, 0.448923886, \ -0.507570565, 0.740831316, -0.439937204, \ -0.6277747774, 0.0317825452, 0.0317825452, \ 0.000000000, 0.000000000, -417.497009277, \ 0.741809845, 7.078243256, 16.473480225, \ 329.157806396, 505.836212158, -20.000000000) ### couper ci-dessus ici et coller dans le script ###  

mais ce n'est pas le cas ne fonctionne pas dans un script .py , où je dois le modifier en cmd.set_view (...) , car il se plaint qu'il veut juste (ou jusqu'à 5 ) arguments, pas 18. Le wiki est vague à ce sujet, il dit simplement

API PYMOL

  cmd.set_view (string -ou-vue séquentielle)  
Un répondre:
Mad Scientist
2012-01-20 19:10:58 UTC
view on stackexchange narkive permalink

Essayez de transmettre la matrice sous la forme d'une chaîne contenant 18 flottants séparés par des virgules, par exemple comme

  cmd.set_view ('' '0.590180993, 0.670941532, 0.448923886, \ -0.507570565, 0.740831316, -0.439937204, \ -0.627747774, 0.031782545, 0.777776182, \ 0.000000000, 0.000000000, -417.417.417. 0.741809845, 7.078243256, 16.473480225, \ 329.157806396, 505.836212158, -20.000000000 '' ')  

cmd.get_view () semble renvoyer un tuple, donc vous devez le convertir en String si vous voulez passer la même position à cmd.set_view().

Je l'ai essayé dans Pymol 1.3 sur la ligne de commande (pas dans un script cependant) et cela semblait fonctionner.

Ah, je suppose que si j'ai traduit la "ligne de commande / formulaire interactif" des commandes dans la version API, j'aurais également dû garder ces parenthèses que `get_view` renvoie pour qu'elles soient vraiment imbriquées (vous lui passez donc un tuple) . Ressemblerait à `cmd.set_view ((1,2,3 ...))`
Notez que vous voudrez peut-être également utiliser `get_viewport` et` viewport` au cas où vous auriez non seulement besoin de la même perspective, mais aussi des mêmes rembourrages jusqu'à la limite extérieure.
Je devrais ajouter que `get_view` semble être non documenté pour le moment. Cela fonctionne pour moi avec PyMOL 1.5. Il semble que ceci ou une commande associée ne fonctionne pas de manière fiable dans toutes les situations. Vous pouvez également consulter https://www.mail-archive.com/pymol-users@lists.sourceforge.net/msg08419.html


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...