The following source code is obtained from the above link:
import Bio.PDB # Select what residues numbers you wish to align # and put them in a list start_id = 1 end_id = 70 atoms_to_be_aligned = range(start_id, end_id + 1) # Start the parser pdb_parser = Bio.PDB.PDBParser(QUIET = True) # Get the structures ref_structure = pdb_parser.get_structure("reference", "c:/home/bbq_input_pdb/pdb1a6j.pdb") sample_structure = pdb_parser.get_structure("sample", "c:/home/bbq_output_pdb/1a6j.pdb") # Use the first model in the pdb-files for alignment # Change the number 0 if you want to align to another structure ref_model = ref_structure sample_model = sample_structure # Make a list of the atoms (in the structures) you wish to align. # In this case we use CA atoms whose index is in the specified range ref_atoms =  sample_atoms =  # Iterate of all chains in the model in order to find all residues for ref_chain in ref_model: # Iterate of all residues in each model in order to find proper atoms for ref_res in ref_chain: # Check if residue number ( .get_id() ) is in the list if ref_res.get_id() in atoms_to_be_aligned: # Append CA atom to list ref_atoms.append(ref_res['CA']) # Do the same for the sample structure for sample_chain in sample_model: for sample_res in sample_chain: if sample_res.get_id() in atoms_to_be_aligned: sample_atoms.append(sample_res['CA']) # Now we initiate the superimposer: super_imposer = Bio.PDB.Superimposer() super_imposer.set_atoms(ref_atoms, sample_atoms) super_imposer.apply(sample_model.get_atoms()) # Print RMSD: print("RMSD = ", super_imposer.rms) ## Save the aligned version of 1UBQ.pdb #io = Bio.PDB.PDBIO() #io.set_structure(sample_structure) #io.save("1UBQ_aligned.pdb")
This source code compares two PDB protein files and computes their RMSD values.
However, I observed that:
- This tool gives different values than that of PyMOL with the same files
Can anyone tell me where the bug is, as I cannot locate it?
Note: It shows values even if we compare a file with itself - in PyMOL, it is not possible to compare a file with itself