of course: i can apply the transform to ALL the mobile structure's atoms, THEN filter for the ligand's atoms. thanks João!
PDB:4DMN is a HIV-1 integrase structure with a bound ligand (PDB:0L9). i want to bring this ligand into alignment with another, reference structure PDB:3AO1.
i can do alignments of the two structures, and i can identify the ligand's heteroatoms by checking the residue.get_full_id() tags. but there are obviously no CA atoms to associated with the ligand to use as references for Superimposer to use for alignment. So i figure i need to do it in two steps: first align the two structures, then use the transform found by Superimposer on the ligand.
but i don't know how to do the second bit? thanks for any hints,
Rik
2 answers
Hi there,
Cross-posting from the Biopython mailing lists.
Superimposer() will give you the rotation/translation matrix you need to superimpose the two structures. Then you just need to apply them selectively to the atoms you want (with Superimposer.apply).
This script posted on github will do this and an additional sequence alignment step necessary when the two proteins are not exactly the same, in order to get matching atoms to perform the superimposition on.
Hi,
You could use the Protein Comparison Tool at RCSB PDB for this: e.g. take a look at this result. You could download the PDB file of the two aligned structures (including the ligand)
http://www.rcsb.org/pdb/workbench/showPrecalcAlignment.do?action=pw_fatcat&name1=4DMN.A&name2=3AO1.A
(underlying the web-ui is BioJava)
thanks Andreas! i knew of but hadn't used this nice PDB tool. but i need to be able to add this step to a larger script so the BioJava version might be what i need.
see documentation here:
https://github.com/biojava/biojava-tutorial/blob/master/structure/alignment.md
Log in to answer this question.
poking at PyMOL, i seem to be able to do what i want using its
matrix_copycommand:but i want to do it in bioPython!