Introduction
The
force field assembly module for the rrDNAv1 model
defines a class and five functions. This module is
called FFA and is located in Yup.Models.rrDNAv1, so
the import statement is some variant of:
from
Yup.Models.rrDNAv1.FFA import
*:
this imports two types of objects, the class
constructor function rrDNA() and the functions
Make3DNA(), getsequence(), ResetCoords(),
mcdefault() and mcaxial().
The
rrDNAv1 Force Field Assembler class
(rrDNA)
is derived from the Chain Force Field Assembler
(Chains)
template
in Yup.Tools.Chains.
Data
Attributes
There
are several data attributes but most are not meant
to be manipulated. Therefore, they are not
described here.
|
Attribute
|
Description
|
|
Xfactor
|
The
bulk term is based on the Exclusion
version of the Soft Sphere interaction.
This means that only excluded pairs have to be listed. Only
'Center'
atoms will take part in this interaction; other atom types have NULL
Exclusion Atom Types and are never considered for the SoftSphere
interaction. Each Center atom excludes a number of immediate neighbors
equal to the Center to Center SoftSphere diameter (typically 50Å)
divided by the length of the Center to Center bond (3.4Å)
multipled by Xfactor.
Preset value is 1.4.
|
|
Sfactor
|
Currently, the SoftSphereX term is used so this factor has no effect.
If, the SoftSphereI term is used instead the following description applies: A given
'Center'
atom will have a SoftSphereI
interaction with another
'Center'
atom that is some number of atoms away.
Thereafter, the interactions will skip
some number of
'Center'
atoms before interacting with the next.
This is the number of atoms that
separate a pair such that the nonbond
diameter multiplied by
Sfactor
just exceeds the sum of all the ideal
bond lengths that separate the pair.
Preset value is 0.4.
|
Methods
Use
rrDNA() to create an assembler object. Then use the
startchain() method to start a chain. Call
addtochain() to add links to the chain. This can be
done as many times as is necessary. When all the
links have been added, call closechain() to
complete the chain. In theory, more chains can be
added by calling startchain(), addtochain() and
closechain() for each of the additional chains. In
practice, there is no provision to generate
coordinates for multiple chains.
|
rrDNA()
|
Constructor
function
|
|
startchain()
|
Prepare
for the assembly of a chain.
|
|
addtochain()
|
Add
a tract to the end of the current
chain
|
|
closechain()
|
Finish
the current chain
|
|
finish()
|
Create
and return the model
|
Note
that the methods from the parent class are
essential members of this class.
The
constructor function initializes the
parent
class Chains which in turn initializes its parent
FFA
(which creates a Model
object filled with a Potential
object, which in turn is filled with four
Energy
objects, and a root AtomMap).
Then, the version string in the parameter library
is checked. The new object is then prepared for
use.
|
Method
Name
|
Number
of Arguments
|
Return
Value
|
|
rrDNA
|
2
|
The
rrDNA FFA object
|
|
Argument
|
Type
|
Preset
Value
|
|
paramdir
|
string
|
(path
to) Yup/Data/rrDNAv1/
|
|
SZ
|
integer
|
1000
|
The
paramdir argument is taken as the pathname
to a parameter library. This is usually the path to
a standard library supplied by the subclass.
However, it is possible to supply the name of any
library (e.g. while developing parameters for a new
model). The parameter library is used to create the
root atom map which is then added to the Model
object.
The
SZ argument is used to provide a hint of the
size of the system. Memory is reallocated as
necessary to accommodate an expanding model. If a
good hint can be provided, the number of
reallocations can be minimized and it may even
avoid fragmentation of memory.
The
startchain() method starts a new chain. This must
not be called if another chain is already being
built.
|
Method
Name
|
Number
of Arguments
|
Return
Value
|
|
startchain
|
2
|
-
|
|
Argument
|
Type
|
Preset
Value
|
|
modelname
|
string
|
-
|
|
root
|
integer
|
None
|
The
modelname argument must be provided. This is
the name of the model.
The
root argument is not useful yet. It should
be left at its preset value of None.
The
addtochain() method adds a tract to the end of the
current chain. This method can be called as many
times as is needed to construct a chain. It must
not be called until startchain() has been
called.
|
Method
Name
|
Number
of Arguments
|
Return
Value
|
|
addtochain
|
1
|
-
|
|
Argument
|
Type
|
Preset
Value
|
|
sequence
|
string
|
-
|
The
sequence argument must be specified. This is
a string that consists entirely of digits which is
then taken to be the length of a homogeneous tract
with the first atom type defined in the
const
module. Otherwise, sequence must start with
a legal character (also defined in the
const
module and these are 'A', 'C', 'G' and 'T'),
followed by digits and legal characters. This is
then taken, to be the composition of a
heterogeneous tract. The characters are sequence
letters and the numbers that follow are repeat
counts. A homogeneous tract can be explicitly
specified with the letter '#'. For example, '#1200'
and '1200' both specify the same homogeneous
sequence of 1200 basepairs. The sequence letters
'#', 'A', 'C', 'G' and 'T' all result in
3DNA models. However, the parameter library
does not have a complete set of constants to
connect undifferentiated base types with the other
four base types. Each
sequence letter will result in three atoms and
these will be placed in a group. Thus, there will
be as many groups as basepairs.
To
build a 3DNA4 model, use the base symbol '@'
followed by the repeat count. For example, '@300'
will result in a model that is equivalent to the
'#1200' model. The '#' and '@' base types can be
mixed, resulting in a hybrid model. For example,
'#100@250#100' is a hybrid model that represents
1200 basepairs.
The
closechain() method adds interactions to the Energy
objects and initialize the coordinates to zeros
(and are therefore unusable). At the completion of
this method, the startchain() method can be called
to start a new chain.
|
Method
Name
|
Number
of Arguments
|
Return
Value
|
|
closechain
|
1
|
-
|
|
Argument
|
Type
|
Preset
Value
|
|
closed
|
integer:
0 or 1
|
1
|
The
closed argument specifies whether the chain
is to be closed into a circle (if not zero) or not
(if zero).
The
finish() method creates the final model, then
generates starting coordinates or read them from a
file and then return the finished model.
|
Method
Name
|
Number
of Arguments
|
Return
Value
|
|
finish
|
4
|
The
rrDNAv1 Model
|
|
Argument
|
Type
|
Preset
Value
|
|
overwind
|
float
|
10-30
|
|
arcfile
|
string
|
''
(blank string)
|
|
recnum
|
integer
|
0
|
|
closed
|
integer:
0 or 1
|
1
|
The
overwind parameter specifies the amount of
overwinding per basepair beyond the equilibrium
level of winding of the DNA helix that is dictated
by the torsion term. Units for this quantity is
degrees. Specify a negative value to underwind.
Note that although the preset value is effectively
zero, it is not exactly zero which would have a
special meaning (see below).
The
arcfile argument specifies the name of an
AtomVector file from which the starting coordinates
will be obtained. If this is a blank string as in
the default, then the starting coordinates will be
generated as a straight line (if closed is
zero) or a circle (if closed is not zero).
If arcfile is not a blank string, then the
recnum record (last argument) of the file
will be read. If in addition, overwind is
exactly zero, then arcfile is expected to
contain exact coordinates for the model, the size
and base sequence of the file must match those of
the model. If overwind is not exactly zero,
then arcfile is expected to only provide a
template; the sequence is immaterial and the length
will be scaled up or down to match the
model.
The
value of 0 for recnum indicates the last
record of the file.
The
closed argument specifies whether the chain
is to be closed into a circle (if not zero) or not
(if zero).
Functions
The
Make3DNA() function creates one rrDNAv1
(specifically 3DNA) chain out of one link.
Homogeneous and heterogeneous chains can be
created.
|
Function
Name
|
Number
of Arguments
|
Return
Value
|
|
Make3DNA
|
6
|
Model:
the 3DNA model
|
|
Argument
|
Type
|
Preset
Value
|
|
sequence
|
string
|
-
|
|
closed
|
integer:
0 or 1
|
1
|
|
modelname
|
string
|
'DNA'
|
|
overwind
|
float
|
10-30
|
|
arcfile
|
string
|
''
(blank string)
|
|
recnum
|
integer
|
0
|
The
sequence parameter is passed to the
addtochain() method. See the above for
details.
The
closed parameter is passed to the
closechain() method. See the above for
details.
The
modelname parameter is passed to the
startchain() method. See the above for a
description.
The
overwind parameter specifies the amount of
overwinding per basepair. See the above for a
description.
The
arcfile argument specifies the name of an
AtomVector file. See the above for a
description.
The
value of 0 for recnum indicates the last
record of the file.
The
ResetCoords() function regenerates a set of random
coordinates for the specified chain or reads them
from a file.
|
Function
Name
|
Number
of Arguments
|
Return
Value
|
|
ResetCoords
|
6
|
-
|
|
Argument
|
Type
|
Preset
Value
|
|
M
|
Model
|
-
|
|
overwind
|
float
|
10-30
|
|
arcfile
|
string
|
''
(blank string)
|
|
recnum
|
integer
|
0
|
|
closed
|
integer:
0 or 1
|
1
|
|
limit
|
AtomMap
|
None
|
The
M parameter specifies the model containing
the chain. The next four arguments are identical to
the equivalent arguments in Make3DNA().
The
effects of these arguments (also applicable to
Make3DNA()) are summarized in this
table:
|
Value
of arcfile
|
Value
of overwind
|
Value
of closed
|
Coordinates
are:
|
|
blank
string
|
anything
|
0
|
generated
as a straight line with the torsion at
each base pair altered by the value of
overwind.
|
|
not
zero
|
generated
as a planar circle with the torsion at
each base pair altered by the value of
overwind.
|
|
not
a blank string
|
exactly
0.0
|
anything
|
read
exactly from record recnum of
arcfile; the base sequence must
match exactly.
|
|
not
0.0
|
generated
to follow the template, read from the
recnum record of arcfile,
and with the torsion at each base pair
altered by overwind.
|
The
getsequence() function reads a base sequence from a
file. The base sequence is returned as a
string.
|
Function
Name
|
Number
of Arguments
|
Return
Value
|
|
getsequence
|
1
|
(the
sequence) string
|
|
Argument
|
Type
|
Preset
Value
|
|
seqfile
|
string
|
-
|
The
seqfile parameter specifies the name of a
file that contains the sequence letters. This file
has a simple format based on the Wisconsin GenBank
specification. Everything in the file is ignored
until two contiguous periods in columns one and two
are read. Thereafter, columns one to 10 are ignored
and the sequence is read from the rest of each
line.
The
mcdefault() function generates the data structure
that is required in order to use Grouped
Monte
Carlo.
|
Function
Name
|
Number
of Arguments
|
Return
Value
|
|
mcdefault
|
1
|
-
|
|
Argument
|
Type
|
Preset
Value
|
|
model
|
Model
|
-
|
The
model is split into one group per base
pair.
The
mcaxial() function generates the data structure
that is required in order to use Axial
Monte
Carlo.
|
Function
Name
|
Number
of Arguments
|
Return
Value
|
|
mcaxial
|
2
|
-
|
|
Argument
|
Type
|
Preset
Value
|
|
model
|
Model
|
-
|
|
segsize
|
integer
|
5
|
The
model is split into overlapping segments of
segsize base pairs each. Note that the
preset value does not allow for much movement.
Segments may have to be as large as 75 to work.
However, with large segments we have the risk of
strand crossings.
Calculate
Analysis
Service
Functions
|