Python implementation of the TMscore program to compare structures of the same protein.
We provide three classes,
RMSDscoring, that only differ in their default
They are initialised with the file paths to two PDB files:
alignment = tmscoring.TMscore('structure1.pdb', 'structure2.pdb') # Find the optimal alignment alignment.optimise() # Get the TM score: alignment.tmscore(**alignment.get_current_values()) # Get the TM local scores: alignment.tmscore_samples(**alignment.get_current_values()) # RMSD of the protein aligned according to TM score alignment.rmsd(**alignment.get_current_values()) # Returns the transformation matrix between both structures: alignment.get_matrix(**alignment.get_current_values()) # Save the aligned files: alignment.write(outputfile='aligned.pdb', append=True)
The structures can be matched by index (default), or performing a global sequence alignment with Smith-Waterman using a match score of 2, mismatch of -1, a gap penalty of -0.5 for opening and -0.1 for extending.
get_tm(path_to_pdb1, path_to_pdb2) and
get_rmsd(pdb1, pdb2) are simple wrappers that compute TM score or RMSD.
What is different?
tmscoring is a Python library that conveniently exposes all the necessary variables. This removes the necessity to parse files.
Also, the minimisation engine is MINUIT's Migrad, a powerful and robust derivative-free minimisation algorithm,
heavily tested by particle physicists for decades.
In our testing,
tmscoring yields the same or slightly better scores than upstream