By downloading this code you agree to the
Source Code Use License (PDF). |
{ 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}