Hi, I know this might be very late to comment to it, but Bio.SVDSuperimposer does not seem to rotate the proteins to get the lowest RMSD: i get RMSD = 0.2 for chains that when aligned in PyMOL give RMSD = 0.06
here is my code:
fixed = Bio.PDB.Selection.unfold_entities(Bio.PDB.Polypeptide.PPBuilder().build_peptides(Bio.PDB.PDBParser(QUIET = True).get_structure('X' , '1A00_B.pdb') , aa_only = True)[0], 'A')
moving = Bio.PDB.Selection.unfold_entities(Bio.PDB.Polypeptide.PPBuilder().build_peptides(Bio.PDB.PDBParser(QUIET = True).get_structure('X' , '1A00_D.pdb') , aa_only = True)[0], 'A')
sup = Bio.PDB.Superimposer()
sup.set_atoms(fixed , moving)
print(sup.rms)
sup.apply(moving)
print(sup.rms)
OUTPUT:
0.199679715722
0.199679715722
the "sup.apply(moving)" line does not seem to do anything.
Is this the correct way to find the RMSD between two structures in Biopython? is there a better script to write? or a better module to use than Biopython?
Hello j.cossio.diaz!
It appears that your post has been cross-posted to another site: http://stackoverflow.com/questions/34534589
This is typically not recommended as it runs the risk of annoying people in both communities.