staden-lg/help/mem_help
2021-12-04 05:07:58 +00:00

698 lines
30 KiB
Text

@0. B 1 @MEP
This is a program for analysing families of nucleotide sequences in
order to find common motifs and potential binding sites. The ideas
in this program were described in Staden, R. "Methods for
discovering novel motifs in nucleic acid sequences". Computer
Applications in the Biosciences, 5, 293-298, (1989).
The program can read sequences stored in either of two
formats: 1) all sequences aligned in a single file; 2) all sequences
in separate files and accessed through a file of file names.
The program contains functions that can answer several
questions about a set of sequences:
Which words are most common?
Which words occur in the most sequences?
Which words contain the most information?
Which words occur in equivalent positions in the sequences?
Which words are inverted repeats?
Which words occur on both strands of the sequences?
Where are the inverted repeats?
Where are the fuzzy words?
Most of the program is concerned with analysing what it terms
"fuzzy words" within the set of sequences. The analysis is explained
below. Note that the standard version of the programs is limited to
words of maximum length 8 letters, and a maximum fuzziness of 2.
The following analyses (preceded by their option numbers) are
included:
? = Help
! = Quit
3 = Read new sequences
4 = Redefine active region
5 = List the sequences
6 = List text file
7 = Direct output to disk
10 = Clear graphics
11 = Clear text
12 = Draw ruler
13 = Use cross hair
14 = Reset margins
15 = Label diagram
16 = Draw map
17 = Search for strings
18 = Set strand
19 = Set composition
20 = Set word length
21 = Set number of mismatches
22 = Show settings
23 = Make dictionary Dw
24 = Make dictionary Ds
25 = Make fuzzy dictionary Dm from Dw
26 = Make fuzzy dictionary Dm from Ds
27 = Make fuzzy dictionary Dh from Dm
28 = Examine fuzzy dictionary Dm
29 = Examine fuzzy dictionary Dh
30 = Examine words in Dm
31 = Examine words in Dh
32 = Save or restore a dictionary
33 = Find inverted repeats
Some of these methods produce graphical results and so the
program is generally used from a graphics terminal (a vdu on which
lines and points can be drawn as well as characters).
The positions of each of the plots is defined relative to a users
drawing board which has size 1-10,000 in x and 1-10,000 in y. Plots
for each option are drawn in a window defined by x0,y0 and
xlength,ylength. Where x0,y0 is the position of the bottom left hand
corner of the window, and xlength is the width of the window and
ylength the height of the window.
--------------------------------------------------------- 10,000
1 1
1 -------------------------------------- ^ 1
1 1 1 1 1
1 1 1 1 1
1 1 1 ylength 1
1 1 1 1 1
1 1 1 1 1
1 -------------------------------------- v 1
1 x0,y0^ 1
1 <---------------xlength--------------> 1
--------------------------------------------------------- 1
1 10,000
All values are in drawing board units (i.e. 1-10,000, 1-10,000).
The default window positions are read from a file "MEPMARG" when the
program is started. Users can have their own file if required.
The options for the program are accessed from 3 main menus:
general, screen control and dictionary analylsis. Both menus and
options are selected by number.
The most important and novel part of the program is its use of
"fuzzy dictionaries" and an information theory measure, to help show
the most interesting motifs. Central to the method is the idea of a
fuzzy dictionary of word frequencies. A dictionary of word
frequencies is an ordered list of all the words in the sequences and
a count of the number of times that they occur. A fuzzy dictionary
is an equivalent list but which contains instead, for each word, a
count of the number of times similar words occur in the sequences.
We term words that are similar "relations". The fuzziness is defined
by the number of letters in a word that are allowed to be different.
So if we had a fuzziness of 1 we allow 1 letter to be different. For
example, with a fuzziness of 1, the entry in the fuzzy dictionary
for the word TTTTTT would contain a count of the numbers of times
TTTTTT occured plus the number of times all words differing by
exactly one letter from TTTTTT occured.
Once the fuzzy dictionary has been created we can examine it
in several ways to find candidate control sequences. The simplest
question we can ask is which word in the dictionary is the most
common. Sometimes this simple criterion of "most common" may be
adequate to discover a new motif but in general we would not expect
it to be sufficient. For example some words will be common simply
because of a base composition bias in the sequences being analysed.
In addition a word can be the most frequent and yet not be "well
defined". This last point is best explained by an example.
Suppose we were looking at two letter words and allowing one
mismatch, and that there were 10 occurences of TT and 5 of AC. We
could align the 10 words that were one letter different from TT and
the 5 that were related to AC. Then we could count the number of
times each base occured in each position for each of these two sets
of words. Suppose we got the two base frequency tables shown below.
TT AC
T 6 4 T 1 0
C 1 3 C 0 4
A 1 2 A 4 1
G 2 1 G 0 0
These tables show that although TT occurs (with one letter mismatch)
more often than AC, the ratio of base frequencies for AC at 4/5, 4/5
is higher than those for TT at 6/10, 4/10. Hence we would say that
AC was better defined than TT. Expressing this another way we would
say that the definition of AC contained more information than that
for TT. The program calculates the information content in a way that
takes into account both the sequence composition and the level of
definition of the motif.
Definitions
Here we deal only with the dictionary analysis. Suppose we
are dealing with a set of sequences and are examining them for words
that are six characters in length.
Dictionary Dw contains a count of the number of times each
word occurs in the set of sequences. For example the entry for
TTTTTT contains a value equal to the number of times the word TTTTTT
occurs in the set of sequences.
Dictionary Ds contains a count of the number of different
sequences in which each word occurs. For example if the entry for
word TTTTTT contains the value 10, it denotes that the word TTTTTT
occurs in ten different sequences. Unlike Dw it only counts words
once for each sequence. For example if we had a set of 100
sequences, the maximum possible value that Ds could take is 100, and
this would only happen if a word occurred in every sequence. However
for the same set of sequences, Dw could contain values greater than
100, and this would show that a word had occurred more than once in
at least one sequence.
From either of the two dictionaries Dw or Ds we can calculate
a fuzzy dictionary Dm. For each word, the entry in the fuzzy
dictionary Dm contains the sum of the dictionary values (taken from
either Dw or Ds) for all words that differ from it by up to m
letters. For example if m=2 the entry for TTTTTT contains the number
of times that TTTTTT occurs in the dictionary, plus the counts for
all words that differ from TTTTTT by 1 or 2 letters. Obviously the
interpretation of the values in Dm depends on which of the two
dictionaries Dw or Ds they were derived from. When derived from Dw
the entry for any word in Dm gives the total number of times it, and
its relations, occur in the set of sequences. When derived from Ds
the entry for any word in Dm gives the total number of different
sequences that contain a word and each of its relations.
Finally, from fuzzy dictionary Dm we can derive fuzzy
dictionary Dh. All entries in Dh are zero except for the word(s),
within each set of relations, that are most frequent. For example if
TTTTTT occurred 20 times but had a relation that occurred more
often, then the entry for TTTTTT would be zero. However if TTTTTT
did not have a more frequently occurring relation, then the entry
for TTTTTT would contain the value 20.
@1. B 1 @Help
This option gives online help. The user should select option numbers
and the current documentation will be given. Note that option 0
gives an introduction to the program, and that ? will get help from
anywhere in the program. The following analyses (preceded by their
option numbers) are included:
? = Help
! = Quit
3 = Read new sequences
4 = Redefine active region
5 = List the sequences
6 = List text file
7 = Direct output to disk
10 = Clear graphics
11 = Clear text
12 = Draw ruler
13 = Use cross hair
14 = Reset margins
15 = Label diagram
16 = Draw map
17 = Search for strings
18 = Set strand
19 = Set composition
20 = Set word length
21 = Set number of mismatches
22 = Show settings
23 = Make dictionary Dw
24 = Make dictionary Ds
25 = Make fuzzy dictionary Dm from Dw
26 = Make fuzzy dictionary Dm from Ds
27 = Make fuzzy dictionary Dh from Dm
28 = Examine fuzzy dictionary Dm
29 = Examine fuzzy dictionary Dh
30 = Examine words in Dm
31 = Examine words in Dh
32 = Save or restore a dictionary
33 = Find inverted repeats
@2. B 1 @Quit
This function stops the program.
@3. B 1 @Read a new sequence.
It can read sequences stored in either of two formats: 1) all
sequences aligned in a single file; 2) all sequences in separate
files and accessed through a file of file names. Typical dialogue
follows:
X 1 Read file of aligned sequences
2 Use file of file names
? 0,1,2 =
? File of aligned sequences=F1
Number of files 88
@4. B 1 @Define active region
For its analytic functions the program always works on a region of
the sequence called the active region. When new sequences are read
into the program the active region is automatically set to start at
the beginning of the sequences and go up to the end of the longest
one.
@5. B 1 @List a sequence.
The sequence can be listed with line lengths of 50 bases with each
sequence numbered in the order in which they were read. Output can
be directed to a disk file by first selecting disk output. Typical
dialogue follows.
? Menu or option number=5
10 20 30 40 50
1 TAGCGGATCCTACCTGACGCTTTTTATCGCAACTCTCTACTGTTTCTCCA
2 CAAATAATCAATGTGGACTTTTCTGCCGTGATTATAGACACTTTTGTTAC
3 TAATTTATTCCATGTCACACTTTTCGCATCTTTGTTATGCTATGGTTATT
4 ACTAATTTATTCCATGTCACACTTTTCGCATCTTTGTTATGCTATGGTTA
5 AGGCACCCCAGGCTTTACACTTTATGCTTCCGGCTCGTATGTTGTGTGGA
6 TAATGTGAGTTAGCTCACTCATTAGGCACCCCAGGCTTTACACTTTATGC
7 ACACCATCGAATGGCGCAAAACCTTTCGCGGTATGGCATGATAGCGCCCG
8 GGGGCAAGGAGGATGGAAAGAGGTTGCCGTATAAAGAAACTAGAGTCCGT
9 AGGGGGTGGAGGATTTAAGCCATCTCCTGATGACGCATAGTCAGCCCATC
10 AAAACGTCATCGCTTGCATTAGAAAGGTTTCTGGCCGACCTTATAACCAT
60
1 TACCCGTTTTT
2 GCGTTTTTGT
3 TCATACCATAAG
4 TTTCATACC
5 ATTGTGAGC
6 TTCCGGCTCG
7 GAAGAGAGT
8 TCAGGTGT
9 ATGAATG
10 TAATTACG
@6. B 1 @List a text file.
Allows the user to have a text file displayed on the screen. It will
appear one page at a time.
@7. B 1 @Direct output to disk
Used to direct output that would normally appear on the screen
to a file.
Select redirection of either text or graphics, and supply the
name of the file that the output should be written to.
The results from the next options selected will not appear on
the screen but will be written to the file. When option 7 is
selected again the file will be closed and output will again appear
on the screen.
@10. B 1 @Clear graphics
Clears the screen of both text and graphics.
@11. B 1 @Clear text
Clears only text from the screen.
@12. B 1 @Draw a ruler.
This option allows the user to draw a ruler or scale along the x
axis of the screen to help identify the coordinates of points of
interest. The user can define the position of the first amino acid
to be marked (for example if the active region is 1501 to 8000, the
user might wish to mark every 1000th amino acid starting at either
1501 or 2000 - it depends if the user wishes to treat the active
region as an independent unit with its own numbering starting at its
left edge, or as part of the whole sequence). The user can also
define the separation of the ticks on the scale and their height. If
required the labelling routine can be used to add numbers to the
ticks.
@13. B 1 @Use crosshair.
This function puts a steerable cross on the screen that can be used
to find the coordinates of points in the sequence. The user can move
the cross around using the directional keys; when he hits the space
bar the program will print out the coordinates of the cross in
sequence units and the option will be exited.
If instead, you hit a , the position will be displayed but the
cross will remain on the screen.
If a letter s is hit the sequence around the cross hair is
displayed and the cross remains on the screen.
@14. B 1 @Reposition plots
The positions of each of the plots is defined relative to a users
drawing board which has size 1-10,000 in x and 1-10,000 in y. Plots
for each option are drawn in a window defined by x0,y0 and
xlength,ylength. Where x0,y0 is the position of the bottom left hand
corner of the window, and xlength is the width of the window and
ylength the height of the window.
--------------------------------------------------------- 10,000
1 1
1 -------------------------------------- ^ 1
1 1 1 1 1
1 1 1 1 1
1 1 1 ylength 1
1 1 1 1 1
1 1 1 1 1
1 -------------------------------------- v 1
1 x0,y0^ 1
1 <---------------xlength--------------> 1
--------------------------------------------------------- 1
1 10,000
All values are in drawing board units (i.e. 1-10,000, 1-10,000).
The default window positions are read from a file "MEPMARG" when the
program is started. Users can have their own file if required. As
all the plots start at the same position in x and have the same
width, x0 and xlength are the same for all options. Generally users
will only want to change the start level of the window y0 and its
height ylength. This option allows users to change window positions
whilst running the program. The routine prompts first for the
number of the option that the users wishes to reposition; then for
the y start and height; then for the x start and length. Note that
changes to the x values affect all options. If the user types only
carriage return for any value it will remain unchanged. The cross-
hair can be used to choose suitable heights.
@15. B 1 @Label a diagram
This routine allows users to label any diagrams they have produced.
They are asked to type in a label. When the user types carriage
return to finish typing the label the cross-hair appears on the
screen. The user can position it anywhere on the screen. If the user
types R (for right justify) the label will be written on the diagram
with its right end at the cross-hair position. If the user types L
(for left justify) the label will be written on the diagram with its
left end at the cross hair position. The cross-hair will then
immediately reappear. The user may put the same label on another
part of the diagram as before or if he hits the space bar he will be
asked if he wishes to type in another label.
@16. B 1 @Display a map.
It is often convenient to plot a map alongside graphed analysis in
order to indicate features within the sequence. This function allows
users to draw maps using files arranged in the form of EMBL feature
tables. Of course the EMBL table are usually only used for nucleic
acid sequence annotation but, as long as the features are written in
the correct format, they can be employed by this routine. The map is
composed of a line representing the sequence and then further lines
denoting the endpoints of each feature the user identifies. The user
is asked to define height at which the line representing the
sequence should be drawn; then for the feature height; then for the
features to plot.
@17. B 1 @Search for strings
Search for strings perfoms searches of all the sequences for
selected words and shows which sequences they are found in. The user
types in a word and defines the allowed number of mismatches. The
results are listed or plotted. If listed the display includes the
sequence number, the position in the sequence and the matching
string. The results are plotted in the following way. The x axis of
the plot represents the length of the aligned sequences and the y
direction is divided into sufficient strips to accommodate each
sequence. So if a match is found in the 3rd sequence at a position
equivalent to halfway along the longest of the sequences then a
short vertical line will be drawn at the midpoint of the 3rd strip.
If the sequences are aligned it can be useful if the motifs happen
to appear in related positions. For example see the original
publication. Typical dialogue follows.
? Menu or option number=17
X 1 Plot match positions
2 Plot histogram of matches
? 0,1,2 =
? Word to search for=TTGACA
? Minimum match (0-6) (6) =5
? (y/n) (y) Plot results N
2 35 TAGACA
5 14 TTTACA
6 37 TTTACA
11 14 TAGACA
14 14 TTGACA
17 14 GTGACA
17 22 TTAACA
20 1 TTGACA
@18. B 1 @Set strand
Set strand allows the user to define which strand(s) of the
sequences to analyse: input stand, complement of input, or both.
@19. B 1 @Set composition
Set composition gives the user three choices for setting the
composition of the sequences for use in the calculation of the
information content of words. The user can select the overall
composition of the sequences as read, an even composition, or can
type in any other 4 values.
@20. B 1 @Set word length
Set word length sets the length of word for which dictionaries will
be made.
@21. B 1 @Set number of mismatches
Set number of mismatches sets the level of fuzziness for the
creation of dictionary Dm.
@22. B 1 @Show settings
Show settings show the current settings for all parameters
associated with dictionary analysis. A typical diaplsy follows:
? Menu or option number=22
Current word length = 6
Number of mismatches = 1
Start position = 1
End position = 63
Input strand only
Observed composition
Dictionary Dw unmade
Dictionary Ds unmade
Dictionary Dm unmade
Dictionary Dh unmade
@23. B 1 @Make dictionary Dw
Make dictionary Dw creates a dictionary that contains a count of
the frequency of occurrence of each word in the collected sequences.
@24. B 1 @Make dictionary Ds
Make dictionary Ds creates a dictionary that contains a count of the
number of different sequences that contain each word.
@25. B 1 @Make dictionary Dm from Dw
Make dictionary Dm from Dw creates a dictionary from dictionary Dw
that contains the frequency of occurrence of each word (say X) in Dw
plus the frequency of occurrence of each word in Dw that differs
from X by up to m letters. Dm is called a fuzzy dictionary as it
contains the frequencies of occurrence of all words plus the
frequencies of all the words that are similar to them.
@26. B 1 @Make dictionary Dm from Ds
Make dictionary Dm from Ds creates a dictionary from dictionary Ds
that contains the frequency of occurrence of each word (say X) in Ds
plus the frequency of occurrence of each word in Ds that differs
from X by up to m letters. Dm is called a fuzzy dictionary as it
contains the frequencies of occurrence of all words plus the
frequencies of all the words that are similar to them.
@27. B 1 @Make dictionary Dh from Dm
Make dictionary Dh creates a dictionary from dictionary Dm and
whose entries are zero except for those words in any set of related
words that are most frequent. It finds the dominant words in each
set of relations and stores their counts.
@28. B 1 @Examine dictionary Dm
Examine dictionary Dm allows users to analyse the contents of
dictionary Dm to find the most common words or those words that
contain the most information. The user supplies a frequency or
information cutoff and chooses to have the results sorted on either
value. The program will find the top 100 words that achieve the
cutoff values and present them to the user sorted as selected. The
information content will be calcutated from either Dw or Ds
depending which was used to create Dm, and using the current
composition setting. Typical dialogue follows:
? Menu or option number=28
Looking for highest scoring words
The highest word score = 115
? Minimum word score (0-115) (0) =60
? Minimum information (0.00-1.00) (0.00) =.62
X 1 Sort on information
2 Sort on word score
? 0,1,2 =
? Maximum number to list (0-100) (100) =
The words are
Total words= 9 Maximum information= 0.7385326
TTGACA 60 0.73850
AAAAAC 64 0.66460
AAAAAA 90 0.64880
GTTTTT 66 0.64300
TTTTTG 73 0.64070
TTTTGT 63 0.63820
TTTTTC 65 0.63810
AAAATA 63 0.62670
TATAAT 65 0.62510
The highest word score = 115
? Minimum word score (0-115) (0) =60
? Minimum information (0.00-1.00) (0.00) =.62
X 1 Sort on information
2 Sort on word score
? 0,1,2 =2
? Maximum number to list (0-100) (100) =
The words are
Total words= 9 Maximum information= 0.7385326
AAAAAA 90 0.64880
TTTTTG 73 0.64070
GTTTTT 66 0.64300
TTTTTC 65 0.63810
TATAAT 65 0.62510
AAAAAC 64 0.66460
TTTTGT 63 0.63820
AAAATA 63 0.62670
TTGACA 60 0.73850
The highest word score = 115
? Minimum word score (0-115) (0) =!
@29. B 1 @Examine dictionary Dh
Examine dictionary Dh allows users to analyse the contents of
dictionary Dh to find the most common words or those words that
contain the most information. The user supplies a frequency or
information cutoff and chooses to have the results sorted on either
value. The program will find the top 100 words that achieve the
cutoff values and present them to the user sorted as selected. The
information content will be calcutated from either Dw or Ds
depending which was used to create Dh and using the current
composition setting. Typical dialogue follows:
? Menu or option number=29
Looking for highest scoring words
The highest word score = 115
? Minimum word score (0-115) (0) =60
? Minimum information (0.00-1.00) (0.00) =.6
X 1 Sort on information
2 Sort on word score
? 0,1,2 =
? Maximum number to list (0-100) (100) =
The words are
Total words= 4 Maximum information= 0.7385326
TTGACA 60 0.73850
AAAAAA 90 0.64880
TATAAT 65 0.62510
TTTTTT 115 0.60630
The highest word score = 115
? Minimum word score (0-115) (0) =50
? Minimum information (0.00-1.00) (0.00) =.5
X 1 Sort on information
2 Sort on word score
? 0,1,2 =
? Maximum number to list (0-100) (100) =
The words are
Total words= 8 Maximum information= 0.7385326
TTGACA 60 0.73850
TCTTGA 54 0.66080
AAAAAA 90 0.64880
TATAAT 65 0.62510
ACTTTA 57 0.61960
TTTTTT 115 0.60630
AGTATA 51 0.60540
TTATAA 55 0.59300
The highest word score = 115
? Minimum word score (0-115) (0) =50
? Minimum information (0.00-1.00) (0.00) =
X 1 Sort on information
2 Sort on word score
? 0,1,2 =
? Maximum number to list (0-100) (100) =
The words are
Total words= 8 Maximum information= 0.7385326
TTGACA 60 0.73850
TCTTGA 54 0.66080
AAAAAA 90 0.64880
TATAAT 65 0.62510
ACTTTA 57 0.61960
TTTTTT 115 0.60630
AGTATA 51 0.60540
TTATAA 55 0.59300
The highest word score = 115
? Minimum word score (0-115) (0) =!
@30. B 1 @Examine words in Dm
Examine words in Dm allows users to analyse the contents of
dictonary Dm at the level of individual words to find their
frequency, information content, and to see their base frequency
table. The user types in a word to examine and the program displays
the values and table. The information content will be calcutated
from either Dw or Ds depending which was used to create Dm, and
using the current composition setting. Typical dialogue follows:
? Menu or option number=30
? Word to examine=TTGACA
TtgacA 60 0.7385326
56 56 6 7 5 11
4 3 2 1 52 1
1 4 2 53 3 48
3 1 54 3 4 4
TTGACA
? Word to examine=TATAAT
taTAat 65 0.6251902
56 3 53 4 4 60
6 1 5 5 5 3
3 60 5 57 57 4
4 5 6 3 3 2
TATAAT
? Word to examine=
@31. B 1 @Examine words in Dh
Examine words in Dh allows users to analyse the contents of
dictonary Dh at the level of individual words to find their
frequency, information content, and to see their base frequency
table. The user types in a word to examine and the program displays
the values and table. The information content will be calcutated
from either Dw or Ds depending which was used to create Dm, and
using the current composition setting. Typical dialogue follows:
? Menu or option number=31
? Word to examine=TTGACA
TtgacA 60 0.7385326
56 56 6 7 5 11
4 3 2 1 52 1
1 4 2 53 3 48
3 1 54 3 4 4
TTGACA
? Word to examine=TATAAT
taTAat 65 0.6251902
56 3 53 4 4 60
6 1 5 5 5 3
3 60 5 57 57 4
4 5 6 3 3 2
TATAAT
? Word to examine=GGGGGG
gggggg 0 0.6199890
3 1 1 2 3 4
1 3 1 2 2 1
2 1 1 1 1 1
11 12 14 12 11 11
GGGGGG
? Word to examine=
@32. B 1 @Save or restore a dictionary
Save or restore dictionary allows users to write or read any
dictionary to and from disk files. The user is asked te define the
dictionary and file. The function is useful if the machine being
used is very slow at calculating because the files can be handled
quickly. However note that the files cannot be processed by any
other program.
@33. B 1 @Find inverted repeats
Find inverted repeats performs searches for simple inverted repeat
sequences in each sequence. They are defined by a range of loop
sizes and a minimum number of potential basepairs. The results can
be plotted or listed. The x axis of the plot represents the length
of the aligned sequences and the y direction is divided into
sufficient strips to accommodate each sequence. So if an inverted
repeat is found in the 3rd sequence at a position equivalent to
halfway along the longest of the sequences then a short vertical
line will be drawn at the midpoint of the 3rd strip. Alternatively,
if the results are listed, the potential hairpin loops are drawn
out, with the sequence number and the position of the loop. Typical
dialogue follows.
? Menu or option number=33
Define the range of loop sizes
? Minimum loop size (0-10) (3) =0
? Maximum loop size (1-20) (3) =
? Minimum number of basepairs (1-20) (6) =
? (y/n) (y) Plot results N
Searching
Sequence 3 34
C
G.T
T-A
A-T
T.G
T.G
G.T
ATCTTT TATTTCA
33
Sequence 5 35
T
G.T
T.G
A-T
T.G
G.T
C-G
T.G
TCCGGC AATTGTG
34
@ End of help