¿Cómo obtengo la "posición de la cámara" actual en PyMol para poder reutilizarla en scripts?

Tengo algunos modelos de proteínas de los que quiero fotografiar con varios ligandos unidos. Sería bueno si pudiera hacerlo desde la misma "posición", pero la única forma que puedo encontrar para repetir la misma vista es con zoom resi. 64, 152, 150o similar, que no está tan bien enmarcada.

¿Cómo puedo colocar manualmente la ventana gráfica, capturar sus parámetros y repetirlos en el script?


He encontrado get_view , por ejemplo

PyMOL>get_view
### cut below here and paste into script ###
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.497009277,\
     0.741809845,    7.078243256,   16.473480225,\
   329.157806396,  505.836212158,  -20.000000000 )
### cut above here and paste into script ###

pero esto no funciona en un .pyscript, donde necesito modificarlo cmd.set_view(...), ya que se queja de que solo quiere (o hasta 5) argumentos, no 18. La wiki es vaga al respecto , solo dice

API PYMOL

cmd.set_view(string-or-sequence view)

Respuestas (1)

Intente pasar la matriz como una Cadena que contiene 18 flotantes separados por comas, por ejemplo, como

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.497009277,\
     0.741809845,    7.078243256,   16.473480225,\
   329.157806396,  505.836212158,  -20.000000000 ''')

cmd.get_view()parece devolver una tupla, por lo que tendrá que convertir eso en una Cadena si desea pasar la misma posición a cmd.set_view().

Lo probé en Pymol 1.3 en la línea de comando (aunque no en un script) y pareció funcionar.

Ah, supongo que si traduje la "línea de comando/formulario interactivo" de los comandos a la versión API, también debería haber mantenido esos paréntesis que get_viewregresan para que estén realmente anidados (para que le pases una tupla). se vería comocmd.set_view((1,2,3...))
Tenga en cuenta que es posible que también desee utilizar get_viewporty viewporten caso de que no solo necesite la misma perspectiva, sino también los mismos rellenos en el límite exterior.
Debo agregar que get_viewparece estar indocumentado en este momento. Me funciona con PyMOL 1.5. Parece que este o un comando relacionado no funciona de manera confiable en todas las situaciones. También puede leer mail-archive.com/pymol-users@lists.sourceforge.net/…