3DNA Forum

Welcome => Feature requests => Topic started by: acolasanti on December 28, 2011, 04:17:37 pm

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

Title: Align multi-model (NMR) structures
Post by: acolasanti on December 28, 2011, 04:17:37 pm
I know that 3DNA has some commands for multi-model NMR files such as nmr_ensemble  for visualization and nmr_strs  for analysis.  I have a suggestion on a new feature for multi-model NMR files, some sort of alignment command to align on each model's reference frame.  I performed this by hand as an example using the following

- Split the multi-model file into individual pdb files, 1 for each model
- for each model...
  - find_pair on the structure
  - rotate_mol using the ref_frame.dat file from find_pair


The pairing is consistent in all of the models but we have to run find_pair on each structure in order to get the reference frame data.  I have attached 2 images to the example.

2KEI_org_v1 shows the structures framed on Base pair 1 of model 1, the other models are kept in the same relation to this model as they were in the original pdb file (probably some sort of Ca rms).  I rotated the structures 90deg about BP1 minor groove for better visualization.
(http://www.imagebucket.net/bucket/is.php?i=10311&img=2KEI_org_v1.jpg)

2KEI_fr1_v1 shows each model aligned on its base pair frame 1, we can see how the other end of the DNA changes if we hold the first pair fixed.
(http://www.imagebucket.net/bucket/is.php?i=10310&img=2KEI_fr1_v1.jpg)

I rotated the structures 90deg about BP1 minor groove for better visualization.

I know that a short python/ruby script can be written to do this but thought it would be a nice feature for the official 3DNA package.

Title: Re: Align multi-model (NMR) structures
Post by: xiangjun on December 28, 2011, 09:09:44 pm
Hi Andrew,

Thanks for this feature request and for providing two sample images -- it would indeed make a nice feature for future release of 3DNA. There are many things I would like to consolidate/refine, and new features to add! This requested feature fits nicely to the overall scheme I have in mind.

Before I can get something for an "official" release of 3DNA v2.1 with this new feature included, I will try to come up with a Ruby script this week for you to try out.

Now to a specific point related to the procedure your outlined:

Quote
I have a suggestion on a new feature for multi-model NMR files, some sort of alignment command to align on each model's reference frame.  I performed this by hand as an example using the following

- Split the multi-model file into individual pdb files, 1 for each model
- for each model...
  - find_pair on the structure
  - rotate_mol using the ref_frame.dat file from find_pair

The pairing is consistent in all of the models but we have to run find_pair on each structure in order to get the reference frame data.

As with the MD simulation analysis script ('x3dna_md.rb'), it would be best for a user to specify the base pairing information. Thus the program 'find_pair' does not need to be run with each model. This would ensure consistency in all the models. Instead, the model-specific 'ref_frame.dat' can be generated with 'analyze'.

Check back ...

Xiang-Jun
Title: Re: Align multi-model (NMR) structures
Post by: acolasanti on December 30, 2011, 12:07:21 pm

Before I can get something for an "official" release of 3DNA v2.1 with this new feature included, I will try to come up with a Ruby script this week for you to try out.

Now to a specific point related to the procedure your outlined:

Quote
I have a suggestion on a new feature for multi-model NMR files, some sort of alignment command to align on each model's reference frame.  I performed this by hand as an example using the following

- Split the multi-model file into individual pdb files, 1 for each model
- for each model...
  - find_pair on the structure
  - rotate_mol using the ref_frame.dat file from find_pair

The pairing is consistent in all of the models but we have to run find_pair on each structure in order to get the reference frame data.

As with the MD simulation analysis script ('x3dna_md.rb'), it would be best for a user to specify the base pairing information. Thus the program 'find_pair' does not need to be run with each model. This would ensure consistency in all the models. Instead, the model-specific 'ref_frame.dat' can be generated with 'analyze'.
True, analyze can provide the ref_frame.dat.  I looked into using nmr_strs which runs analyze on each structure but it overwrites the ref_frame.dat file on each model.  You may be able to modify nmr_strs to take rotate_mol as an input, but a standalone ruby script would also work, whatever you think is best.

Andrew
Title: Re: Align multi-model (NMR) structures
Post by: xiangjun on December 30, 2011, 01:34:31 pm
The various ensemble related scripts will be consolidated in the coming v2.1 release.

Xiang-Jun


P.S. Did you know that one can click 'Notify' to receive email notification when a new post becomes available in a thread or forum you are interested in? It is a cool feature -- now I can be alerted with every new post or registration.
Title: Re: Align multi-model (NMR) structures
Post by: xiangjun on January 24, 2012, 08:23:00 am
Hi Andrew,

I've finally wrote the Ruby script named 'ensemble_reorient' to perform multiple-model ensemble alignment. In it took longer than I originally planned, and for good reasons  :). In the process, I've consolidated and refined the two Ruby scripts ('x3dna_md.rb' and  'extract_par.rb') for the analysis of MODEL/ENDMDL delineated molecular dynamics trajectories and NMR ensembles. For consistency, I've renamed them 'ensemble_analyze' and 'ensemble_extract'.

The ensemble_* scripts, together with added new C programs 'mutate_bases' and 'find_platform' will be released in 3DNA v2.1 in the near future. For backward compatibility, all v2.0 Perl scripts are going to be retained. From v2.2 and onwards, I am planning to eliminate all Perl scripts and use solely Ruby as the script language. 

Check email to see download info for the v2.1 beta version for testing. There are still lots of rough edges, but with the groundwork laid so far, I should be able to respond quickly to any identified issues.

The help message for 'ensemble_reorient' is as follows:

------------------------------------------------------------------------
Usage:
        ensemble_reorient options
Examples:
        ensemble_reorient --frame-opt='-m -6' -b bpfile.dat -e 2kei.pdb
             # reorient each model using the reference frame of base-pair #6
             #     with minor groove facing the viewer (-m)
             # note the use the double dash (--) style with equal sign, and
             #     the options to be transfered to frame_mol must be quoted
             # generate 'model_list.dat', and 'ensemble_example_trx.pdb'
        ensemble_reorient -f '\-m -6' -b bpfile.dat -m model_list.dat -o reoriented.pdb
             # Same transformation as above, but using an explicit list of
             #     models, and the transformed ensemble in 'reoriented.pdb'
             # diff ensemble_example_trx.pdb reoriented.pdb
        ensemble_reorient -f '\-8,9' -b bpfile.dat -e 2kei.pdb
             # reorient each model using the middle reference frame between
             #     base-pairs #8 & #9. Again, note the quote and back slash
Options:
------------------------------------------------------------------------
     --bpfile, -b <s>:   File containing base-pairing info (as generated from find_pair,
                         and EDITED as appropriate) 
    --outfile, -o <s>:   Output parameters file name (default: ensemble_example_trx.pdb)
  --frame-opt, -f <s>:   Options to transfer to frame_mol (quoted)
   --ensemble, -e <s>:   Model ensemble delineated with MODEL/ENDMDL
     --models, -m <s>:   File with explicit listing of model numbers
           --help, -h:   Show this message

Please check and report back any issues you experience.

Xiang-Jun
Title: Re: Align multi-model (NMR) structures
Post by: acolasanti on February 01, 2012, 12:08:19 pm
Hi XJL,
  The program works great on NMR type MODEL/ENDMDL structures but doesn't have the same features as the ensamble_analyzes with the availability to run on a collection of files with a -l fileList option.  Would it be difficult to add this feature so that on can align on both a multi-model pdb or a set of seperate pdb files?

Thanks
Andrew
Title: Re: Align multi-model (NMR) structures
Post by: xiangjun on February 01, 2012, 12:41:35 pm
Hi Andrew,

That's certainly possible. I will get this functionality added shortly so you can try it. I am consolidating the ensemble-related scripts into one, named 'x3dna_ensemble' with sub-commands such as 'analyze', 'extract', 'reorient', and more. So the new way to run the command would be "x3dna_ensemble reorient" plus options.

Xiang-Jun


Added on 2012-Feb-15: the current 3DNA v2.1beta can be downloaded from: http://x3dna.org/download/ (http://x3dna.org/download/)

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