Diane Trout [Mon, 26 Jun 2006 22:30:45 +0000 (22:30 +0000)]
Tailorization
Import of the upstream sources from
Repository: /home/diane/proj/tailor/mussa/mussa.hashed
Kind: darcs
Revision: SequenceLocationModel improvements
Diane Trout [Fri, 23 Jun 2006 01:56:58 +0000 (01:56 +0000)]
Getting closer to a subanalysis mode
This is a big patch, in order to create the subanalysis mode I wanted a
class that'd hold a reference to a sequence and some start/stop locations
which'd let the user edit what region they want to use in the subanalysis
before creating the new analysis.
I started setting up a SequenceLocation and SequenceLocationModel (for
the qt MVC classes) but then I learned that C++ reference types aren't
particularly good things to store in containers, as when the original
variable that all the references are pointing to goes away you get
invalid memory exceptions.
So I went through and switched most of those references to the
boost::shared_ptr which is a fairly simple reference counted pointer.
This did make most of the C++ code happy, but my python wrapping
is increasingly losing functionality.
Also as a bonus this increased use of pointers I think will improve the
sharing of the AnnotationColors color mappers.
Diane Trout [Wed, 21 Jun 2006 02:11:45 +0000 (02:11 +0000)]
More progress toward subanalysis
With our previous efforts at turnning Sequence into a string, the
places where we were comparing a Sequence to a string didn't work so well.
So this patch lets the compiler cast strings and const char *s to Sequence.
additionally I made the copySelectedTrackAs functions a bit more generic
by making the base function copySelectedTracks a template function
that returns a list of formatted objects. The two string style copy
functions AsFasta and AsString, then needed a bit more code to convert
the list back into a string. But I needed this so I can let users
edit what regions they want for SubanalysisWindows.
And lastly, there's a very simple box for defining a subanalysis that
still needs to be connected to the above copy functions.
Diane Trout [Wed, 21 Jun 2006 02:05:03 +0000 (02:05 +0000)]
use a specific exception when nextTo breaks
throw conserved_path_size_mismatch, hopefully we can catch it at some point
and then reset that analysis (hopefully).
I'd like to know why it breaks?
Diane Trout [Tue, 20 Jun 2006 20:52:42 +0000 (20:52 +0000)]
extend annotation names and types to allow punctuation
I tweaked the spirit grammar so the name & type fields are letter followed
by "non-space printing characters"
Diane Trout [Sat, 17 Jun 2006 02:18:39 +0000 (02:18 +0000)]
add view alignment to the sequence browser context menu
Diane Trout [Sat, 17 Jun 2006 02:13:46 +0000 (02:13 +0000)]
make Sequence a subclass of std::string
There were a lot of changes associated with making Sequence a subclass
of std::string. Hopefully that'll make it easier for me to use paircomp
at some point.
However the major useful new feature is subseq now returns a Sequence
instead of a string, and this sub-sequence has the header copied over
and the annotations copied (and their start/end locations adjusted).
Additionally this patch includes adding the coordianates copied with the
copySelectedSequenceAsFasta command to the header.
I'm getting closer to have the parts needed to do a sub-analysis.
Diane Trout [Fri, 16 Jun 2006 05:38:37 +0000 (05:38 +0000)]
remove unnecessary class decoration
would you believe that you don't need the name of the class inside the
class declaration?
Diane Trout [Fri, 16 Jun 2006 00:33:49 +0000 (00:33 +0000)]
ticket:104 fix some pointer problems with MussaAlignedWindow
the vector of MussaAlignedWindow * was having prolems with a double delete.
when a MussaAlignedWindow was open and one tried to load a different
analysis, the code that was closing all of the open windows crashed.
when I found boost::shared_ptr to fix it, I then found a problem
with the Qt trying to delete my shared zoom object which was also
causing a crash. This should have all of that fixed, and as a bonus
the new analysis doesn't have any of the old analysis' selections open.
Diane Trout [Thu, 15 Jun 2006 22:34:58 +0000 (22:34 +0000)]
share one instance of the copySelectedSequenceAsFastaAction
create the copySelectedSequenceAsFastaAction in the inner-most class
and provide accessors so all the other appropriate levels can stick it
in their menus.
The weakness to this is if we ever let users override keybindings
Diane Trout [Thu, 15 Jun 2006 17:57:45 +0000 (17:57 +0000)]
Disabled code to try and get bundle path on OS X
Diane Trout [Thu, 15 Jun 2006 06:23:30 +0000 (06:23 +0000)]
Tell CMake not to include QtAssistant if not available
Diane Trout [Thu, 15 Jun 2006 06:10:29 +0000 (06:10 +0000)]
be more informative when DISPLAY isn't set under unix
Diane Trout [Thu, 15 Jun 2006 06:01:38 +0000 (06:01 +0000)]
try to make including QtAssistant optional
Diane Trout [Thu, 15 Jun 2006 05:58:39 +0000 (05:58 +0000)]
don't bother to build the old fltk code base
Diane Trout [Wed, 14 Jun 2006 22:32:38 +0000 (22:32 +0000)]
AMD64 build support
AMD64 needs some -fPICs to build correctly
Diane Trout [Wed, 14 Jun 2006 21:58:01 +0000 (21:58 +0000)]
Make cmake happier about my target declariation order
recent versions of cmake reported that my ordering would break
some of the dependency analysis, this patch cleans that warning up.
Diane Trout [Wed, 14 Jun 2006 02:43:50 +0000 (02:43 +0000)]
implement selection context menu
so it isn't perfect, left clicking can cause it to get confused and lose
the selection. But it mostly works if one doesn't taunt it too much.
Diane Trout [Wed, 14 Jun 2006 02:42:05 +0000 (02:42 +0000)]
reformat some braces
Diane Trout [Tue, 13 Jun 2006 23:31:38 +0000 (23:31 +0000)]
include the sequence coordinates when copying sequence
Diane Trout [Tue, 13 Jun 2006 19:39:22 +0000 (19:39 +0000)]
SequenceBrowser should handle the copying
viva encapsulation, I pushed the code to handle copying sequence
down into the SequenceBrowser from SequenceBrowserWidget on the idea
that someone might want to use the inner widget on its own.
Hmm... maybe that's not reasonable? Not sure anymore. However
I do think that I want the popup menu to be tied to the innermost widget.
Brandon King [Mon, 12 Jun 2006 23:35:37 +0000 (23:35 +0000)]
Manual: last modified update
Brandon King [Mon, 12 Jun 2006 23:32:43 +0000 (23:32 +0000)]
Manual: UCSC Genome Browser section
Brandon King [Mon, 12 Jun 2006 23:31:39 +0000 (23:31 +0000)]
Manual: UCSC Genome Browser screenshot pack
Brandon King [Mon, 12 Jun 2006 22:29:56 +0000 (22:29 +0000)]
alg/glseqbrowser.cpp:127: error: jump to case label
Fixes the following:
alg/glseqbrowser.cpp: In member function oid GlSeqBrowser::processSelection(GLuint, GLuint*, GLuint, const GlSeqBrowser::rect<float>&)
alg/glseqbrowser.cpp:127: error: jump to case label
alg/glseqbrowser.cpp:120: error: crosses initialization of nt rightalg/glseqbrowser.cpp:119: error: crosses initialization of nt leftalg/glseqbrowser.cpp: In member function oid GlSeqBrowser::copySelectedTracks(std::string&, std::string (*)(const Sequence&, int, int))
alg/glseqbrowser.cpp:399: warning: comparison between signed and unsigned integer expressions
make: *** [glseqbrowser.o Error 1
Diane Trout [Mon, 12 Jun 2006 22:16:51 +0000 (22:16 +0000)]
remove a useless debugging message
Diane Trout [Mon, 12 Jun 2006 22:15:32 +0000 (22:15 +0000)]
Actually copy our selected sequence to the clipboard
Diane Trout [Sat, 10 Jun 2006 02:38:47 +0000 (02:38 +0000)]
partial implementation of sequence track copy
this includes the code to track the portion of a sequence track that
has been selected, and provides a MussaWindow option to "copy" the selection
as a fasta file.
However the selection doesn't go to the clipboard yet, and the
MussaAlignedWindow also needs the option.
The actual Qt Slot that calls the glseqbrowser::copySelectedTrackAsFasta
is in the SequenceBrowserWidget.
Diane Trout [Fri, 9 Jun 2006 21:35:07 +0000 (21:35 +0000)]
More robust eol handling for Sequence::load_fasta
The load_fasta code used getline() which only uses "native" end of line
conventions. Unfortunately for me OS X has "native" and "backwards
compatible" eol conventions (which aren't compatible). So this patch
will accept CR, CR-LF, LF, and because I was lazy LF-CR.
I also unit tested that which required breaking load_fasta into a
function that handles loading from a file name and one that works
from an iostream.
Diane Trout [Thu, 8 Jun 2006 22:23:09 +0000 (22:23 +0000)]
improve fasta parsing
This extends the parser to use both upper & lower case iupac symbols for
our annotation file. (And also I'm trying to simplify the grammar).
Additionally this patch also throws an error message when the result of
reading a fasta sequence is empty.
Diane Trout [Thu, 8 Jun 2006 01:31:40 +0000 (01:31 +0000)]
minor ui label tweaks
The end users wanted more explanatory text on the browser and slightly
different menu text.
Diane Trout [Thu, 8 Jun 2006 01:25:46 +0000 (01:25 +0000)]
minor improvements to python embedding code
tweak the cmake files a bit, and shorten the namespace name
Diane Trout [Thu, 8 Jun 2006 01:23:09 +0000 (01:23 +0000)]
Report error when sequence couldn't be loaded
Report something a bit more meaningful when unable to parse some sequence
out of a fasta file.
Diane Trout [Thu, 8 Jun 2006 01:20:49 +0000 (01:20 +0000)]
Turn on more doxygen features
Sourcebrowser looks neat, it allows seeing the source from the documentation
and provides some references/refered by
Brandon King [Wed, 7 Jun 2006 23:59:45 +0000 (23:59 +0000)]
Manual: Progress towards retrieval data for mussa section
Brandon King [Wed, 7 Jun 2006 23:58:31 +0000 (23:58 +0000)]
Manual Image Pack: UCSC Genome Broswer data retrieval screenshots
Diane Trout [Tue, 6 Jun 2006 00:21:45 +0000 (00:21 +0000)]
keep track of how far through a seqcomp we've gotten
Diane Trout [Sat, 3 Jun 2006 01:58:40 +0000 (01:58 +0000)]
use Qt Signals & Slots for progress tracking
this replaces my first attempt that used boost signals (which is now
removed from the repository).
Mussa and NwayPaths now inherit from QObject and can emit a progress
signal to give some indication of how far they've gotten at long running
tasks. Though I don't have a solution for long running seqcomps yet.
Also instead of hard coding a % constant to cut down on the number of calls
to emit the signal, I should use some kind of timer.
Brandon King [Fri, 2 Jun 2006 19:03:15 +0000 (19:03 +0000)]
Warning dialog upon Mussa Manual (QAssistant) error.
If there is an error with QAssistant when loading the Mussagl Manual,
a warning dialog will pop up with the error message.
This patch implements ticket:97.
Diane Trout [Sat, 27 May 2006 01:15:29 +0000 (01:15 +0000)]
add callback for tracking analysis progress
This version just writes the information to standard out, but
the callback should be useable bythe the GUI.
also I killed the parameters to analyze(), you need to customize the class
in order setup the analysis.
Diane Trout [Sat, 27 May 2006 01:08:29 +0000 (01:08 +0000)]
rename [gset_soft_thres to [gs]et_soft_threshold]
Diane Trout [Sat, 27 May 2006 00:51:39 +0000 (00:51 +0000)]
configure cmake to include support for QtAssistant
Brandon King [Fri, 26 May 2006 21:47:59 +0000 (21:47 +0000)]
Variable declared locally elsewere... not needed.
Brandon King [Fri, 26 May 2006 21:45:33 +0000 (21:45 +0000)]
Mussagl Manual QAssistant Profile
Brandon King [Fri, 26 May 2006 21:11:49 +0000 (21:11 +0000)]
Mussagl Manual QAssistant Patch
* Adds a QAssistant client for Mussagl Manual
* New menu action -> 'Help > Mussa Manual..'
* New action icon
* Updated icon.qrc with new icon
* CONFIG += assistant added to mussagl.pro
Diane Trout [Thu, 25 May 2006 23:33:43 +0000 (23:33 +0000)]
let the keyboard reasonably control the browser window
Set tab order, single step size and page step size to make interacting with
the glseqbrowser from the keyboard a bit more pleasant.
Diane Trout [Thu, 25 May 2006 23:32:08 +0000 (23:32 +0000)]
add some documentation for glseqbrowser::viewport*
Diane Trout [Thu, 25 May 2006 05:16:23 +0000 (05:16 +0000)]
combine a declaration and assignment
Diane Trout [Wed, 24 May 2006 19:12:58 +0000 (19:12 +0000)]
set all the QAction pointers to 0
Brandon King [Tue, 23 May 2006 22:18:14 +0000 (22:18 +0000)]
Manual: View mussa alignment section + minor fixes
Brandon King [Tue, 23 May 2006 21:48:28 +0000 (21:48 +0000)]
Updated Mussagl launched screenshot.
Brandon King [Tue, 23 May 2006 21:32:17 +0000 (21:32 +0000)]
Manual: Spelling patch
Brandon King [Tue, 23 May 2006 21:26:12 +0000 (21:26 +0000)]
Screenshot image pack (for manual)
Brandon King [Tue, 23 May 2006 18:06:31 +0000 (18:06 +0000)]
Conservation tracks + IUPAC Neucleotide Table
* Added information about conservation tracks, and the meaning of
blue vs red track.
* Added an IUPAC Neucleotide Table
Diane Trout [Tue, 23 May 2006 05:44:08 +0000 (05:44 +0000)]
rename ExtendedConservedPath for the old fltk code
Diane Trout [Mon, 22 May 2006 22:31:33 +0000 (22:31 +0000)]
we should be defaulting to qt 4.1.2
Diane Trout [Mon, 22 May 2006 22:29:20 +0000 (22:29 +0000)]
make linking python optional
I'm getting a crash when running under rosetta which i think might
be related to having linked in python. So since I'm not currently
using the embedded interpreter, lets not bother linking it in.
Diane Trout [Sat, 20 May 2006 01:51:14 +0000 (01:51 +0000)]
turn color back on
reimplemnt some code to try and compute coloring things that are
reverse complimented with respect to their previous sequence as blue.
Also there was a bug in my previous patch for computing the aligned paths
where paths that partially had matched through a few of the n-way sequences
would still be added to the list of matches. (now something has to
match all the way through before being added)
Diane Trout [Sat, 20 May 2006 01:16:26 +0000 (01:16 +0000)]
ticket:62 fix local alignment
This appears to fix the problem where the local alignment was being
miscomputed. In implementing this I collapsed ExtendedConservedPath into
ConservedPath, and I finished seperating computing the local alignment
from drawing said alignment. Once I seperated the two and could actually
call the core algorithm I was able to add some (simple) unittesting of
the local alignment code, and use some much simpler drawing code.
Diane Trout [Sat, 20 May 2006 01:11:25 +0000 (01:11 +0000)]
specify what version of cmake is required
Brandon King [Thu, 18 May 2006 23:51:55 +0000 (23:51 +0000)]
Manual: Motif/Annotation documentation
Brandon King [Thu, 18 May 2006 23:50:13 +0000 (23:50 +0000)]
Load Motif List png
Brandon King [Thu, 18 May 2006 23:23:18 +0000 (23:23 +0000)]
New version of mussagl, updated screenshot.
Brandon King [Thu, 18 May 2006 23:05:18 +0000 (23:05 +0000)]
Manual: Main Window section added
Brandon King [Thu, 18 May 2006 23:04:00 +0000 (23:04 +0000)]
Screenshots for next patch of the manual.
Brandon King [Wed, 17 May 2006 16:46:41 +0000 (16:46 +0000)]
Updated manual
* Updated threshold setting based on latest build of Mussagl
* Continued outline development
* Added FIXME: where ever work needs to be done.
Diane Trout [Thu, 18 May 2006 00:56:12 +0000 (00:56 +0000)]
rename the python extension to _mussa.so
when working on the setup.py version of the build system it seemd like I
might want some python code to wrap the extension, so I renamed it to
_mussa. not sure if i still need that or not.
Diane Trout [Thu, 18 May 2006 00:55:40 +0000 (00:55 +0000)]
expose more of the sequence class to python
Diane Trout [Wed, 17 May 2006 19:23:45 +0000 (19:23 +0000)]
finish implementing annotation by sequence
I connected the previous find_sequence code with the new spirit annotation
loading file. So now I can actually use (nearly exact) sequences for
annotating.
Diane Trout [Wed, 17 May 2006 08:36:18 +0000 (08:36 +0000)]
switch to a character based spirit parser
by not letting spirit automatically deal with the spacing I was able
to actually get parsing to work correctly.
Diane Trout [Wed, 17 May 2006 08:10:00 +0000 (08:10 +0000)]
try to read fasta blocks in the annotation file
though this also revealed some problems with the spirit parser not
really splitting on whitespace. I should look into how to do per
character parsing.
Diane Trout [Wed, 17 May 2006 01:57:30 +0000 (01:57 +0000)]
use spirit parser for reading annot file
This basically duplicates tristans original annot parser using boost::spirit.
That was more complicated than I thought, and required implementing
a functor struct that stored data when the class was instantiated and then
performed some action with the operator() was called. Look at the comment
at sequence.cpp:push_back_annot for more descriptions of how that worked.
I improved the annotate_from_sequence unit test to not use hard coded values.
I have the start of a unit test fort the annot parsing code.
(currently it parses a string and then dumps out the result)
Though I did run the gui using this code and annotations did show up in roughly
the right places.
Diane Trout [Tue, 16 May 2006 00:53:06 +0000 (00:53 +0000)]
add annotations by sequence string
Ok so this is a rather limited search system as it is just using the
motif searching code, but adding things to the annot list instead of the
motif list. (and it handles looking at a list of sequences).
Ideally there should be some better way of specifying which algorithm to use
but i'm really tired today and not coding well.
Diane Trout [Thu, 11 May 2006 03:20:43 +0000 (03:20 +0000)]
try to make setup.py multiplatform
Diane Trout [Thu, 11 May 2006 02:15:02 +0000 (02:15 +0000)]
minor tweaks for building mussa under setup.py
Diane Trout [Thu, 11 May 2006 02:13:22 +0000 (02:13 +0000)]
super simple mussa gui driver
Diane Trout [Thu, 11 May 2006 00:17:35 +0000 (00:17 +0000)]
build all of mussagl as a python extension
unfortunately only works on os x so far.
Diane Trout [Wed, 10 May 2006 08:43:58 +0000 (08:43 +0000)]
lets try letting python build mussa
I wonder how distutils will fare building mussa? As I made more progress
getting to interact with the C++ libraries from python than the reverse
I want to see if I can everything to build with just distutils.
Diane Trout [Wed, 10 May 2006 01:39:33 +0000 (01:39 +0000)]
increase the use of python in mussa
This patch does let the python extension launch the gui successfully.
I tried to get the C++ gui app to also be able to talk to the python extension
but that didn't work so well. (causes a crash on os x when I statically
link the python extension module in).
Diane Trout [Thu, 4 May 2006 00:58:13 +0000 (00:58 +0000)]
allow saving aligned window browser to image
ticket:70
Diane Trout [Thu, 4 May 2006 00:41:52 +0000 (00:41 +0000)]
show the name of the analysis loaded
ticket:84 put the filename (for gui loaded) or the analysis name
(for command line loaded) names in the mussa window.
Diane Trout [Thu, 4 May 2006 00:39:42 +0000 (00:39 +0000)]
allow opening multiple MussaWindows
closes ticket:93 the only real downside is on os x the windows land on top
of each other.
Diane Trout [Wed, 19 Apr 2006 01:53:10 +0000 (01:53 +0000)]
win32 paths need some conversion
boosts native path type doesn't match win32
conventions quite correctly so before passing
a user entered file name we need to convert it.***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/glseqbrowser.cpp -1 +1
M ./mussa_exceptions.hpp +1
M ./mussagl.pro -1 +4
M ./qui/MussaWindow.cpp -3 +9
M ./qui/mussa_setup_dialog/MussaSetupWidget.cpp -5 +8
M ./qui/mussagl.cpp -6 +17
Diane Trout [Tue, 18 Apr 2006 23:29:06 +0000 (23:29 +0000)]
try to get mussagl to build on win32
Diane Trout [Tue, 18 Apr 2006 08:24:49 +0000 (08:24 +0000)]
implement commandline arguments for makedmg
Diane Trout [Thu, 13 Apr 2006 20:04:02 +0000 (20:04 +0000)]
the fasta error message should include the filename
Diane Trout [Thu, 13 Apr 2006 19:34:08 +0000 (19:34 +0000)]
fix ticket:83 throw an error when we don't have a fasta file
If the user gives us someting that doesn't look like a fasta file throw
an error.
Diane Trout [Thu, 13 Apr 2006 00:39:51 +0000 (00:39 +0000)]
create an options structure to indicate if we need a gui
My last attempt at making mussagl not need to run a gui on linux caused os x
to break. This implements a more complicated scheme that involves
initialize_mussa learning how to pass multiple options and a hidden
argument to QApplication to not initialize the gui when (in X11) $DISPLAY
isn't set.
Diane Trout [Wed, 12 Apr 2006 23:25:58 +0000 (23:25 +0000)]
ticket:85 fix, extend code crashes with 1 path
when there was only 1 path the refinement code attempted to access a null
pointer. (The "next" path, which was alas, pathz.end() )
Diane Trout [Wed, 12 Apr 2006 23:24:24 +0000 (23:24 +0000)]
use a custom target for python extension
the custom command to make the properly names python extension sometimes
failes, so lets see if a custom target (which has better dependency checking)
works
Diane Trout [Wed, 12 Apr 2006 23:23:48 +0000 (23:23 +0000)]
record cmake commands to deal with some dependency problems
Diane Trout [Wed, 12 Apr 2006 23:18:13 +0000 (23:18 +0000)]
default to building a debug version
Diane Trout [Wed, 12 Apr 2006 22:20:42 +0000 (22:20 +0000)]
put qt gui launching code into a function
Delaying instaintation QApplication allows us to run even if we don't
have a connection to an X server
Diane Trout [Wed, 12 Apr 2006 21:17:49 +0000 (21:17 +0000)]
AMD64 needs -fPIC for mussa_core
Diane Trout [Wed, 12 Apr 2006 21:17:24 +0000 (21:17 +0000)]
put spaces instead of <TAB> on gui/module.mk
Diane Trout [Wed, 12 Apr 2006 01:02:48 +0000 (01:02 +0000)]
ln -s is not that reliable
ln throws an error if the file already exists, rm throws a file
if it doesn't exist, only cp works regardless of the start of the
python extensions existence status.
Diane Trout [Wed, 12 Apr 2006 00:45:55 +0000 (00:45 +0000)]
build the python interface
CMake can build the python version (and on os x/unix test it)
CMakes targets aren't quite appropriate for python extensions the
ADD_LIBRARY target gets the right build settings but names the file
libX.so while python needs X.so. I got around this by adding a custom
command which makes a symlink to the right name--of course that depends
on shell commands not available on windows. :(
Also there's some problems with boost.python not knowing about the
string to boost/filesystem converter. I manually wrapped load_mupa_file
but it might be more advantagious to write a general wrapper.
I also only have the simplest test case included, to test to make sure
that the environment can actually run python test cases.
Diane Trout [Tue, 11 Apr 2006 19:33:36 +0000 (19:33 +0000)]
minor fixes for older buildsystems
Just some updates so the older build systems still work.
Diane Trout [Sat, 8 Apr 2006 09:57:08 +0000 (09:57 +0000)]
rename _LIB to _LIBRARY to be more consistent with cmake
Diane Trout [Fri, 7 Apr 2006 22:40:55 +0000 (22:40 +0000)]
build fltk version and deal with debian qt4 weirdness
Debian named the qt4 qmake/moc commands -qt4 which the standard cmake
has trouble finding so I manaullay looked for them.
additionally the fltk stuff doesn't look for .H as used for newer fltk
installations so I had to manually look for that as well.