[chimerax-users] Get atom from selection string in script
Thibault TUBIANA
thibault.tubiana at i2bc.paris-saclay.fr
Mon Oct 31 06:52:16 PDT 2022
Hi!
I would like to create a function to copy the torsion angle from a model to another one.
The function would take in argument the model ID of the reference and target model (<int>) and the residue id (<int>).
I looked a bit at the scripts available in [ https://rbvi.github.io/chimerax-recipes/ | https://rbvi.github.io/chimerax-recipes/ ] to have an idea of how to add function in ChimeraX, but I'm currently stuck at "how to get the list of atoms from a selection string ?".
Here's my current script
from chimerax.core.commands import run
def copy_torsion(session, model1, model2, residue):
selection = f"torsion #{model2}:{residue}@n,ca,c:{residue+1}@n"
from chimerax.atomic import AtomsArg
atoms = AtomsArg(selection)
from chimerax.geometry import dihedral
cur_torsion = dihedral([*a.scene_coord for a in atoms])
torsion=run(session, f"torsion #{model1}:{residue}@n,ca,c:{residue+1}@n {cur_torsion}")
def register_command(logger):
from chimerax.core.commands import CmdDesc, register, FloatArg, IntArg, BoolArg, Color8Arg, StringArg
from chimerax.atomic import AtomsArg
desc = CmdDesc(required = [
('model1', IntArg),
('model2', IntArg),
('residue', IntArg),
],
synopsis='Copy torsion angle')
register('copyTorsion', desc, copy_torsion, logger=logger)
register_command(session)
Thank you for your help :)
Best regards,
Thibault.
--
Thibault Tubiana, PhD
Postdoctoral Fellow @ [ https://www.i2bc.paris-saclay.fr/equipe-interactions-and-assembly-mechanisms-of-proteins-and-peptides/ | IMAPP ]
Institute for integrative biology of the cell ( [ https://www.i2bc.paris-saclay.fr/ | I2BC ] ) - CNRS UMR 9198
CEA Saclay, 91191 Gif sur Yvette - Bât 532 pce 34
Web Site: [ http://www.tubiana.me/ | http://www.tubiana.me/ ]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.rbvi.ucsf.edu/pipermail/chimerax-users/attachments/20221031/3c12aed6/attachment.html>
More information about the ChimeraX-users
mailing list