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