Download downloaded

Transcript
10/17/06
Sample NAB applications
108
7. Sample NAB applications.
This chapter provides a variety of examples that use the basic NAB functionality described in
earlier chapters to solve interesting molecular manipulation problems. Our hope is that the ideas and
approaches illustrated here will facilitate construction of similar programs to solve other problems.
7.1. Duplex Creation Functions.
nab provides a variety of functions for creating Watson/Crick duplexes. A short description of
four of them is given in this section. All four of these functions are written in nab and the details of
their implementation is covered in the section Creating Watson/Crick Duplexes of the User Manual.
You should also look at the function fd_helix() to see how to create duplex helices that correspond to fibre-diffraction models. As with the PERL language, "there is more than one way to do it."
molecule bdna( string seq );
string wc_complement( string seq, string rlib, string rlt );
molecule wc_helix( string seq, string rlib, string natype,
string cseq, string crlib, string cnatype,
float xoffset, float incl, float twist, float rise,
string options );
molecule dg_helix( string seq, string rlib, string natype,
string cseq, string crlib, string cnatype,
float xoffset, float incl, float twist, float rise,
string options );
molecule wc_basepair( residue res, residue cres );
bdna() converts the character string seq containing one or more A, C, G or Ts (or their lower
case equivalents) into a uniform ideal Watson/Crick B-form DNA duplex. Each basepair has an X-off° , an inclination of -4.96° and a helical step of 3.38A
° rise and 36.0° twist. The first characset of 2.25A
ter of seq is the 5’ base of the strand "sense" of the molecule returned by bdna(). The other
strand is called "anti". The phosphates of the two 5’ bases have been replaced by hydrogens and
and hydrogens have been added to the two O3’ atoms of the three prime bases. bdna() returns
NULL if it can not create the molecule.
wc_complement() returns a string that is the Watson/Crick complement of its argument
seq. Each C, G, T (U) in seq is replaced by G, C and A. The replacements for A depends if rlt is
DNA or RNA. If it is DNA, A is replaced by T. If it is RNA A is replaced by U. wc_complement()
considers lower case and upper case letters to be the same and always returns upper case letters.
wc_complement() returns NULL on error. Note that the while the orientations of the argument
string and the returned string are opposite, their absolute orientations are undefined until they are used
to create a molecule.
wc_helix() creates a uniform duplex from its arguments. The two strands of the returned
molecule are called "sense" and "anti". The two sequences, seq and cseq must specify Watson/Crick base pairs. Note the that must be specified as lower-case strings, such as "ggact". The
nucleic acid type ( DNA or RNA ) of the sense strand is specified by natype and of the complementary strand cseq by cnatype. Two residue libraries—rlib and crlib— permit creation of
DNA:RNA heteroduplexes. If either seq or cseq (but not both) is NULL only the specified strand of
what would have been a uniform duplex is created. The options string contains some combination