Commit 41d08568 authored by Mathieu Giraud's avatar Mathieu Giraud
Browse files

core/segment.cpp: detecting several D

When a D segment has been detected, we now try to detect an additional D between V/D or between D/J,
possibly detecting VDDJ (or even some VDDDJ) recombinations.

Note that this detection is not optimal. A chaining algorithm would be preferable here.
Moreover, statistics should be refined, as now the only filter is done before check_and_remove_overlap.
parent de307152
......@@ -925,9 +925,36 @@ void FineSegmenter::FineSegmentD(Germline *germline, double evalue_threshold, in
if (!dSegmented)
return ;
AlignBox *box_D1 = new AlignBox();
AlignBox *box_D2 = new AlignBox();
#define DD_MIN_SEARCH 5
vector <AlignBox*> boxes ;
if (box_D->start - box_V->end >= DD_MIN_SEARCH)
bool d1 = FineSegmentD(germline,
box_V, box_D1, box_D,
evalue_threshold, multiplier);
if (d1)
if (box_J->start - box_D->end >= DD_MIN_SEARCH)
bool d2 = FineSegmentD(germline,
box_D, box_D2, box_J,
evalue_threshold, multiplier);
if (d2)
code = codeFromBoxes(boxes, sequence_or_rc);
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment