Diane Trout [Tue, 3 Apr 2007 23:39:44 +0000 (23:39 +0000)]
fix problems with motif changes not showing up in sequencebrowser
This patch adds a couple of new unit test cases to make sure that
when the motif sequence list is changed it is actually reflected
in the sequence browser.
The problem was that when I originally coded it, a GlSequence held
a shared_ptr<Sequence> so even though SequenceBrowser had new copies
of GlSequence, the underlying Sequence was still shared.
The change to GlSequence being a subclass of Sequence with a copy
of the motif_list meant that changes to the motif_list in one
copy weren't reflected in the copy held by the SequenceBrowser.
I fixed it by changing sequence to hold a shared_ptr<list<motif> >.
the downside is that that the motif_list is now always shared
between copies of a Sequence, which is likely to cause problems
when opening a second mussa window.
However since I plan on tossing the current annotation and motif handling
code at some point in the near future, this patch should be "good
enough".
Diane Trout [Tue, 3 Apr 2007 23:38:24 +0000 (23:38 +0000)]
delete default layout in MotifEditor
Qt was generating warning messages about couldn't set layout
on the MotifEditor while one was already set. It turns out you
need to delete the default layout before calling setLayout().
Diane Trout [Mon, 2 Apr 2007 22:29:50 +0000 (22:29 +0000)]
test motif editor pointers
just make sure we have the right shared pointers in our editor
Diane Trout [Sat, 31 Mar 2007 01:44:41 +0000 (01:44 +0000)]
test motif editor
I was thinking this is where the source of my motifs disappearing
might have been, but aparently the motif editor does still work
correctly.
Diane Trout [Sat, 31 Mar 2007 01:00:41 +0000 (01:00 +0000)]
test MotifModel and MotifElement
still haven't found the bug where motifs aren't being rendered
on the GlSeqBrowser correctly.
Diane Trout [Fri, 30 Mar 2007 21:02:13 +0000 (21:02 +0000)]
seperate qt unittests into subdirectories
I wanted to move the various qt unit tests into subdirectories to
make it a bit cleaner to add more tests.
Diane Trout [Fri, 30 Mar 2007 18:36:28 +0000 (18:36 +0000)]
incorporate drawable and annotations
this removes most of the contents of GlSequence in favor of drawable,
and adds shared_ptrs to both drawable and annotations into SeqSpan.
One problem is getting the code to do coping instead of sharing a
reference at the right time.
What I've got right now is I added some constructors that take ThingRefs
(aka boost::shared_ptr<thing>) and those will create copies, while
the more standard reference or pointer initializers just copy the
shared_ptr.
This was a bit problematic in the case of GlSeqBrowser, which really
needs to make sure that its glsequences have their own drawable component.
Diane Trout [Fri, 30 Mar 2007 18:35:17 +0000 (18:35 +0000)]
create class to hold drawing information
this will be added to SeqSpan to add information needed to draw
stuff on the screen--only if a particular SeqSpan is being rendered.
Diane Trout [Fri, 30 Mar 2007 18:34:34 +0000 (18:34 +0000)]
create a metadata holding class
Diane Trout [Tue, 27 Mar 2007 21:46:54 +0000 (21:46 +0000)]
Handle subseq when the parent is on the minus strand
Diane Trout [Sat, 24 Mar 2007 01:00:49 +0000 (01:00 +0000)]
move strand into seqspan
this patch moves strand storage from Sequence into SeqSpan,
also when accessing sequence data from a SeqSpan that is currently
on the minus side it correctly returns reverse complemented data.
Unfortunately getting iterators that point to data thats a
transformation of currently existing data is a giant pain and
was making SeqSpan way to complicated.
So I took the easy way out. SeqSpan will now cache a reverse complement
of the region its pointing to and return iterators based on that.
Also Alphabet can reverse complement a string,
Drat, just realized that if one changes the region of SeqSpan,
the rc_seq will need to be invalidated.
Diane Trout [Wed, 21 Mar 2007 07:29:39 +0000 (07:29 +0000)]
Missed part of "Store Sequence sequence location in a shared_ptr class"
Bad things happen if you let eclipse refactor your _darcs pristine
repository. Modifications that you made don't get recorded.
This patch should make buildbot happy.
Diane Trout [Wed, 21 Mar 2007 03:55:12 +0000 (03:55 +0000)]
Move alphabet type into SeqString
This is another large patch.
This moves alphabet_ref from Sequence to SeqString.
I still need to deal with a better way of handling reverse complementing
especially given my attempts to keep everything in reference counted
structures.
Also this patch and the previous:
Store Sequence sequence location in a shared_ptr class
have broken the display of motifs in mussa.
(I used to be using shared_ptr<Sequences> for everything,
but now since there's a couple of seperate objects updating
the motifs in one doesn't really help so much for the other.
so warning, these two patches and the next few that I make
are going to be unstable.
**END OF DESCRIPTION***
Place the long patch description above the ***END OF DESCRIPTION*** marker.
The first line of this file will be the patch name.
This patch contains the following changes:
M ./alg/CMakeLists.txt +1
M ./alg/alphabet.cpp +35
M ./alg/alphabet.hpp -1 +14
M ./alg/motif_parser.cpp -3 +4
A ./alg/seq.cpp
M ./alg/seq.hpp -3 +17
M ./alg/seq_span.cpp -6 +3
M ./alg/seq_span.hpp -1 +4
M ./alg/sequence.cpp -82 +26
M ./alg/sequence.hpp -15 +10
M ./alg/test/CMakeLists.txt +1
M ./alg/test/test_alphabet.cpp +5
A ./alg/test/test_seq.cpp
M ./alg/test/test_seq_span.cpp +9
M ./alg/test/test_sequence.cpp -43 +43
M ./qui/motif_editor/MotifElement.cpp -2 +2
Diane Trout [Tue, 20 Mar 2007 23:05:43 +0000 (23:05 +0000)]
Store Sequence sequence location in a shared_ptr class
This is a large (176 changes) patch, that moved most of the
information needed to store a sequence location into a class called
SeqSpan, which is designed to be solely managed as a shared_ptr.
This is one step in converting sequence annotations into being tree
of subsequences.
The hope is that the Sequence class doesn't store very much and
is mostly responsible for managing various collections of shared_ptrs
(which are a bit annoying to work with as local variables).
This also updated GlSequence to be a subclass of Sequence
(instead of holding a reference a shared_ptr<Sequence>)
Those changes required updating many random little function
calls.
Diane Trout [Thu, 8 Mar 2007 19:37:42 +0000 (19:37 +0000)]
make sure paths continue to start with a /
for some reason os.path.split was loosing the leading / for some
of my paths, this tests to see if it was there originally and
if it was, makes sure that its still present.
Diane Trout [Thu, 8 Mar 2007 02:24:29 +0000 (02:24 +0000)]
add a useful comment
Brandon King [Sat, 3 Mar 2007 01:37:58 +0000 (01:37 +0000)]
Sub-analysis failure to draw on init fix (ticket:254)
* This patch triggers a redraw after the window has been created by setting the dynamic threshold to the minimum.
Brandon King [Sat, 3 Mar 2007 01:04:35 +0000 (01:04 +0000)]
Save to image crash fix (ticket:251)
Diane Trout [Mon, 26 Feb 2007 22:48:50 +0000 (22:48 +0000)]
mupa for test case
this is used to verify that the mussa tosses a useful exception
when someone sets a bad filename for an annotation.
Diane Trout [Fri, 23 Feb 2007 19:28:10 +0000 (19:28 +0000)]
cmake was trying to link -loptimized
ticket:250
aparetnly QT_QTCORE_LIBRARY wasn't defined, so cmake was trying to link
-loptimized. However QT_QTCORE_LIBRARY_RELASE was defined, which
makes CMake happier
Brandon King [Fri, 23 Feb 2007 00:00:51 +0000 (00:00 +0000)]
Mussagl version increased to 1.1.0
Brandon King [Wed, 21 Feb 2007 23:38:03 +0000 (23:38 +0000)]
WhatsThis update 2
* Removing '*' since the bug seems to be Linux specific
* Just having a space at the end fixes the linux whatsthis.
Brandon King [Wed, 21 Feb 2007 23:20:47 +0000 (23:20 +0000)]
WhatsThis update
Added WhatsThis comments for:
* Sequence info bar
* New analysis dialog box
Brandon King [Wed, 21 Feb 2007 21:00:32 +0000 (21:00 +0000)]
Added Qt version to Mussagl about box.
Diane Trout [Wed, 21 Feb 2007 01:46:24 +0000 (01:46 +0000)]
keep motifs after closing window
ticket:195
My previous implementation kept destroying and recreating the motif
editing dialog box. This version only deletes the motif editor when
MussaWindow.clear() is called.
Diane Trout [Tue, 20 Feb 2007 23:26:37 +0000 (23:26 +0000)]
more error messages for loading an annotation.
ticket:239
Return specific error messages if a path doesn't exist or is a directory
instead of a more generic there was a problem loading.
Diane Trout [Thu, 15 Feb 2007 19:30:55 +0000 (19:30 +0000)]
ignore paircomp
currently don't pay attention to the subversion checkout of paircomp
I have
Brandon King [Wed, 14 Feb 2007 01:50:23 +0000 (01:50 +0000)]
Added newline char at end of file to remove gcc warning
Brandon King [Wed, 14 Feb 2007 01:39:23 +0000 (01:39 +0000)]
Added newline char at end of file to remove gcc warning
Brandon King [Wed, 14 Feb 2007 01:34:32 +0000 (01:34 +0000)]
Added new line at end of file to remove gcc warning
Brandon King [Wed, 14 Feb 2007 01:07:47 +0000 (01:07 +0000)]
Added newline char to end of line (remove compile warning)
Diane Trout [Tue, 13 Feb 2007 23:40:02 +0000 (23:40 +0000)]
IsFileValidator doesn't use signal/slots
Diane Trout [Sat, 3 Feb 2007 01:55:46 +0000 (01:55 +0000)]
detect 64bit processors and add -fPIC
this is an intermediate solution as I probably can use ADD_DEFINES()
to add the command line options for the compiler instead of fiddingly
with CMAKE variables
Props to Brandon for finding the solution in an openwengo patch.
http://dev.openwengo.org/trac/openwengo/trac.cgi/changeset/9139
Long Live CMake!
Diane Trout [Fri, 5 Jan 2007 01:49:12 +0000 (01:49 +0000)]
add some newlines at the end of some of our files
gcc 4.2 complains about this.
Diane Trout [Thu, 4 Jan 2007 22:34:37 +0000 (22:34 +0000)]
conditionally build the paircomp tests
Diane Trout [Thu, 4 Jan 2007 22:28:08 +0000 (22:28 +0000)]
paircomp used the string find_first_not_of
so i needed to add it to my sequence class. (I'm trying to keep
my sequence class to look like an immutable string).
Diane Trout [Thu, 4 Jan 2007 21:40:35 +0000 (21:40 +0000)]
split unittests into seperate executables
ticket:208
I decided it was easer to debug my unittests when they were
in smaller pieces.
Diane Trout [Thu, 21 Dec 2006 00:02:57 +0000 (00:02 +0000)]
build paircomp if available
Diane Trout [Thu, 14 Dec 2006 21:17:25 +0000 (21:17 +0000)]
len(mussa.paths()) should equal the number of found paths
ticket:244
for some reason I was returning the number of sequences instead,
that is available as sequence_count.
Renamed size_t in NwayPaths to NwayPaths::size_type
Also I exported the various types of path size counts to the python layer
Diane Trout [Wed, 13 Dec 2006 00:42:03 +0000 (00:42 +0000)]
be resistent to not creating the browser
just on the off chance that MussaWindow.browser isn't created
test the pointer before trying to call it.
(AKA some left over debugging code)
Diane Trout [Wed, 13 Dec 2006 00:40:25 +0000 (00:40 +0000)]
make mussawindow initialize icons
this is also part of the useless try to stop qobject::moveToThread
warnings, but I decided it was a good idea for when qui/mussagl.cpp:main
isn't called because we were launched from a python extension.
Diane Trout [Wed, 13 Dec 2006 00:14:00 +0000 (00:14 +0000)]
try to reduce number of moveToThread warnings
I went off on a fools errand of trying to get rid of the QObject::moveToThread
warnings that Qt was spitting out when trying to prepare an icon.
Qt does prefer widgets to be dynamically constructed and to have their
parent widget set, which is what I tried to do to cut down on the
useless chatter.
(Note the chatter only happens on OS X when the frameworks have been installed
into the application bundle).
Diane Trout [Tue, 12 Dec 2006 02:27:22 +0000 (02:27 +0000)]
fix infinite loop for absolute pathnames
and add a --prelink-only update
and update to qt 4.2.2
Diane Trout [Thu, 7 Dec 2006 23:49:39 +0000 (23:49 +0000)]
provide get_py and get_py_ptr
I didn't like (*get_py)['name' as a way of getting a python namespace
object. So I changed get_py back to returning a reference by introducing
a new function get_py_ptr which creates the python singleton and returns
a pointer to it.
Diane Trout [Thu, 7 Dec 2006 00:31:08 +0000 (00:31 +0000)]
cut down on unnecessary linking to the python library
Diane Trout [Thu, 7 Dec 2006 00:23:14 +0000 (00:23 +0000)]
Allocating objects in the constructor causes problems
What do you know, being lazy and initializing Qt GUI objects in the
constructor cause problems. (AKA a segfault when running as a test case).
This patch allocates the various GUI objects in an actual function
(which is so the different contstructors can use the same initialization
code.
It looks like another coding standard to remember.
Diane Trout [Tue, 5 Dec 2006 23:54:57 +0000 (23:54 +0000)]
make compiled in python extension initialization more flexable
Because of weird library ordering issues, my test case that tested
running python code was looking for compiled in python modules that
weren't available yet it wouldn't link properly.
I solved this by making it possible to provide a list of what
compiled-in python extensions should be initialized when you launch
the interpreter, so the mussagl program, which does have all the right
components linked in is what is specifying what modules should be
provided to the python interpreter.
Now I just need to fix the build system so you can compile mussa without
all this python crud if needed.
And maybe decide how to launch the gui from a stanard python interpreter.
Diane Trout [Tue, 5 Dec 2006 02:22:00 +0000 (02:22 +0000)]
directly build the python extension modules
I learned about SET_TARGET_PROPERTIES( ... PREFIX )
to change the starting prefix for a library, which means
that I don't need to copy the libX.so to X.so to make something
a python importable module.
Diane Trout [Tue, 5 Dec 2006 00:17:22 +0000 (00:17 +0000)]
provide python interpreter for mussa qui via a seperate thread
helps ticket:201
Since both the python read-eval-print loop and Qt have their own
event loops one can't easily have a single threaded application
provide GUI code while still having an interpreter sitting around.
Additionally due to the limitations of OS X and Windows, the main
thread needs to be the GUI thread, so I needed to start the python
interpreter in a seperate thread.
I implemented several helper classes in qui/threading to help manage
creating threads. Currently it just provides a singleton interpreter
thread. The interpreter when started in its subthread will try to
initialize ipython, and if that fails will try InteractiveConsole
(I suppose I should've caught that failing, and then finally fell back
to the fgets read-eval-looop).
The way access to the GUI layer is handled is via a signal/slot thread
specific proxy class which holds a mussa analysis object and notifies
the copy in the main thread via a signal to create a new window using
the provided mussa object.
Access to some parts of the mussa object are thread safe, because I was
so enthusiastic about marking functions as const. All the other parts
are, shall we say, "up for grabs".
The other issue is I really need to improve the CMake scripts to be
a bit more robust about deteriming if python should be linked in.
(And one of my tests breaks because of this patch).
But since it works on OS X I want to know what it'll do on linux.
I'm pretty sure since a windows GUI app doesn't have a console that
it won't work on windows. (To say nothing of the command line
argument parser crashing under windows).
Diane Trout [Thu, 30 Nov 2006 02:23:08 +0000 (02:23 +0000)]
allow adding and viewing sequences to an analysis from python
this required a way to deal with the collection of sequences
returned by Mussa::sequences()
the python wiki had some suggestions (though their code didn't compile)
http://wiki.python.org/moin/boost.python/StlContainers
Diane Trout [Wed, 29 Nov 2006 02:14:45 +0000 (02:14 +0000)]
add python interface to seqcomp
which is actually provided by the class FLP
Diane Trout [Wed, 22 Nov 2006 20:24:21 +0000 (20:24 +0000)]
Finish off setting sequence offset user interface
ticket:111
I thought it would be better for the edit sequence properties action to live
under the main edit menu, instead of the popup menu.
Also I decided to use apply/close instead of ok/cancel as it seemed better
to make fiddling with the offset interactive.
And yes I probably should implement some graphical way of aligning the
sequences instead of just typing in offsets.
Diane Trout [Tue, 21 Nov 2006 20:26:46 +0000 (20:26 +0000)]
quick option to show sequence properties window
Diane Trout [Tue, 21 Nov 2006 20:24:01 +0000 (20:24 +0000)]
rename ok/cancel to okButton/cancelButton
so I can use cancel as a function name.
Diane Trout [Tue, 21 Nov 2006 03:08:00 +0000 (03:08 +0000)]
fix bad #ifdef names
Diane Trout [Fri, 17 Nov 2006 23:19:49 +0000 (23:19 +0000)]
more fs::native for user supplied paths
ticket:237
Give boost::filesystem more hints about what filenames were entered by the
user and thus conforming to native file conventions.
Diane Trout [Thu, 2 Nov 2006 21:35:41 +0000 (21:35 +0000)]
include sequence property editor source files
sorry tristan, I forgot to add the files.
Diane Trout [Wed, 1 Nov 2006 23:55:26 +0000 (23:55 +0000)]
allow copying files into a dmg
the manual is a .html file that needed to be copied into the dmg
which required a small update to osxdist.py
Brandon King [Wed, 1 Nov 2006 18:06:07 +0000 (18:06 +0000)]
Mussagl Version number updated to 1.0
* ticket #235
Brandon King [Wed, 1 Nov 2006 18:01:36 +0000 (18:01 +0000)]
Win32 installer script update for 1.0
* Updated installer for 1.0 version of mussagl
Brandon King [Wed, 1 Nov 2006 17:51:24 +0000 (17:51 +0000)]
Mussagl Manual: 1.0 docs part 4
* Updated motif file format
* Updated UCSC Genome Broswer section slightly
Brandon King [Wed, 1 Nov 2006 17:39:10 +0000 (17:39 +0000)]
Mussagl Manual: mussa_manual.adp updated for 1.0 docs
* Updated for 1.0 documentation.
Diane Trout [Tue, 31 Oct 2006 18:43:10 +0000 (18:43 +0000)]
update CMakeLists.txt to build new SequencePropertiesWindow
Diane Trout [Tue, 31 Oct 2006 18:41:38 +0000 (18:41 +0000)]
update osxdist for qt4.2.1
Diane Trout [Mon, 30 Oct 2006 22:47:45 +0000 (22:47 +0000)]
move SubanalysisWindow code to a subdirectory
Diane Trout [Mon, 30 Oct 2006 20:49:59 +0000 (20:49 +0000)]
include filename in unparsable annotation error message
ticket:236
Diane Trout [Mon, 30 Oct 2006 20:25:21 +0000 (20:25 +0000)]
report filename for invalid fasta files
ticket:158
Diane Trout [Sat, 28 Oct 2006 01:53:48 +0000 (01:53 +0000)]
don't use staticly allocated widgets
dynamically create the widgets used in SequenceDescription
Diane Trout [Sat, 28 Oct 2006 01:53:17 +0000 (01:53 +0000)]
add include QCloseEvent to MussaWindow.hpp
wasn't needed but it was being used so this counts
as a bit more documentation
Diane Trout [Sat, 28 Oct 2006 01:47:01 +0000 (01:47 +0000)]
allow verticle scrollbar for sequence browser widget
ticket:182
if the window is smaller than the minimum useful scrollable browser
size start using a scroll bar.
Diane Trout [Sat, 28 Oct 2006 01:40:35 +0000 (01:40 +0000)]
compute the correct starting window size
ticket:233
try to compute a window size that will show the tracks as the
gl canvas decided to draw them.
Diane Trout [Fri, 27 Oct 2006 23:56:32 +0000 (23:56 +0000)]
use pointers for zoom spinbox in ZoomWidget
Brandon King [Sat, 28 Oct 2006 01:05:17 +0000 (01:05 +0000)]
Mussagl Manual: Docs 1.0 (part 3)
* Made link to SMN1 .mupa creation (ticket #170)
* Documented deselecting tracks/paths. (ticket #213)
* Fixed broken compile of rst2html from previous patch.
Brandon King [Sat, 28 Oct 2006 00:44:58 +0000 (00:44 +0000)]
Mussagl Manual: Docs 1.0 updates (part two)
* Updated Mac OS X install instruction. (ticket #168)
* Documented why sub-analysis exists (ticket: #214)
* Spelling err fix.
* Hid changelog / major updates sections for future use. (ticket: #162)
Brandon King [Sat, 28 Oct 2006 00:15:33 +0000 (00:15 +0000)]
Mussagl Manual: Updates for Docs 1.0
* Moved UCSC tutorial toward end, but linked to from Obtaining Data section.
* Added animated gif under dynamic threshold section.
* Documented command line options. (tickets: #167, #225)
* Mentioned Python existing in Mussagl. (tickets: #167, #227)
* Updated repeats documentation. (tickets: #167)
* Updated .mupa file format description.
* Added note about .mupa comment character.
* Added a create .mupa section for UCSC tutorial. (ticket:164)
* Linked to Diane's OverlappingWindow wiki page (ticket:137)
Diane Trout [Fri, 27 Oct 2006 20:40:20 +0000 (20:40 +0000)]
Use Qt4.2 openUrl to show manual
ticket:217
This function means I can link to a website without using python.
So this patch disables building the python interpreter into mussa.
I'll make it optional when I actually make some progress in
interacting with mussa via python.
Diane Trout [Fri, 27 Oct 2006 17:57:05 +0000 (17:57 +0000)]
implement set window state
ticket:194
basically works, though I need to get mussa to notice when sequence
information has been changed.
Diane Trout [Thu, 26 Oct 2006 22:51:27 +0000 (22:51 +0000)]
include icon extension for os x bundle information
Diane Trout [Thu, 26 Oct 2006 22:30:31 +0000 (22:30 +0000)]
add copy sequence as string option
ticket:215
it turned out that the reson I couldn't paste was all the invalid
characters in the fasta representation of the sequence. This adds
a copy sequence option which just copies the sequence as an undecorated
string. (which does paste).
Of course this is now confusing as there's two copy options...
Diane Trout [Thu, 26 Oct 2006 20:39:54 +0000 (20:39 +0000)]
display number of basepairs copied
ticket:211
this also provides a quick and dirty way of counting number of base pairs.
Brandon King [Thu, 26 Oct 2006 00:38:10 +0000 (00:38 +0000)]
Mussa Window Icon
* Added mussa.png icon.
* Added mussa.png to qrc file.
* Added the icon to qApplication.
Diane Trout [Tue, 24 Oct 2006 21:38:47 +0000 (21:38 +0000)]
tagged release_1.0_rc3
Brandon King [Tue, 24 Oct 2006 17:01:13 +0000 (17:01 +0000)]
Mussa Manual: spelling, wording, and grammer
Diane Trout [Tue, 24 Oct 2006 00:44:15 +0000 (00:44 +0000)]
call set_soft_threshold after subanalysis
ticket:216
this should make sure that all the match lines show up with you
first view a subanalysis. (Though perhaps not in the most
CPU efficient way.)
Diane Trout [Mon, 23 Oct 2006 22:55:44 +0000 (22:55 +0000)]
Enable Qt4 tests
ticket:207
To fix the problem generating the moc_Test files I stopped trying
to fake the .hpp file for moc, and renamed the qui/test/Test*.cpp files to
.hpp and added a very small .cpp file which included the header and
called the QTEST_MAIN or QTEST_APPLESS_MAIN macro.
APPLESS will work even if I don't have a working X server on linux, but
some parts of Qt require that the gApp be constructed.
Diane Trout [Fri, 20 Oct 2006 21:59:06 +0000 (21:59 +0000)]
add nl to end of 3 files
Diane Trout [Fri, 20 Oct 2006 01:33:10 +0000 (01:33 +0000)]
avoid multiple calls to setSoftThreshold
ticket:200
So I took the easy route and just wrapped a widet->setEnabled(false)
widget->setEnabled(true) around the setSoftThreshold code. Which should
hopefully prevent the possibility of calling setSoftThreshold before
the other call has terminated.
Diane Trout [Fri, 20 Oct 2006 01:11:36 +0000 (01:11 +0000)]
copy motifs to a new subanalysis
ticket:199
Also the second problem was that the motif_scan wasn't using the right
offsets to compute the motif start/stop locations.
Diane Trout [Thu, 19 Oct 2006 23:27:07 +0000 (23:27 +0000)]
fix motif loader under release build
tciet:163
It turns out that allocating a static class under a release build with a
static char might not be so reliable. This showed up as two problems
first was the test_algorithm unit test would fail.
The second was that the motif parser wouldn't work. In my efforts to
diagnose this I ended up moving the motif file parser to its own file
and splitting the spirit semantic actions up into multiple functors.
(functors remind me of anonmyous classes in java, useful but so annoying
synatacticaly).
Eventually I solved the problem by making the const char *alphabets
just available directly from the Alphabet class, as I couldn't figure out
a way to get the static function returning a reference to a static local
variable (which according to the C++ faq should've been allocated when called
and not before).
Diane Trout [Thu, 19 Oct 2006 00:58:47 +0000 (00:58 +0000)]
Sequence::rev_comp works on subsequences
ticket:197
Sequence::rev_comp when called on a Sequence which contained a subsequence
was actually reversing the entire sequence and not just the selected region.
To fix this I added rbegin and rend which return reverse iterators that
cover the subseq range and updated rev_comp to use them.
There's also some extra sequence unittests to make sure that rbegin/rend
work correctly. (and as a bonus loading several sequences out of one fasta
file works).
Diane Trout [Wed, 18 Oct 2006 22:49:59 +0000 (22:49 +0000)]
add to_upper_case to some sequence unittests
forcing sequences to all uppercase (though useful for doing seqcomps and
rendering) does mean that I needed to update tests to deal with the
differences from .get_sequence()
Brandon King [Wed, 18 Oct 2006 23:38:07 +0000 (23:38 +0000)]
Mussa Manual: Screenshots + Performance section
* Updated screenshots in the "view alignment" & "sub-analysis" sections.
* Removed reference to build numbers (since this is for release 1.0)
* Added an Understand Mussa section.
* Added placeholder for algorithm performance.
* Added documentation on the effects of repeats in DNA sequence on Mussa.
* Added a placeholder for Diane's overlapping windows "interesting" case.
Brandon King [Wed, 18 Oct 2006 18:47:51 +0000 (18:47 +0000)]
Mussa Manual: Deleting a Motif
* Documentation on how to delete a motif using the Motif Editor (ticket:196)
Brandon King [Wed, 18 Oct 2006 18:32:18 +0000 (18:32 +0000)]
Mussa Manual: Multiple Mussa Windows
* Documented how to view multiple analyses at one time. (ticket:179)
Brandon King [Wed, 18 Oct 2006 18:04:42 +0000 (18:04 +0000)]
Mussa Manual: save on close & save motif default behavior
* Wrote the "Save on close" section. (ticket:189)
* Documented default motif list extension, when not provided by user. (ticket:190)
* Removed old "features to implement".
Diane Trout [Tue, 17 Oct 2006 23:21:33 +0000 (23:21 +0000)]
be more forging of user provided file names
ticket:192
It turned out my use of boost::filesystem::path could toss an exception
if there were spaces in the file name on OS X. I needed to do a bit more
work to construct a safe filename for saving analyses and motifs.
Also I discovered that runtime_error was not the root exception class,
std::exception was. So I adjusted my try/catch to catch that exception
in the hope that I can provide more meaningful error messages.
Diane Trout [Tue, 17 Oct 2006 22:19:29 +0000 (22:19 +0000)]
remove old code
remove the FLTK version of mussa and the non CMake-based build systems.
Diane Trout [Tue, 17 Oct 2006 22:19:06 +0000 (22:19 +0000)]
ignore eclipse settings
Diane Trout [Tue, 17 Oct 2006 21:57:06 +0000 (21:57 +0000)]
add a manually updated version number.
Diane Trout [Tue, 17 Oct 2006 21:56:33 +0000 (21:56 +0000)]
test_mussa_python also had an unecesary QtOpenGL library link