Perform nucleic acid structure analysis.

nastruct [<dataset name>] [resrange <range>] [naout <suffix>] [noheader] [resmap <ResName>:{A,C,G,T,U} ...] [calcnohb] [baseref <file>] [hbcut <hbcut>] [origincut <origincut>] [altona | cremer] [zcut <zcut>] [zanglecut <zanglecut>] [groovecalc {simple | 3dna}] [{ reference | ref <name> | refindex <#> | allframes}] [noframespaces]

[<dataset name>] Output data set name.
[resrange <range>] Residue range to search for nucleic acids in (default all).
[naout <suffix>] File name suffix for output files; BP.<suffix> for base pair parameters, BPstep.<suffix> for base pair step parameters, and Helix.<suffix> for base pair step helical parameters.
[noheader] Do not print header to naout file.
[resmap <ResName>:{A,C,G,T,U}] Attempt to treat residues named <ResName> as if it were A, C, G, T, or U; useful for residues with modifications or non-standard residue names. This will only work if enough reference atoms are present in <ResName>.
[calcnohb] Calculate parameters between bases in base pairs even if no hydrogen bonds present between them.
[baseref <file>] Specify a custom nucleic acid base reference. One file per custom residue; multiple ’baseref’ keywords may be present. See below for details.
[hbcut <hbcut>] Distance cutoff (in Angstroms) for determining hydrogen bonds between bases (default 3.5).
[origincut <origincut>] Distance cutoff (in Angstroms) between base pair axis origins for determining which bases are eligible for base-pairing (default 2.5).
[altona] Use method of Altona & Sundaralingam to calculate sugar pucker (default, see pucker command).
[cremer] Use method of Cremer and Pople to calculate sugar pucker (see pucker command).
[zcut] Distance cutoff (in Angstroms) between base reference axes along the Z axis (i.e. stagger) for determining base pairing (default 2).
[zanglecut] Angle cutoff (in degrees) between base reference Z axes for determining base pairing (default 65).
[groovecalc] Groove width calculation method: simple Use P-P distance for major groove, O4-O4 distance for minor groove. Output to ’BP.<suffix>’. 3dna Use groove width calculation of El Hassan and Calladine. Output to ’BPstep.<suffix>’.
[reference | refindex <#> | ref <name>] Reference structure to use to determine base pairing; if not specified use first frame.
[allframes] If specified determine base pairing each frame.
noframespaces If specified, do not add a blank line in the output.

DataSets Created:
<name>[pucker]:X Base X (residue number) sugar pucker.
Base pairs:
<name>[shear]:X Base pair X (starting from 1) shear.
<name>[stretch]:X Base pair stretch.
<name>[stagger]:X Base pair stagger.
<name>[buckle]:X Base pair buckle.
<name>[prop]:X Base pair propeller.
<name>[open]:X Base pair opening.
<name>[hb]:X Number of WC hydrogen bonds between bases in base pair.
<name>[bp]:X Contain 1 if bases are base paired, 0 otherwise.
<name>[major]:X (If groovecalc simple) Major groove width calculated between P atoms of each base.
<name>[minor]:X (If groovecalc simple) Minor groove width calculated between O4 atoms of each base.
Base pair steps:
<name>[shift]:X Base pair step X (starting from 1) shift.
<name>:X Base pair step slide.
<name>[rise]:X Base pair step rise.
<name>[title]:X Base pair step tilt.
<name>[roll]:X Base pair step roll.
<name>[twist]:X Base pair step twist.
<name>[zp]:X Base pair step Zp value.
<name>[major]:X (If groovecalc 3dna) Major groove width, El Hassan and Calladine.
<name>[minor]:X (If groovecalc 3dna) Minor groove width, El Hassan and Calladine.
Helical steps:
<name>[xdisp]:X Helical step X (starting from 1) X displacement.
<name>[ydisp]:X Helical Y displacement.
<name>[hrise]:X Helical rise.
<name>[incl]:X Helical inclination.
<name>[tip]:X Helical tip.
<name>[htwist]:X Helical twist.

Note that data sets are not created until base pairing is determined.

Calculate basic nucleic acid (NA) structure parameters for all residues in the range specified by resrange (or all NA residues if no range specified). Residue names are recognized with the following priority: standard Amber residue names DA, DG, DC, DT, RA, RG, RC, and RU; 3 letter residue names ADE, GUA, CYT, THY, and URA; and finally 1 letter residue names A, G, C, T, and U. Non-standard/modified NA bases can be recognized by using the resmap keyword. For example, to make cpptraj recognize all 8-oxoguanine residues named ’8OG’ as a guanine-based residue:

nastruct naout nastruct.dat resrange 274-305 resmap 8OG:G

The resmap keyword can be specified multiple times, but only one mapping per unique residue name is allowed. Note that resmap may fail if the residue is missing heavy atoms normally present in the specified base type. Base pairs are determined either once from the first frame or from a reference structure, or can be determined each frame if allframes is specified. Base pairing is determined first by base reference axis origin distance, then by stagger, then by angle between base Z axes, then finally by hydrogen bonding (at least one hydrogen bond must be present). Base pair parameters will only be written for determined base pairs. Both Watson-Crick and other types of base pairing can be detected. Note that although all possible hydrogen bonds are searched for, only WC hydrogen bonds are reported in the BP.<suffix> file.

The procedure used to calculate NA structural parameters is the same as 3DNA, with algorithms adapted from Babcok et al. and reference frame coordinates from Olson et al. Given the same base pairs are determined, CPPTRAJ nastruct gives the exact same numbers as 3DNA.

Calculated NA structure parameters are written to three separate files, the suffix of which is specified by naout. Base pair parameters (shear, stretch, stagger, buckle, propeller twist, opening, # WC hydrogen bonds, base pairing, and simple groove widths) are written to BP.<suffix>, along with the number of WC hydrogen bonds detected. Base pair step parameters (shift, slide, rise, tilt, roll, twist, Zp, and El Hassan and Calladine groove widths) are written to BPstep.<suffix>, and helical parameters (X-displacement, Y-displacement, rise, inclination, tip, and twist) are written to Helix.<suffix>. If noheader is specified a header will not be written to the output files. Note that although base puckering is calculated, it is not written to an output file by default. You can output pucker to a file via the create or write/writedata commands after the data has been generated, e.g.:

nastruct NA naout nastruct.dat resrange 1-3,28-30
writedata NApucker.dat NA[pucker]

Custom Nucleic Acid Base References.
Users can now specify baseref <file> to load a custom nucleic acid base reference. The base reference files are white-space delimited, begin with the line NASTRUCT REFERENCE, and have the following format:

<base character> <res name 0> [<res name 1> ...]
<atom name> <X> <Y> <Z> <HB type> <RMS fit>

There is a line for each reference atom. Lines beginning with ’#’ are ignored as comments.
<base character> Used to identify the underlying base type: A G C T or U. If none of these, it will be considered an unknown residue (which just means WC hydrogen bonding will not be identified).
<res name X> Specifies what residue names this reference corresponds to. There must be at least one residue name. There can be any number of these specified.
<atom name> A reference atom name.
<X> <Y> <Z> The X Y and Z coordinates of the reference atom.
<HB type> Denotes if and how the atom participates in hydrogen bonding. Can be ’d’onor, ’a’cceptor, or ’n’one (or the numbers 1, 2, 0 respectively). Only the first character of the word actually matters.
<RMS fit> Denotes whether the atom is involved in RMS-fitting.

Here is an example for GUA:

G G G5 G3
# Modified into format readable by cpptraj nastruct
C1’ -2.477 5.399 0.000 0 0
N9 -1.289 4.551 0.000 0 1
C8 0.023 4.962 0.000 0 1
N7 0.870 3.969 0.000 accept 1
C5 0.071 2.833 0.000 0 1
C6 0.424 1.460 0.000 0 1
O6 1.554 0.955 0.000 accept 0
N1 -0.700 0.641 0.000 donor 1
C2 -1.999 1.087 0.000 0 1
N2 -2.949 0.139 -0.001 donor 0
N3 -2.342 2.364 0.001 accept 1
C4 -1.265 3.177 0.000 0 1