Delila Program: instshift

instshift program

Documentation for the instshift program is below, with links to related programs in the "see also" section.

{   version = 1.65; (* of instshift.p 2016 Jan 16}

(* begin module describe.instshift *)
(*
name
   instshift: shift coordinates of delila instructions

synopsis
   instshift(instin: in, instshiftp: inout, instout: out, output: out)

files
   instin:  input: instruction file for delila

   instout:  output: the shifted inst file

   instshiftp:  parameters to control the program.  The file must contain the
      following parameters, one per line:

      parameterversion: The version number of the program.  This allows the
         user to be warned if an old parameter file is used.
         The program is smart enough to recognize that there is an old
         parameter file, and will upgrade the file to the latest version.

       numbtoshift (integer): The number of bases to shift, if you want the
          -9 position to be your new zero coordinate, then this number
          would be -9. If you want the +9 position to be be your new
          zero coordinate, then this number would be 9.

       rangechange (char) fromrange (integer) torange (integer)
          Range change control.  If rangechange is:
             n: no change
             r: change both fromrange and torange to the given values
             f: change just fromrange to the given value
             t: change just   torange to the given value
             s: change both fromrange and torange to match the shift
          Capital letters (NRFTS) mean to create the complementary Delila
          instruction after doing the rangechange (except N where only the
          complement is generated).

          The s mode allows the range to change so that only the zero base is
          altered but that sequence obtained is the same as before.  This
          only matters if one is trying to avoid sequences on the edge of a
          binding site, for example a second copy of the same site that one
          does not want to show up in the primary sequence logo.


   output: messages to the user

description

   Shift all the coordinates in an inst file, keeping the same logo but
   changing the zero coordinate.

examples

   With a parameter numtoshift of 1000 and no range change, the
   instructions:

   get from 0 +100 to same -100;
   get from 4 -100 to    5 +100 direction +;
   get from 6 -100 to same +100 direction +;
   get from 7 +100 to    8 -100 direction -;
   get from 9 +100 to same -100 direction -;

   become:

   get from -1000 +100 to same -100;
   get from 1004 -100 to 1005 +100 direction +;
   get from 1006 -100 to same +100 direction +;
   get from -993 +100 to -992 -100 direction -;
   get from -991 +100 to same -100 direction -;

example instshiftp:

1.29      version of instshift that this parameter file is designed for.
+10       number of bases to shift the coordinate system
r -10 +10 rangechange: nrft fromrange torange

documentation

see also
   parameter file example: instshiftp
   the program that uses the instructions: delila.p
   program to remove comments: nocom.p

   The instshift program can be used to adjust delila instructions for
   binding sites with any symmetry.  A treatise on binding site symmetries
   is available:
   https://alum.mit.edu/www/toms/glossary.html#binding_site_symmetry


author
   Rye Kent Shultzaberger
   additional features by Tom Schneider

bugs

 * The program will fail on circular pieces.  2001 May 1:  This may not
   be true anymore.

 * The delilacomment routine will trigger both comparen and comcurly error
   messages if a comcurly is not closed and there are more comparens after
   that.

 * A possible future option would be to complement the instructions so that
   one gets the complementary sequences.  Is this ever useful?

 * It is standard practice to name some promoters with single quote marks.
   These were identified as quote strings, killing the rest of the inst.
   To solve this, once a piece instruction is identified, the rest of the
   Delila instruction, up to the semicolon, is not checked for quotes
   or comments.  This COULD cause a problem IF someone has a semicolon
   inside a comment BEFORE the true semicolon end of the Delila instruction.
      piece bubba' (@ this would cause a problem ; get @) ;
   (where '@' is substitued for '*')


technical notes

 * Starting with this inst file:

 get from 0 +100 to same -100;

 and using this instshift parameter file:

1.29      version of instshift that this parameter file is designed for.
-10       number of bases to shift the coordinate system
n -40 +5  rangechange: nrft fromrange torange

 instshift gives an instout file like this:

 get from -10 +100 to same -100 direction +;

 Since the user did not specify the direction, the program does not know the
 direction to put at the end of the instruction.  In this case the user may
 think that the direction is negative, but on a circular piece this is a
 valid instruction.  If you do not give the direction in the inst file, the
 program defaults to not giving a direction.

 MUTATION RATE COMPENSATION

 Since the mutations are generated by Delila instructions, they have
 to be of a form that does not require knowing the previous base.
 This is done by using the insertion form i79,81t.  However, given a
 particular base b, this base will be generated 1/4 of the time.  So
 the actual mutation rate would be lower than requested.  To
 compensate for this the program multiplies the requested frequency by
 4/3.

 Note that high mutation rates result in very long mutation string
 names that Delila cannot handle without increasing the parameter
 namelength.  Note that if namelength is increased, it must be done in
 catal also and the delila catalogues must be rebuilt.

*)
(* end module describe.instshift *)
{This manual page was created by makman 1.45}



{created by htmlink 1.62}