NAST (the Nucleic Acid Simulation Tool)

NAST is now available for most unix, mac, and pc platforms.

Please read the REAME file in the Downloads section for directions.

Special install directions for 64bit linux and Mac OSX snow leopard

As of November 2009 you can build and install NAST on 64bit unix machines and Mac OSX machines running snow leopard.

64 bit linux

Download the library called "libOpenMM_static.a" which you will find under the source files section on the NAST downloads page.

Replace the file with the same name in the nast-0.5/lib/linux/ directory.

Then build, install, and test as described in the instructions:

python setup.py build
python setup.py install

Mac OSX Snow Leopard

You will need to use the 2.5 version of python on your snow leopard machine (default is 2.6). To change the default, type the following into your terminal:

defaults write com.apple.versioner.python Version 2.5 

If you do not want to change the default python, make sure you python "python2.5" instead of "python" every time you run a NAST-related python command.

You will also need to download the "libOpenMM_static.a" file which you can find under the Mac OSX heading on the downloads page.

Be sure to remove the extra " for snow leopard" from the file name when you download it. Place this file in the nast-0.5/lib/osx/ directory.

Then build, install, and test as described in the instructions:

python setup.py build
python setup.py install

Special instructions for running NAST with very large RNA molecule (>=1000 nucleotides)

When running NAST with really large RNA molecules, the starting unfolded structure will place residues so far away from the coordinate origin (0,0,0) that it will overwhelm the pdb coordinate format. This will result in strange spikes in the starting unfolded structure, which is supposed to be circular.

To fix this problem, the precision of residue positions needs to be reduced from three decimal points to two decimal points.

Download the simplePdb.py file in the Documents section in the "Special Files" folder, and replace the file with the same name in the nast-0.5/simtk/nast/ directory (after backing up the original file by changing it's name to something like simplePdb.py.bkup).

Return to the nast-0.5 directory to build and install NAST over again before running the next simulation:

python setup.py build
python setup.py install

C2A bug fix for molecules with end piece of length 1

If your molecule has an end piece of length one, you will need to download and update NAST with a new c2a.py file.

You are affected if you have a line in your -FD.txt file that looks something like:

E# H#:3+1
or
E# H#:5-1

If this is your situation, download the c2a.py file from the Documents section in the "Special Files" folder.

Backup the current c2a.py file in the nast-0.5/simtk/nast/ directory to something like c2a.py.bkup.

Replace it with the newly downloaded file.

Re-do the build and install process:

python setup.py build
python setup.py install

If you are getting 0 matches for all your fragments in part one, this might be relevant

Check your full atomic reference file for the following issues: 1. Your pdb file may be using ' instead of the * c2a is expecting. 1. Your pdb file may be using 'OP1' and 'OP2' instead of the 'O1P' and 'O2P' c2a is expecting.

This problem will be fixed in the next version of C2A. In the meantime, you can you sed to quickly fix the pdb file:

To replace ' with *:

sed -i "s/'/*/g" 1N33.pdb

To replace OP1 with O1P:

sed -i "s/OP1/O1P/g" 1N33.pdb

Common errors thrown by C2A and how to fix them

C2A is very picky about the format of the input files and will throw "list index out of range" errors when there is something wrong with an input file. Unfortunately the error messages are not very helpful to the user at the moment, and we are planning on fixing that in a future version.

Some of the common formatting problems that throw this type of error include:

1. Input coarse grain template:

  1. ATOM line formatting - make sure your formatting matches that of the c2a example input coarse-grain template. In particular, check the positions of the atom type 'C3*' and atom/residue numbers.
  2. Make sure there is one *and only one* END or TER at the end of the file.
  3. Make sure you are using "*" instead of "'".

2. Input full atomic reference structure:

  1. Make sure that there are *only* ATOM lines in the file. Remove all comments or non-RNA lines.
  2. Make sure that there are no repeated atom and residue numbers.
  3. Make sure that separate chains are separated by at least one atom and residue number so that c2a knows the residues are not connected.
  4. Make sure you are using "*" instead of "'".
  5. Make sure you are using 'O1P' and 'O2P' instead of 'OP1' and 'OP2'.

3. -FD.txt fragment definition file.

  1. Make sure that there are no blank lines.
  2. Make sure that there are no 1-base-pair long helices. You can fix this by either lengthening the definition of the helix fragment beyond the actual length of the helix, or by removing the helix and letting those residues be parts of junction fragments.

Description of input files

NAST input files

Primary Sequence

File name format: *.seq
e.g. 6TNA_C3.seq (in folder examples/nast/6TNA_MD/)

Format:
One residue per line.
Only options are: A, U, C, G
For break in sequence (more than one strand), use "TER"
e.g.

A
G
C
U
TER
A
G
C
U

Secondary structure

File name format: *-helix.txt or *_helix.txt
e.g. 6TNA_helix.txt (in folder examples/nast/6TNA_MD/)

Format:
Two lines per helix, one blank line separating helices.
Residue number represents each residue.
Paired residues line up vertically.
e.g.

1 2 3 4
20 19 18 17

6 7 8
15 14 13

Tertiary contacts

File name format: *-contacts.txt or *_contacts.txt
e.g. 6TNA_contacts.txt (in folder examples/nast/6TNA_MD/)

Format:
One line per tertiary contact.
Residue number represents each residue.
A tertiary contact is essentially a spring that connects the two specified residues.
First two columns are the residues in the tertiary contact.
Next column is the spring preferred distance.
Last column is the spring strength.
e.g.

8   14   1.3  200
15  48   1.3  200  

C2A input files

Fragment definition file

File name format: *-FD.txt
e.g. 6TNA-FD.txt

The simplest way to generate this file is automatically from a .bpseq file using the parseBPseq.py script located in the examples folder. If you run this script in a folder containing a .bpseq file and use the root name of the .bpseq file as input to the script, e.g.:

python parseBPseq.py 6TNA

The output will be three files:
6TNA.seq
6TNA-helix.txt
6TNA-FD.txt
The *.seq and *-helix.txt files are in the format described above for use with NAST.
The *-FD.txt file will look something like:

H1 1:7,66:72 10
H2 10:13,22:25 10
H3 27:31,39:43 10
H4 49:53,61:65 10
L1 H2 10
L2 H3 10
L3 H4 10
J1 H1:5,H2:5 10
J2 H2:3,H3:5 10
J3 H3:3,H4:5 10
E1 H1:3+4 10

Format:

Helices:
For the example helix "H1 1:7,66:72 10":
H1 means the first helix. Helix fragment definitions must start with the letter H.
1:7 means that the 5' end of the helix is made up of residues 1 through 7.
66:72 means the 3' end of the helix is made up of residues 66 to 72. That is 66 pairs with 7, etc.
10 represents the number of choices to be used in the fragment assembly protocol. Here, the 10 best fragments will be the only choices for H1.

Loops:
For the example loop "L1 H2 10":
L1 is the identifier for the loop. Loop definitions must start with the letter L.
H2 means that L1 is the loop at the end of H2.
10 once again represents the number of choices for the assembly protocol.

Junctions:
For the example junction "J1 H1:5,H2:5 10":
J1 is the identifier for this junction.
H1:5 means that the junction is connected on the 5' end to the 5' half of helix H1.
H2:5 means that the junction is connected on the 3' end to the 5' half of helix H2.
10 once again represents the number of choices for the assembly protocol.

Ends:
For the example end "E1 H1:3+4 10":
E1 is the indentifier.
H1:3 means that the end is connected to the 3' half of helix H1.
+4 means that the end extends from the helix by four residues counting up (if it were counting down, it would be -4).

FrontPage (last edited 2016-05-04 22:09:01 by localhost)