By downloading this code you agree to the
Source Code Use License (PDF). |
{ version = 1.37; (* of multibest.p 2022 Dec 19}
(* begin module describe.multibest *)
(*
name
multibest: find features with the highest Ri in a given sequence range
synopsis
multibest(scanfeatures: in, multibestp: in,
bestfeatures: out, lowerfeatures: out, output: out)
files
scanfeatures: A list of locations of binding sites and other features.
bestfeatures: A list of the features from the original file which have the
highest Ri in a given range
multibestp: 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.
window: Features are discarded if the coordinate of another
feature with a higher Ri is less than or equal to the window
distance away from the one being looked at. Note that if
window is 100, the region accepted will be 2*100+1 = 201
bases.
asterisks: If character is 'A' then the filtered out features are shown
as asterisks in a lowerfeatures file.
lowerfeatures: A list of the features from the original file which have the
lower Ri values in a given range. These are the features which have been
'discarded' by the program.
output: messages to the user
description
Scan and multiscan often produce a scanfeatures file with many
sites picked up over a small range. This makes the map very
difficult to look at, so this program attempts to filter the
features and find the one with the highest Ri over a small range
and only keep that one.
This program, multibest, is designed for use with the output of the
multiscan program. multiscan creates 'groups' of features that
must be handled together by multibest. This is in contrast to the
original scan program that works with single features which can be
filtered using the localbest program.
The user should be aware that this program discards valuable
information in the form of possible binding sites. For this
reason, it is a good idea to not set the window at more than 1
helix turn (10.6 bp) for DNA sites. Sites at this distance apart
are probably significant and should be kept in the scanfeatures
file.
examples
documentation
see also
program that scans for single part features: scan.p
program to use with scan.p: localbest.p
scanp and localbest are used together. multibest may not work
with scan.p output features.
program to use with multibest; creates multi-part features: multiscan.p
Program that uses any features file to create a postscript
display: lister.p
author
Elaine Bucheimer, Tom Schneider
bugs
technical notes
Historical note: multibest.p was derived from localbest.p to work
with multipart features.
The code uses a trick that makes it extremely simple at the cost of
a small amount of memory.
The trick is to first pre-mark all groups to be 'kept'. Then pass
through all the groups (variable g) and record whether to remove a
particular group based on a pass through all groups again (varible
h) to mark the ones to remove. Then the showthegroups procedure
(which replaces the original showgroups) merely writes or does not
write the group. This method costs ONE boolean of memory for each
group. Memory is cheap!!!
It is a little slower because groups that have been removed are
checked again. But this should be fixable!! Just add an if
statement to have h skip work on the group g that is already to be
removed!
Also, once a g group has been marked false, the h loop can be
terminated!
*)
(* end module describe.multibest *)
{This manual page was created by makman 1.45}
{created by htmlink 1.62}