1996.1: New programs
This is a new sequence comparison program to replace our old sip
program. In addition to replacing sip it includes a new and much more
flexible interface to the sequences libraries. Novel features of sip4
are a window for sliding the sequence passed one another (and this can
be controlled by the graphics crosshair), the ability to compare
nucleic acids against protein, colour displays, the facilty to overlay
plots and to hide and recall previous displays. Novel features of the
sequence library interface include new types of text search and modes
of combining search results, the ability to select fields from the
entries, and its general ease of use. The
online help is the best source of
This is a new standalone program for searching and retrieving data from
the sequence libraries. See the "Sequence Library Browser" section of the
online help for full details.
Two new programs, trace_clip and scale_trace_clip, have been added as
a better alternatives to the old clip program (which is still
available). These work on analysis of the trace data. In contrast the old
clip program (as still used by pregap) uses only the called sequence. See the
trace_clip and scale_trace_clip
manual pages for more information.
1996.1: Changes to programs
The most important changes have been displayed in a bold text
Renamed "Select Oligo" to "Select Primer".
Removed sorting phase of oligos from Select Primer. This was crashing on
SGI machines anyway.
The Select Primer mechanism had a serious bug with checking
template names (confusion between gel reading number and template number).
Occurred once the selected primer was accepted.
Added an update call to the editor just before destroying the window.
It appears to wreck the tk binding mechanism otherwise.
Join editor started in lock mode.
Join editor "reveal" state now more consistent. They're now both set
or neither set, rather than possibly one and not the other.
Set the 'editorState' variable for both components of the join editor
when quitting. Previously race conditions existed where it was
possible to crash when destroying the join editor.
Making a join when the stop codon plot or restriction enzyme plot (and
theoretically other non 2D-plot plots) were displayed could corrupt
Attempting to 'zap' the cutoffs when in the consensus now beeps
instead of moving the cursor incorrectly.
Dump consensus now outputs 50 bases each line (was 60).
Set editorState to be StateDown at the start of editor shutdown. This
removes potential race conditions in accessing stale memory. I've only
seen this crash when running under a deliberately forced slow X link.
Added show quality mechanism to shade bases on their quality scores
Fixed bug (never witnessed) when displaying quality values (red bases)
- reading past end of an array.
Replacing/inserting pads in the editor now gives them averaged (of
surrounding bases) quality values.
Protein translations in the contig editor were sometimes incorrect for
sequences containing non ACGT characters.
Better integration between editor and template displays. Highlighting
names in the editor highlights them in the template displays and vice
Bringing up two contig editors from a find internal joins match now
starts with reveal cutoffs enabled when appropriate.
Trace display has an X-Mag scalebar.
Trace display should remember its last position, width and xmag. This
is particularly useful when used with auto display traces and next
Fixed bug where quitting an individual trace quitted all of them. The
current approach is to perform the tidy ups on window destroy bindings
which will therefore catch any devious way of destroying all or a
single trace. Great care should be taken when checking this - eg with
multiple trace windows (possibly from the same contig editor or two
halves of a join editor).
It was sometimes possible to remove all the traces yet leave the main
trace window present (and empty). Removing the last one now destroys
the main trace window.
Improved robustness during resizing. Still not perfect, but it no
Position numbers in traces are now right aligned with the bases to be
consistent with the editor.
Can now scroll right to the ends of traces whilst keeping the editor
cursor in the centre. Previously the display disallowed showing past
the ends of a trace.
Traces are now removed for contigs being joined. This solves problems
with trace lock mode misbehaving.
Removing a single match from the contig selector plot now removes the
entire result if that was only match present.
Making joins removes FIJ matches that are now between identical
contigs (and removes the whole result if applicable).
Moving a contig onto (exactly?) a contig separator bar gave a tk
Added a complement contig shortcut to the contig popup menu.
Selecting contigs for dialogues sometimes didn't set the left and
right region values correctly.
Displayed tags were one base too short.
Fixed directly assembly bug in parsing the AP line for '*new*'
Assembly percentage mismatch and those generated by the alignment
display function now agree that "*" vs "," is a match and "*"/"," vs
"-" is a mismatch.
Assembly writes the failed reading messages to both output and error
windows. Useful when redirecting.
Assembly into single contig or new contigs didn't check for zero
length readings (which are classified as inconsistent).
Assembly (several forms) couldn't handle inputting of quality values
from SCF V3.0 files.
Quality values inputted from SCF files are no longer averaged. This
task has been moved to eba.
The masked assembly function corrupted memory when dealing with tags
in, or overlapping, the cutoff data at ends of contigs.
Now check for the "current contig identifier" existing before using
it. Disassemble readings could be used to remove it and then
subsequently produce tk errors.
Removed (very) poorly timed warning message from disassembly (stating
that you ought to make a backup). It _should_ be obvious anyway!
Fixed memory leak in directed assembly
Assembly of non ascii formats (plain or experiment file) is now
Safe guard against entering zero length tags by setting the sequencing
vector left (SL) clip to 0.
Suggest Primers outputs template names too. Changed screen output to
speak in contig name terminology (instead of number).
The Database Information function wasn't called when opening another
database from the file browser.
Fixed two memory leaks in close database.
Changed allocate() function (lowish level, but in gap section still)
to not write the record. This is always done after allocate is called
and hence meant we wrote twice as much as necessary.
Better handling of deletion of windows via the window manager (eg
contig editor calls the quit system and deleting the toplevel closes
Huge tidy up of the tag initialisation (for tcl usage) code.
Tag redefinitions now overide the tag with the same ID instead of the
same long name.
Dashes in the sequence now honour their stored confidence value in the
SCF file (were set to 25%) for consensus calculations. This improves
editing at 100% consensus cutoff, allowing change of confidence only
to 'fix' the problem.
Some consensus calculations (those using consen.c) ignored the globally
set quality cutoff value.
Function to analyse cutoff data for quality (used in the clip program
and FIJ on hidden data) accessed previously freed memory.
Check assembly now displays alignments in the text output window when
checking used data.
Check assembly alignment display (for cutoff data) had an incorrect percentage
mismatch when the alignment started or ended with pads. The percentage
mismatch for used data comparison was also slightly out.
Using the file browser to load or save to a normal file (eg to output
the consensus or load a list) now correctly handles files in other
Removed (broken) busy handling from the file browser. It sometimes
Improved (more visible to the user) error handling of 'contig busy'
Automatic primer suggestion sometimes didn't create tags when
suggesting primers at the ends of contigs.
Fixed read pairs output where it sometimes was confused between
categorising it's length; some "expected"s should have been
Find read pairs used to crash with excessively large numbers of
matches compared to the number of templates.
Find read pairs sometimes crashed when there was no template
Error reporting code printed error code twice instead of code +
Major tidy up of OSP. Removed quite a bit of unused code; fixed
several memory corruptions; doesn't fail when finding too many oligos
(instead stops at that point); ran through a C beautifier :-)
Template display ruler would give wrong information (or crashed) when
using the right button -> "information" menu.
Tidied up some help calls (spelling errors etc)
Fixed zooming problems in some displays (template display and contig
comparator) when it was possible to zoom accidently.
The "readings" list is now updated more often in the template display.
This fixes problems with removing and reploting the readings, clear
active reading list and highlight active readings.
The crosshair in the template display now extends over all the plots
(ie main, quality, restriction enzymes and ruler).
The selection of tag names created by the restriction enzymes search
is now under the control of the user.
The contig editor cursor when shown in the template display now
extends over the quality and restriction enzymes plots (thus allowing
control of the contig editor from the quality plot).
Tidied up highlighting of readings in the template display.
Contig selector now also shows the Y coordinates of the crosshairs.
The diagonal line on the contig comparator window now updates
Removed zoom in and zoom out buttons from many plots. Previously this
caused confusion and zoom out is typically achieved by use of the
Better choice of fonts with the inbuilt html viewing. On some displays
the previous fonts didn't exist at all.
Online help system no longer needs to have tcl/tk installed on the
Outputting the consensus in FASTA format now gives each sequence a
name of project.version.contignum instead of project.version.
Changed defaults for Find Internal Joins. We have a lower percentage
mismatch and a shorter window length for scanning the hidden data.
Masked consensus was not working correctly when masking tags that are
in the cutoff data (they are now ignored).
Several restriction enzyme plot updates. The enzymes can no longer be
read from a personal list (but can from a file still). Fixed several
oddities of the initial dialogue.
The stop codon plot wouldn't allow displaying of the reverse strand
without also displaying the forward strand. The reset button no longer
resets which strands are being shown.
Fixed a problem with handling exactly 16 character reading names. This
may have caused problems for many dialogues.
Find read pairs, find repeats and find oligos crashed when given a
list of zero contigs.
Attempts to use highlight readings within the template display on a
list of readings that are not present in the display no longer
Check for the file of filenames being within the file of filenames.
It may sound odd, but it's all to easy to try creating it with
something like "ls * > fofn".
Now handles blank lines in the file of filenames.
Fixed handling of the NAME field of SCF files. Caused problems with
Minor updates the vector clipping output.
Added parameters (set within the pregaprc mechanism) for adjusting the
vector clipping and repeat searching programs.
Shifted xmag scalebar to the left of the ymag scalebar.
Now distinguishes vector and quality clips for shading.
Quitting trev when no traces had been loaded no crashes.
Editing sequence sometimes yielded a poor correspondence between the
mouse cursor and the editing cursor.
Outputting of experiment file ON line no longer drops the last value.
Handling of the default save type has been improved.
Added -xmag and -ymag command line arguments. This is particularly
useful for specifying the magnification, size and position of the trev
window for use from pregap (see trev_args in the pregap
Now displays the current sequence name in the window title bar.
Added a -good_only command line argument to the extract_seq program.
Only relevant for experiment files.
Autodetection of trace types when using format "-any" on some of the
utility programs was sometimes incorrect.
Updated programs that access sequence libraries to handle more
divisions (embl division_lookup set for March 96 release).
Fixed bug in nip pattern search: if the probability of finding a
pattern was 1.0 then we ended up taking the log of zero thus causing a
Eba now performs averaging of its quality values (see above).
Improved portability of io_lib and added a scf_dump program for
debugging SCF files.
Changed repe to allow users to input a tag type other than ALUS.
Substantial tidy up of source code organisation - no effect on the
actual running of the programs.
Rewrote the Staden_compile script. The old version was out of date and
did not work.