Distance-Fluctuations
Distance Fluctuation (DF) Analysis
Giorgio Colombo Group (UNIPV)
What DF matrices are?
The analysis of the results of a MD simulation can performed using the Distance Fluctuation matrices (DF), based on the Coordination Propensity hypothesis:
low CP values, corresponding to low pair-distance fluctuations, highlight groups of residues that move in a mechanically coordinated way.
How to use the script
• Requisites
- Python 3.0 (or newer version)
- Numpy
- Scipy
• Usage
The script can analyze a MD trajectory and identify the coordinated motions between residues. It can then filter the output matrix based on the distance to identify long-range coordinated motions.
The script can work both using only C-alphas (using either a pdb or a xyz file) or the sidechains (using a pdb file).
For more information run:
python3 distance_fluctuation.py -h
optional arguments: -h, --help show this help message and exit Required arguments: -ext {pdb,xyz}, --file_ext {pdb,xyz} Input trajectory file iformat (options: .pdb or .xyz) -n N_AA, --n_aa N_AA Number of aminoacids in each frame of the .pdb trajectory Optional arguments: -i IN_NAME, --in_name IN_NAME Name of the trajectory file (default: trj) -s S_FRAME, --s_frame S_FRAME Index of the initial frame (default = 0) -e E_FRAME, --e_frame E_FRAME Index of the last frame (default = end) -c CUTOFF, --cutoff CUTOFF Cutoff for the distance fluctuation analysis (default = 5) -t TOLERANCE, --tolerance TOLERANCE Tolerance for the distance fluctuation analysis (default = 0) -p {all,c-a}, --pdb_type {all,c-a} Type of pdb file submitted (only C-alpha, all protein atoms) -l {s,seq,v,volume}, --local {s,seq,v,volume} Type of local cutoff used, sequence or volume (default = seq) -r RADIUS, --radius RADIUS Radius of the area cutoff (default = 7A) -rs RES_START, --res_start RES_START Starting residue if the PDB does not start with res.num. 1 -ro RMS_OUT, --rms_out RMS_OUT RMS distance output filename (without extension) -ao AVG_OUT, --avg_out AVG_OUT Average distance output filename (without extension) -so SEQ_OUT, --seq_out SEQ_OUT Profile sequence output filename (without extension) -da DIST_AN, --dist_an DIST_AN Distance analysis output filename (without extension) --blocks BLOCKS File with domains borders -rb RMS_B_OUT, --rms_b_out RMS_B_OUT RMS distance blocks output filename
• How to read the output
The script generate different output file.
A) Average Distance (avgdist) file:
The name of the file is avgdist_out_x_y_type.dat with x = start frame of the analysis, y = end frame of the analysis, type = type of analysis (CA or sidechains)
The file contains a matrix using the residue indexes as axes and the average value of the distance between the residues as the data (r1 r2 avgdist).
The distance is calculated as the average of the euclidean distance between the residues.
B) Distance Fluctuation (rmsdist) file:
The name of the file is rmsdist_out_x_y_type.dat with x = start frame of the analysis, y = end frame of the analysis, type = type of analysis (CA or sidechains).
The file contains a matrix using the residue indexes as axes and the distance fluctuation between the residues as the data (r1 r2 rmsdist).
The distance fluctuation is calculated for the residues that are at least 3 residues away from each other (x-2 to x+2) as follow:
1) Calculate the average euclidean distance between the residues (either CA or center of mass)
2) Calculate the average distance vector
3) Substract the distance fluctuation to the average distance
4) Calculate the power of the difference between distance fluctuation and local fluctuation
5) Filter the values of the close residues (1-x, x, 1+x)
6) Divide the obtained value for the number of frames
C) Profile Sequence (profile_sequence) file:
The name of the file is profile_sequence_x_y_type.dat with x = start frame of the analysis, y = end frame of the analysis, type = type of analysis (CA or sidechains).
The file is a vector containing the residue number and the local flucutation value.
The local fluctuation is calculated as the average fluctuation of the residues close to each other (that is the residues ranging from x-2 to x+2 with x = residue number).
Since the value contains the average distance fluctuation for a range of residues the output starts from residue 4 and ends at residue n-3).
D) Distance Analysis (distance_analysis_out) file:
The name of the file is distance_analysis_out_c_x_y_type.dat with c = cutoff value, x = start frame of the analysis, y = end frame of the analysis, type = type of analysis (CA or sidechains).
This fail contains the distance fluctuation filtered by the cutoff value (the value are kept if the distance fluctuation is smaller than the cutoff value).
The cutoff value is calculated as the sum between the nearcutoff and the tolerance value specified by the user.
The nearcutoff can be calcolated either using sequence proximity or 3d proximity and can be specified by command line using the option -l or --local (see the command line help for further details).
In the case of sequence proximity it is calculated as the average of the distance fluctuation value for residues in the range of x-2,x+2 (x = residue index)
In the case of 3d proximity is calculated as the average distance fluctuation of the residues within a certain radius from the current one (default value = 6.5 A)
E) Blocks Averaging: (rmsdist_out_b)
It is possible to obtain a distance fluctuation matrix average on protein domains ( or blocks).
The script requires an input file with the borders of the protein blocks defined by the user, in the form of two columns: the first with the lower limit and the second with the upper limit.
References
Morra, G.; Potestio, R.; Micheletti, C.; Colombo, G., Corresponding Functional Dynamics across the Hsp90 Chaperone Family: Insights from a Multiscale Analysis of MD Simulations, PLOS Computational Biology 8(3): e1002433. https://doi.org/10.1371/journal.pcbi.1002433