Netiquette · Download · News · Gallery · Homepage · DSSR Manual · G-quadruplexes · DSSR-Jmol · DSSR-PyMOL · DSSR Licensing · Video Overview· RNA Covers

Questions and answers > MD simulations

Ruby scripts for the analysis of MD simulation trajectories

(1/1)

xiangjun:
Hi MD practitioners,

Here is the updated release v0.7 of two Ruby scripts that aim to streamline the analysis of MD simulation trajectories with 3DNA. There is also a blog post with more background information, but here are the most relevant:

* Where to download http://3dna.rutgers.edu:8080/data/x3dna_md_v0.7.tar.gz
* How to install (see README file for more information): tar zxvf x3dna_md_v0.7.tar.gz and you will get a directory named x3dna_md_v0.7/, underneath you will find two Ruby scripts:  x3dna_md.rb  and extract_par.rb, and associated data files for testing and verification purpose.
* How to run x3dna_md.rb: this script needs to be run first. Detailed help message (with -h) is shown below:
---------------------------------------------------------------------- Usage: x3dna_md.rb options Examples: x3dna_md.rb -b bpfile.dat -e sample_md0.pdb # 21 models (0-21); output (default): 'x3dna_md.out' # also generate 'model_list.dat', see below x3dna_md.rb -b bpfile.dat -m model_list.dat -o x3dna_md2.out # diff x3dna_md.out x3dna_md2.out x3dna_md.rb -b bpfile.dat -p 'pdbdir/model_*.pdb' -o x3dna_md3.out # note the quote for -p option; 20 models (1-20) # also also generate 'pdb_list.dat', see below x3dna_md.rb -b bpfile.dat -l pdb_list.dat -o x3dna_md4.out # diff x3dna_md3.out x3dna_md4.out # note the order of PDB files: 1, 10..19, 2, 20, 3..9 Options: ---------------------------------------------------------------------- --bpfile, -b <s>: File containing base-pairing info (as generated from find_pair, and EDITED as appropriate) --outfile, -o <s>: Output file name (default: x3dna_md.out) --ensemble, -e <s>: Model ensemble in pairs --models, -m <s>: Explicit list of model numbers --pattern, -p <s>: Pattern of PDB files to process (e.g., *.pdb) --list, -l <s>: Explicit list of individual PDB file --version, -v: Print version and exit --help, -h: Show this message Note specifically that an input file with base-pairing (-b) information must be provided, which can be easily generated using find_pair and then manually edited as necessary. Needless to say, the base-pair file specified with -b must match the pairing configuration in each model of the ensemble. The input can be conveniently supplied with one of four options (-e, -m, -p, -l), allowing for great flexibility. Importantly, for the -e and -m options, each model in the ensemble must be delimited by an MODEL/ENDMDL pair, as clearly documented in the Coordinate Section of the PDB format.

The output file contains a comprehensive set of 3DNA calculated parameters, each enclosed in an xml-style tag pair; e.g., <propeller>...</propeller>. Each parameter is arranged in a tab-delimited m-by-n matrix, where m is the number of models, and n is the number of base-pairs or steps. The default file name is x3dna_md.out and an example is attached.
* How to run extract_par.rb: this script needs to be run after x3dna_md.rb. Detailed help message (with -h) is shown below:
---------------------------------------------------------------------- Usage: extract_par.rb options Examples: extract_par.rb -l # to see a list of all parameters extract_par.rb -p prop # -p 36 also fine (see above); from file 'x3dna_md.out' # for propeller, no need to specify full: -p pr suffices extract_par.rb -p slide -s , -f x3dna_md3.out # comma separated, from file 'x3dna_md3.out', to screen extract_par.rb -p roll -s ' ' -n > roll.dat # space separated, no row-label, to file 'roll.dat' extract_par.rb -a # extract all parameters, each in a separate file # prefixed with 'x3dna_md_': e.g., 'x3dna_md_chi1.out' # run 'extract_par.rb -c' to clean up all generated files extract_par.rb -e 1 -p chi1 # extract the chi torsion angle of strand I, but exclude # those from the two terminal base pairs. For comparison, # run also: extract_par.rb -p chi1 Options: ---------------------------------------------------------------------- --no-1col, -n: Delete the first annotation column --separator, -s <s>: Separator for fields [tab] (default: ) --list, -l: List all parameters --all, -a: Extract all parameters into separate files --clean, -c: Clean up parameter files by the above -a option --par-name, -p <s>: Name of parameter --fromfile, -f <s>: File name with parameters (default: x3dna_md.out) --end-effects, -e : No. of end pairs to ignore (default: 0, 0) --version, -v: Print version and exit --help, -h: Show this message Three sample output files are attached below for reference: propeller.tsv contains propeller of 21 models of a 12-mer in the default tab-delimted format; slide.csv contains roll in comma separated format; and roll.dat in space separated format, without leading label column. The output parameter table is intended to be fed into R/Matlab/Octive/Excel etc for statistical analysis or visualization.
* Acknowledgments: thanks to Aneesh for the final "push"; Alpay for sharing his Python script, and providing an example data set on which the Ruby scripts were tested.

The Ruby scripts takes advantage of William Morgan's Trollop (v1.16.2) (http://trollop.rubyforge.org/) for command line option parsing. To make the scripts self-contained, the single file trollop.rb is included with the distribution.

The scripts were tested with Ruby 1.9.2p0 on Ubuntu Linux (10.04), and 1.8.7 on Mac OS X Snow Leopard.
Enjoy, and do not forget to report back any problems you experience!

Version history

* 2011-01-18: v0.1, first release.
* 2011-02-12: v0.2, fixed a bug with `each': no block given -- thanks to shahabshariati!
* 2011-03-05: v0.3, removed the model_ prefix at the first column of extracted parameter file; added the -e option to delete parameters associated with terminal base-pairs -- thanks to Alpay's suggestions.
* 2011-03-16: v0.4, significant refinement of the scripts (in line of defensive programming) to check for various possible erroneous inputs (e.g., mismatched base-pair file, ensemble not delimited by MODEL/ENDMDL pairs etc); added -d option to make error message more obvious; added a comprehensive README file.
* 2011-04-02: v0.5, added return value checking of system() calls, plus other refinements.
* 2011-05-29: v0.6, refined system-call and pair checking with more informative message.
* 2011-09-30: v0.7, added H-bond and overlap areas parameters, and the -c option in extract_par.rb.
Xiang-Jun

Navigation

[0] Message Index

Created and maintained by Dr. Xiang-Jun Lu [律祥俊] (xiangjun@x3dna.org)
The Bussemaker Laboratory at the Department of Biological Sciences, Columbia University.

Go to full version