A python tool for Classification of ligand conformations based on Torsion angles
ClassTor is a simple python tool for analysis and classification of sampled conformations of a ligand-sized molecule based on dihedral (torsion) angles. It consists of two python modules (classtor_spectrum.py, classtor_classification.py) and an executable analysis script (ClassTor.py), that uses these modules.
./ClassTor.py AngNum [OPTION]
Mandatory argument:
AngNum integer number of torsion angles, must be the first argument. The corresponding
amount of individual two-column files with the dihedral angle value of a torsion per
frame must be labelled X_angles.dat
, where X
is the letter of a labeled torsion starting
with a
. 0 < AngNum <= 26
Optional arguments:
preparation:
-pa STR path to location of torsion angle files (default: current directory ./
)
-x when specified, the last line of every torsion angle file is taken as a reference value and is
only included for comparison calculations to that reference structure, not for the generation
of each torsion angle spectrum or classification
(default: not specified)
spectrum:
-gk INT width of the gaussian kernel used for convoluting the frequency of each torsion angle value
when generating the corresponding spectrum
(default: 15)
-t INT number of adjacent data points considered for the detection of relative extrema (minima
and maxima) and the characterization of the course at the spectrum borders (around -180°
and +180°)
(default: 20)
classification:
-f STR string of letters separated by whitespace specifying a subset of torsions used for
classification, e.g. when only the most flexible torsions should be considered.
If not specified, all AngNum torsions are considered
(default: not specified)
-m when specified, the class members of each class are added to the classification output file
summary_classification.log to a separate line under the corresponding class
(default: not specified)
subset extraction - ClassTor's perturbational approach:
-ss INT size of the conformer subset extracted after classification
(default: 10)
-sr INT specifies the first reference classifier for the perturbational subset extraction:
0 < INT <= highest class-ID: the classifier of the specified class-ID is used (first reference
is always included in the subset)
0: the average classifier is determined out of all classes obtained after classification and used
as a first reference (default; will be included in the subset if the average classifier matches
an obtained classifier of the classification)
-1: the classifier of a random class (0 < INT <= highest class-ID) is used
-sr STR specifies the order in which all classifiers from the classification are compared to the first
reference (-sr) in the first selection round, options: random, topdown, reverse
"random": shuffle the list of classifiers to randomize the order (default)
"topdown": order is from highest to lowest populated class
"reverse": order is from lowest to highest populated class
clustering:
-c when specified, hierarchical agglomerative clustering is performed with centroid structures
after classification. This is an alternative approach of generating a subset of conformers with
size -ss from the classification results (default: not specified)
Python 2.7.9
numpy 1.16.6
scikit-learn 0.20.4
scipy 1.2.3
matplotlib 2.2.5
Download the analysis script (ClassTor.py) and the two module files (classtor_spectrum.py, classtor_classification.py). Place the module files in your python path. If unsure about the path, you can find out as follows:
pyhthon
import sys
print sys.path
The output is a list of paths included in the python path. The module files are usually located in a directory called .../python2.7/site-packages/.
Meixner, M., Zachmann, M., Metzler, S., Scheerer, J., Zacharias, M., & Antes, I. (2022). Dynamic Docking of Macrocycles in Bound and Unbound Protein Structures with DynaDock. Journal of Chemical Information and Modeling, 62(14), 3426-3441.
ClassTor Copyright (C) 2022 Maximilian Meixner
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.