Граф коммитов

36 Коммитов

Автор SHA1 Сообщение Дата
Nigel Delaney 2ca93855cc elete Shared Folder
Resources and code moved to Bio.Core
2016-10-08 13:15:23 -07:00
Nigel Delaney 7a8dda0406 Remove Shims Folder 2016-10-08 13:09:38 -07:00
Nigel Delaney 4b4e08c358 Remove Platform Helpers
This commit converts the library back to a standard .NET 4.5 desktop
library, in preparation for a move to .NET Core as the PCL scheme is
being deprecated.  To accomplish this I:

* Changed the Bio.Core project type
* Specified to use our own SortedList implementation when ambiguous
* Removed the Bio.Platform.Helpers* Projects after pushing necessary
files over.
2016-10-08 13:08:39 -07:00
Nigel Delaney bce206929b Fix QV Bug
Due to a mix up we were grabbing the QV value from the position in the
unaligned reference, not the aligned reference.
2016-05-21 15:22:22 -07:00
Nigel Delaney 52d6f8e974 Add diagnostic information for CCS reads
When pbccs is compiled with DIAGNOSTICS defined, it can obtain
additional information that is not currently being processed.
2016-03-12 15:58:59 -08:00
Nigel Delaney 4f25fd222e Validate Alignment Sequences Aren't Too Large
No one should try to align sequences of size M and N where M x N >
Int32.MaxValue.  However, it could happen and it leads to overflows and
strange message.  This commit:

* Validates M x N < Int32.MaxValue
* Throws exception with message if not.
* Verifies this behavior with tests.
2015-12-07 15:47:39 -08:00
Nigel Delaney 0efe553df0 Generate More Debug Info
This should help make stack traces easier to read
2015-12-06 17:43:38 -08:00
Nigel Delaney 19b35d728a Robustify the NeedlemanWunsch Aligner
This change is about future proofing, it has no effect right now.

The aligner has to deal with an edge case where an insertion can follow
a deletion, or a deletion can follow an insertion.  To make this
happen, when considering insertions or deletions, we have to consider
opening a gap from both the "Match" state as well as the "Gap Score"
and the highest of these will form the viterbi path.

For all sensible parameter settings, the Match state should be the
highest score, but for some pathological ones, the gap states might be.
 This clarifies which states are the most likely, and makes it so that
in the future if someone switched the order of move preferences (e.g.
so that in an event of equal scoring, rather than vertical->left->diag
being the order of preference it is left->vertical->diag) the code
would still produce the highest score.  Before, we only took the best
score for the vertical move, and the match score for the horizontal
move.
2015-12-06 16:50:30 -08:00
Nigel Delaney d3219c9390 Less Memory Usage / More Comments in NeedlemanWunschAligner
For these dynamic programming problems, when traversing through the
matrix one must store the entire traceback matrix,
but the scores are only needed for the current row and the row above it.

In the current implementation, we only use two rows for the "top
scoring" (and match) matrix, but fill out entire matrices for the
deletion and insert (or vertical and horizontal) matrices.  This is
inefficient, as we then need 2 x M x N memory rather than 2 x 2 x N
memory.  I switched this to only use the smaller amount.  Additionally:

* Changed the minimum score on the edges from an arbitray low number to a constant near Int32.MinValue for clarity.

* Added more comments throughout.

* Rather than have three arrays, I used 1 array of a struct which may help memory locality for very large global alignments.

* Added more unit tests that directly compare against EMBOSS Needle alignment program, found and reported a bug in NEEDLE while doing that...

* Change all the vague category "Priority2" labels in NW tests to a newer version.
2015-12-06 15:53:48 -08:00
Nigel Delaney d866b21ce5 Code Cleanup
Missed this last time.
2015-12-03 22:16:33 -08:00
Nigel Delaney 1f30511692 Fix NeedlmanWunschAligner
The aligner was not handling gaps at the end appropriately in the
affine case, as it would neglect to add a leading insert.  This in turn
goofed up the MUMAligner.
2015-12-03 19:45:05 -08:00
Nigel Delaney 3312788601 Cleanup the MUMmerAligner Class
The MUMmer aligner exposed a PairWiseAlgorithm to be used to stitching
together of different seeds. There were however a number of constraints
that this algorithm must obey but which were not controlled for here.
In particular, the algorithm must be a global aligner that returns only
one alignment per sequence pair, but this was not enforced.  As we only
have the NeedleManWunsch aligner that fits the global bill here, I
enforced that this class must use this aligner for stitching together
seeds.  This is a breaking API change, but if anyone was using the old
way their code would silently be giving bad results, so it is an
appropriate change.

This change also added comments for the aligner.

Finally, it also fixes an issue where the insertions were not
tallied correctly as it was converting to List<int> instead of
List<long>
2015-12-03 16:24:10 -08:00
Nigel Delaney 27187d55f5 Fix indexing error in validation step. 2015-12-02 19:43:18 -08:00
Nigel Delaney b4159816cd Merge branch 'master' of https://github.com/dotnetbio/bio 2015-11-01 22:10:48 -08:00
Nigel Delaney e9d6038f9b Avoid overwriting PQ flag with RQ if present 2015-11-01 22:10:21 -08:00
Jakob Jakobsen Boysen 56aa00aef6 Make the GenBank parser more robust to different indentations of the ORIGIN. 2015-10-22 16:35:30 +02:00
Nigel Delaney 543f843e47 Fix BioTools build 2015-10-14 12:43:13 -07:00
Nigel Delaney 721e106a94 Fix the tests 2015-10-14 12:15:20 -07:00
Nigel Delaney c4c1640c9c Update CCS Read Parser
* pq flag replaced with rq
* ReadCountMemFail no longer reported
* Update test data
2015-10-14 11:48:10 -07:00
Nigel Delaney 3b7f0320b8 Allow Bio.Tools to Build X-Platform
Allow Bio.Tools to build X-Platform

Three changes

* Removed XML from build scripts seeking to restore nuget targets
* Changed packages.config files to work around case sensitive issue
(NetBio -> NETBio)
* Removed a few variables that were not used, causing Warning as Error
failures.
2015-10-12 18:33:15 -07:00
Nigel Delaney de814a1108 Change SNPVariant to support AtEnd Feature 2015-08-22 13:53:31 -07:00
Nigel Delaney f1486bedba Fix Typo 2015-08-07 17:51:40 -07:00
Nigel Delaney a3cd0b9762 Replace integer RQ with float RQ
Also implement ISequence and IQualitativeSequence on PacBioCCSRead for
convenience.
2015-08-07 16:36:46 -07:00
Nigel Delaney 1d2b018818 Add more detailed alignment exception information. 2015-08-07 16:35:28 -07:00
Nigel Delaney 2a6d36fcd6 Add note on QV for deletion mutations. 2015-08-07 16:34:58 -07:00
Nigel Delaney 3adad2773c Add Bio.Variant Namespace
This collection of code allows users to call variants with QV values
from IPairwiseAlignedSequence objects that contain either regular
sequences or sequences with associated quality values.  Examples of how
to use it are provided in the tests shown.
2015-08-04 19:21:51 -07:00
Nigel Delaney 0f45347362 Add Parser For PacBio CCS BAM
This adds a parser for the new PacBio CCS data BAM format.  It wraps
the already existing BAM files and converts the SAMAlignedSequence type
into a PacBioCCSRead type for less memory storage and easier access.
Tests to verify the behavior are included.
2015-08-03 00:10:43 -07:00
Nigel Delaney 213d93a380 Remove Script to Run Tests
Now done by web build
2015-08-02 17:07:52 -07:00
Nigel Delaney 37d60665be More fixes for tests 2015-08-01 15:56:13 -07:00
Nigel Delaney 77e8a30381 Ignore failing PADENA Tests
Need to figure out later why these weren’t working on Travis, for now
just moving toward a clean build.
2015-08-01 15:37:36 -07:00
Nigel Delaney 8cb80feda8 Fix line endings 2015-08-01 15:30:51 -07:00
Nigel Delaney f7b2dbe76e XML -> xml lowercase conversion 2015-08-01 13:08:15 -07:00
Nigel Delaney bf56ed7ed0 Remove Android Project from Bio.Mono
It creates build errors for a typical mono install.
2015-08-01 12:46:51 -07:00
Mark Smith 35fbcfdfc3 Delete .vs folder (new from VS2015) 2015-07-31 13:23:25 -05:00
Mark Smith a437ca7f59 Remove packages, older testing readme. 2015-07-31 13:13:34 -05:00
Mark Smith 703b4edce6 Add README, FAQ and testing guide, rename bio 2015-07-31 13:12:16 -05:00