unit_test_util;
80 using namespace edit;
83 #ifdef BOOST_NO_EXCEPTIONS 87 voidthrow_exception( std::exception
const& e ) {
114BOOST_CHECK_EQUAL(gapped_list.size(), 1);
115BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
116BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
117gapped_list.front()->CalculateRelevantIntervals(
false,
true);
118BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
119BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
120BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
121vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
122BOOST_CHECK_EQUAL(adjusted_feats.size(), 1);
123BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStart(
eExtreme_Positional), 0);
124BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStop(
eExtreme_Positional), 11);
125BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStart(
eExtreme_Positional),
false);
126BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStop(
eExtreme_Positional),
true);
133BOOST_CHECK_EQUAL(gapped_list.size(), 1);
134BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
135BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
136gapped_list.front()->CalculateRelevantIntervals(
false,
true);
137BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
138BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
139BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
140vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
141BOOST_CHECK_EQUAL(adjusted_feats.size(), 1);
142BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStart(
eExtreme_Positional), 22);
143BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStop(
eExtreme_Positional), 33);
144BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStart(
eExtreme_Positional),
true);
145BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStop(
eExtreme_Positional),
false);
152BOOST_CHECK_EQUAL(gapped_list.size(), 1);
153BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
154BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
155gapped_list.front()->CalculateRelevantIntervals(
false,
true);
156BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
157BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
false);
158BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
true);
159vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
160BOOST_CHECK_EQUAL(adjusted_feats.size(), 2);
161BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStart(
eExtreme_Positional), 0);
162BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStop(
eExtreme_Positional), 11);
163BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStart(
eExtreme_Positional),
false);
164BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStop(
eExtreme_Positional),
true);
165BOOST_CHECK_EQUAL(adjusted_feats.back()->GetLocation().GetStart(
eExtreme_Positional), 22);
166BOOST_CHECK_EQUAL(adjusted_feats.back()->GetLocation().GetStop(
eExtreme_Positional), 33);
167BOOST_CHECK_EQUAL(adjusted_feats.back()->GetLocation().IsPartialStart(
eExtreme_Positional),
true);
168BOOST_CHECK_EQUAL(adjusted_feats.back()->GetLocation().IsPartialStop(
eExtreme_Positional),
false);
175BOOST_CHECK_EQUAL(gapped_list.size(), 1);
176BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
177BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
178gapped_list.front()->CalculateRelevantIntervals(
false,
true);
179BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
true);
180BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
false);
181BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
182vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
183BOOST_CHECK_EQUAL(adjusted_feats.size(), 0);
191BOOST_CHECK_EQUAL(gapped_list.size(), 0);
193BOOST_CHECK_EQUAL(gapped_list.size(), 0);
195BOOST_CHECK_EQUAL(gapped_list.size(), 0);
197BOOST_CHECK_EQUAL(gapped_list.size(), 0);
221 const string&
tag=
f->GetProduct().GetWhole().GetGeneral().GetTag().GetStr();
222 if(num_updates == 1 ||
offset== 0) {
223BOOST_CHECK_EQUAL(
tag, orig_tag);
230BOOST_CHECK_EQUAL(
offset, num_updates);
235 const string&
tag= prot_i->
GetId().front().GetSeqId()->GetGeneral().GetTag().GetStr();
236 if(num_updates == 1 ||
offset== 0) {
237BOOST_CHECK_EQUAL(
tag, orig_tag);
244BOOST_CHECK_EQUAL(
offset, num_updates);
257cds->
SetData().SetCdregion().SetFrame(frame_one);
261 nuc->SetSeq().SetInst().ResetSeq_data();
262 nuc->SetSeq().SetInst().SetRepr(objects::CSeq_inst::eRepr_delta);
263 nuc->SetSeq().SetInst().SetExt().SetDelta().AddLiteral(
"ATGATGATGCCC", objects::CSeq_inst::eMol_dna);
265gap_seg->SetLiteral().SetSeq_data().SetGap();
266gap_seg->SetLiteral().SetLength(gap_len);
267 nuc->SetSeq().SetInst().SetExt().SetDelta().Set().push_back(gap_seg);
268 nuc->SetSeq().SetInst().SetExt().SetDelta().AddLiteral(
"CCCAAATTTTAA", objects::CSeq_inst::eMol_dna);
269 nuc->SetSeq().SetInst().SetLength(24 + gap_len);
279 if(
prot->GetSeq().GetLength() > 3) {
283mat_peptide->
SetLocation().SetInt().SetTo(
prot->GetSeq().GetInst().GetLength() - 2);
300BOOST_CHECK_EQUAL((*it)->GetVal(),
val);
305BOOST_CHECK_EQUAL(
val,
"");
314 stringorig_tag = cds.
GetProduct().GetWhole().GetGeneral().GetTag().GetStr();
318 CheckTags(seh, orig_tag, adjusted_feats.size());
326BOOST_CHECK_EQUAL(gapped_list.size(), 1);
327BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
328BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
329gapped_list.front()->CalculateRelevantIntervals(
false,
true);
330BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
331BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
false);
332BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
true);
333vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
334BOOST_CHECK_EQUAL(adjusted_feats.size(), 2);
335BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStart(
eExtreme_Positional), start);
336BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStop(
eExtreme_Positional), 11);
337BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStart(
eExtreme_Positional),
false);
338BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStop(
eExtreme_Positional),
true);
339BOOST_CHECK_EQUAL(adjusted_feats.front()->GetData().GetCdregion().GetFrame(), frame_one);
340 CheckQual(*(adjusted_feats.front()),
"orig_protein_id",
"x");
341 CheckQual(*(adjusted_feats.front()),
"orig_transcript_id",
"y");
342BOOST_CHECK_EQUAL(adjusted_feats.back()->GetLocation().GetStart(
eExtreme_Positional), 11 + gap_len + 1);
343BOOST_CHECK_EQUAL(adjusted_feats.back()->GetLocation().GetStop(
eExtreme_Positional), stop);
344BOOST_CHECK_EQUAL(adjusted_feats.back()->GetLocation().IsPartialStart(
eExtreme_Positional),
true);
345BOOST_CHECK_EQUAL(adjusted_feats.back()->GetLocation().IsPartialStop(
eExtreme_Positional),
false);
346BOOST_CHECK_EQUAL(adjusted_feats.back()->GetData().GetCdregion().GetFrame(), frame_two);
347 CheckQual(*(adjusted_feats.back()),
"orig_protein_id",
"x_1");
348 CheckQual(*(adjusted_feats.back()),
"orig_transcript_id",
"y_1");
350 TestUpdateCDS(gapped_list[0]->GetFeature(), adjusted_feats);
358seq.
SetInst().ResetSeq_data();
359seq.
SetInst().SetRepr(objects::CSeq_inst::eRepr_delta);
360 stringnuc_before =
"ATGATGATGCCC";
361 stringnuc_after =
"CCCAAATTTTAA";
362seq.
SetInst().SetExt().SetDelta().AddLiteral(nuc_before, objects::CSeq_inst::eMol_dna);
364gap_seg->SetLiteral().SetSeq_data().SetGap();
365gap_seg->SetLiteral().SetLength(gap_len);
366seq.
SetInst().SetExt().SetDelta().Set().push_back(gap_seg);
367seq.
SetInst().SetExt().SetDelta().AddLiteral(nuc_after.substr(gap_len - 12), objects::CSeq_inst::eMol_dna);
381cds->
SetData().SetCdregion().SetFrame(frame);
413BOOST_CHECK_EQUAL(orig_protstr,
"MMMPXXXXXKF*");
415BOOST_CHECK_EQUAL(orig_protstr,
"MMMPXXXXPKF*");
421BOOST_CHECK_EQUAL(orig_protstr,
"MMPXXXXXKF*");
423BOOST_CHECK_EQUAL(orig_protstr,
"MMPXXXXPKF*");
430gapped_list.front()->CalculateRelevantIntervals(
true,
true);
431vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
433 stringbefore_protstr;
439BOOST_CHECK_EQUAL(before_protstr, orig_protstr.substr(0, 4));
443BOOST_CHECK_EQUAL(before_protstr, orig_protstr.substr(0, 3));
448 stringafter_protstr;
454BOOST_CHECK_EQUAL(after_protstr, orig_protstr.substr(9));
456BOOST_CHECK_EQUAL(after_protstr, orig_protstr.substr(8));
462BOOST_CHECK_EQUAL(after_protstr, orig_protstr.substr(8));
464BOOST_CHECK_EQUAL(after_protstr, orig_protstr.substr(7));
490BOOST_CHECK_EQUAL(gapped_list.size(), 1);
491BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
492BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
493gapped_list.front()->CalculateRelevantIntervals(
false,
true);
494BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
495BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
496BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
497vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
498BOOST_CHECK_EQUAL(adjusted_feats.size(), 1);
501BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStart(
eExtreme_Positional), start);
502BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStop(
eExtreme_Positional), 11);
503BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStart(
eExtreme_Positional),
false);
504BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStop(
eExtreme_Positional),
true);
505BOOST_CHECK_EQUAL(adjusted_feats.front()->GetData().GetCdregion().GetFrame(), frame_before);
508BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStart(
eExtreme_Positional), 22);
509BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStop(
eExtreme_Positional), stop);
510BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStart(
eExtreme_Positional),
true);
511BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStop(
eExtreme_Positional),
false);
512BOOST_CHECK_EQUAL(adjusted_feats.front()->GetData().GetCdregion().GetFrame(), frame_after);
514 CheckQual(*(adjusted_feats.front()),
"orig_protein_id",
"x");
515 CheckQual(*(adjusted_feats.front()),
"orig_transcript_id",
"y");
517 TestUpdateCDS(gapped_list[0]->GetFeature(), adjusted_feats);
548BOOST_CHECK_EQUAL(gapped_list.size(), 1);
549BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
550BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
551gapped_list.front()->CalculateRelevantIntervals(
false,
true);
552BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
true);
553BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
false);
554BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
555vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
556BOOST_CHECK_EQUAL(adjusted_feats.size(), 0);
558 TestUpdateCDS(gapped_list[0]->GetFeature(), adjusted_feats);
571 nuc->SetSeq().SetInst().ResetSeq_data();
572 nuc->SetSeq().SetInst().SetRepr(objects::CSeq_inst::eRepr_delta);
573 nuc->SetSeq().SetInst().SetExt().SetDelta().AddLiteral(
"ATGATGATGCCC", objects::CSeq_inst::eMol_dna);
576gap_seg->SetLiteral().SetLength(10);
577 nuc->SetSeq().SetInst().SetExt().SetDelta().Set().push_back(gap_seg);
578 nuc->SetSeq().SetInst().SetExt().SetDelta().AddLiteral(
"CCCAAATTTTAA", objects::CSeq_inst::eMol_dna);
579 nuc->SetSeq().SetInst().SetLength(34);
582int1->
SetInt().SetId().Assign(*(
nuc->GetSeq().GetId().front()));
583int1->
SetInt().SetFrom(0);
584int1->
SetInt().SetTo(10);
586int2->
SetInt().SetId().Assign(*(
nuc->GetSeq().GetId().front()));
587int2->
SetInt().SetFrom(24);
588int2->
SetInt().SetTo(33);
589cds->
SetLocation().SetMix().Set().push_back(int1);
590cds->
SetLocation().SetMix().Set().push_back(int2);
599BOOST_CHECK_EQUAL(gapped_list.size(), 1);
600BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
601BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
603gapped_list.front()->CalculateRelevantIntervals(
false,
true);
604BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
605BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
false);
606BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
true);
608vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
609BOOST_CHECK_EQUAL(adjusted_feats.size(), 2);
610adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
false,
false);
611BOOST_CHECK_EQUAL(adjusted_feats.size(), 1);
623 nuc->SetSeq().SetInst().ResetSeq_data();
624 nuc->SetSeq().SetInst().SetRepr(objects::CSeq_inst::eRepr_delta);
625 nuc->SetSeq().SetInst().SetExt().SetDelta().AddLiteral(
"ATGATGATGCCC", objects::CSeq_inst::eMol_dna);
628gap_seg->SetLiteral().SetLength(10);
629 nuc->SetSeq().SetInst().SetExt().SetDelta().Set().push_back(gap_seg);
630 nuc->SetSeq().SetInst().SetExt().SetDelta().AddLiteral(
"CCCAAATTTTAA", objects::CSeq_inst::eMol_dna);
631 nuc->SetSeq().SetInst().SetLength(34);
634int1->
SetId().Assign(*(
nuc->GetSeq().GetId().front()));
638int2->
SetId().Assign(*(
nuc->GetSeq().GetId().front()));
641cds->
SetLocation().SetPacked_int().Set().push_back(int1);
642cds->
SetLocation().SetPacked_int().Set().push_back(int2);
651BOOST_CHECK_EQUAL(gapped_list.size(), 1);
652BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
653BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
655gapped_list.front()->CalculateRelevantIntervals(
false,
true);
656BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
657BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
false);
658BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
true);
660vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
661BOOST_CHECK_EQUAL(adjusted_feats.size(), 2);
662adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
false,
false);
663BOOST_CHECK_EQUAL(adjusted_feats.size(), 1);
668seq.
SetInst().ResetSeq_data();
669seq.
SetInst().SetRepr(objects::CSeq_inst::eRepr_delta);
670seq.
SetInst().SetExt().SetDelta().AddLiteral(
"NNNATGCCCANNNTGATGCCCNNN", objects::CSeq_inst::eMol_dna);
672gap_seg1->SetLiteral().SetSeq_data().SetGap();
673gap_seg1->SetLiteral().SetLength(10);
674seq.
SetInst().SetExt().SetDelta().Set().push_back(gap_seg1);
675seq.
SetInst().SetExt().SetDelta().AddLiteral(
"NNNCCCATGNNNATGATGNNN", objects::CSeq_inst::eMol_dna);
677gap_seg2->SetLiteral().SetSeq_data().SetGap();
678gap_seg2->SetLiteral().SetLength(10);
680seq.
SetInst().SetExt().SetDelta().Set().push_back(gap_seg2);
681seq.
SetInst().SetExt().SetDelta().AddLiteral(
"CCCATGNNNATGATG", objects::CSeq_inst::eMol_dna);
714BOOST_CHECK_EQUAL(gapped_list.size(), 1);
715BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
false);
716BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
717BOOST_CHECK_EQUAL(gapped_list.front()->HasNs(),
true);
718gapped_list.front()->CalculateRelevantIntervals(
false,
false,
true);
719BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
true);
720BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
false);
721BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
724BOOST_CHECK_EQUAL(gapped_list.size(), 1);
725BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
false);
726BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
727BOOST_CHECK_EQUAL(gapped_list.front()->HasNs(),
true);
728gapped_list.front()->CalculateRelevantIntervals(
false,
false,
true);
729BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
true);
730BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
false);
731BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
735BOOST_CHECK_EQUAL(gapped_list.size(), 1);
736BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
false);
737BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
738BOOST_CHECK_EQUAL(gapped_list.front()->HasNs(),
true);
739gapped_list.front()->CalculateRelevantIntervals(
false,
false,
true);
740BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
741BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
742BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
745BOOST_CHECK_EQUAL(gapped_list.size(), 1);
746BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
false);
747BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
748BOOST_CHECK_EQUAL(gapped_list.front()->HasNs(),
true);
749gapped_list.front()->CalculateRelevantIntervals(
false,
false,
true);
750BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
751BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
752BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
757BOOST_CHECK_EQUAL(gapped_list.size(), 1);
758BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
false);
759BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
760BOOST_CHECK_EQUAL(gapped_list.front()->HasNs(),
true);
761gapped_list.front()->CalculateRelevantIntervals(
false,
false,
true);
762BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
763BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
764BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
766BOOST_CHECK_EQUAL(gapped_list.size(), 1);
767BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
false);
768BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
769BOOST_CHECK_EQUAL(gapped_list.front()->HasNs(),
true);
770gapped_list.front()->CalculateRelevantIntervals(
false,
false,
true);
771BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
772BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
773BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
777BOOST_CHECK_EQUAL(gapped_list.size(), 1);
778BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
false);
779BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
780BOOST_CHECK_EQUAL(gapped_list.front()->HasNs(),
true);
781gapped_list.front()->CalculateRelevantIntervals(
false,
false,
true);
782BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
783BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
784BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
true);
786BOOST_CHECK_EQUAL(gapped_list.size(), 1);
787BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
false);
788BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
789BOOST_CHECK_EQUAL(gapped_list.front()->HasNs(),
true);
790gapped_list.front()->CalculateRelevantIntervals(
false,
false,
true);
791BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
792BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
793BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
true);
797BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
798BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
799BOOST_CHECK_EQUAL(gapped_list.front()->HasNs(),
true);
800gapped_list.front()->CalculateRelevantIntervals(
false,
false,
true);
801BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
802BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
803BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
804gapped_list.front()->CalculateRelevantIntervals(
false,
true,
true);
805BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
true);
806BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
false);
807BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
810BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
811BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
812BOOST_CHECK_EQUAL(gapped_list.front()->HasNs(),
true);
813gapped_list.front()->CalculateRelevantIntervals(
false,
false,
true);
814BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
815BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
816BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
817gapped_list.front()->CalculateRelevantIntervals(
false,
true,
true);
818BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
true);
819BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
false);
820BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
825BOOST_CHECK_EQUAL(gapped_list.size(), 1);
826BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
827BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
true);
828BOOST_CHECK_EQUAL(gapped_list.front()->HasNs(),
true);
829gapped_list.front()->CalculateRelevantIntervals(
false,
false,
true);
830BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
831BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
832BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
true);
835BOOST_CHECK_EQUAL(gapped_list.size(), 1);
836BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
837BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
true);
838BOOST_CHECK_EQUAL(gapped_list.front()->HasNs(),
true);
839gapped_list.front()->CalculateRelevantIntervals(
false,
false,
true);
840BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
841BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
842BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
true);
856cb->
SetLoc().SetInt().SetFrom(anticodon_start);
857cb->
SetLoc().SetInt().SetTo(anticodon_start + 2);
858cpy->
SetData().SetCdregion().SetCode_break().push_back(cb);
867BOOST_CHECK_EQUAL(gapped_list.size(), 1);
870gapped_list.front()->CalculateRelevantIntervals(
false,
true);
871BOOST_CHECK_EQUAL(gapped_list.size(), 1);
872 returngapped_list.front();
879cds->CalculateRelevantIntervals(
false,
true);
880vector<CRef<CSeq_feat> > adjusted_feats = cds->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
881BOOST_CHECK_EQUAL(adjusted_feats.size(), 2);
882BOOST_CHECK_EQUAL(adjusted_feats[0]->GetData().GetCdregion().IsSetCode_break(), first_cb);
883BOOST_CHECK_EQUAL(adjusted_feats[1]->GetData().GetCdregion().IsSetCode_break(), second_cb);
890cds->CalculateRelevantIntervals(
false,
true);
891vector<CRef<CSeq_feat> > adjusted_feats = cds->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
892BOOST_CHECK_EQUAL(adjusted_feats.size(), 1);
893BOOST_CHECK_EQUAL(adjusted_feats[0]->GetData().GetCdregion().IsSetCode_break(), expect_code_break);
922trna->
SetData().SetRna().SetExt().SetTRNA().SetAnticodon().SetInt().SetId().Assign(*(trna->
GetLocation().
GetId()));
923trna->
SetData().SetRna().SetExt().SetTRNA().SetAnticodon().SetInt().SetFrom(anticodon_start);
924trna->
SetData().SetRna().SetExt().SetTRNA().SetAnticodon().SetInt().SetTo(anticodon_start + 2);
931BOOST_CHECK_EQUAL(gapped_list.size(), 1);
932 returngapped_list.front();
939trna->CalculateRelevantIntervals(
false,
true);
940vector<CRef<CSeq_feat> > adjusted_feats = trna->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
941BOOST_CHECK_EQUAL(adjusted_feats.size(), 2);
942BOOST_CHECK_EQUAL(adjusted_feats[0]->GetData().GetRna().GetExt().GetTRNA().IsSetAnticodon(),
first);
943BOOST_CHECK_EQUAL(adjusted_feats[1]->GetData().GetRna().GetExt().GetTRNA().IsSetAnticodon(), second);
950trna->CalculateRelevantIntervals(
false,
true);
951vector<CRef<CSeq_feat> > adjusted_feats = trna->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
952BOOST_CHECK_EQUAL(adjusted_feats.size(), 1);
953BOOST_CHECK_EQUAL(adjusted_feats[0]->GetData().GetRna().GetExt().GetTRNA().IsSetAnticodon(), expect_anticodon);
983add1->
SetInt().SetId().Assign(
id);
984add1->
SetInt().SetFrom(start1);
985add1->
SetInt().SetTo(stop1);
988mix->Set().push_back(add1);
991add2->
SetInt().SetId().Assign(
id);
992add2->
SetInt().SetFrom(start2);
993add2->
SetInt().SetTo(stop2);
996mix->Set().push_back(add2);
1011BOOST_CHECK_EQUAL(gapped_list.size(), 1);
1012BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
1013BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
1014gapped_list.front()->CalculateRelevantIntervals(
false,
true);
1015BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
1016BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
1017BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
1018vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
1019BOOST_CHECK_EQUAL(adjusted_feats.size(), 1);
1020BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStart(
eExtreme_Positional), 0);
1021BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStop(
eExtreme_Positional), 11);
1022BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStart(
eExtreme_Positional),
false);
1023BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStop(
eExtreme_Positional),
true);
1029BOOST_CHECK_EQUAL(gapped_list.size(), 1);
1030BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
1031BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
1032gapped_list.front()->CalculateRelevantIntervals(
false,
true);
1033BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
1034BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
true);
1035BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
1036vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
1037BOOST_CHECK_EQUAL(adjusted_feats.size(), 1);
1038BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStart(
eExtreme_Positional), 22);
1039BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStop(
eExtreme_Positional), 33);
1040BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStart(
eExtreme_Positional),
true);
1041BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStop(
eExtreme_Positional),
false);
1047BOOST_CHECK_EQUAL(gapped_list.size(), 1);
1048BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
1049BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
1050gapped_list.front()->CalculateRelevantIntervals(
false,
true);
1051BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
false);
1052BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
false);
1053BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
true);
1054vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
1055BOOST_CHECK_EQUAL(adjusted_feats.size(), 2);
1056BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStart(
eExtreme_Positional), 0);
1057BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().GetStop(
eExtreme_Positional), 11);
1058BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStart(
eExtreme_Positional),
false);
1059BOOST_CHECK_EQUAL(adjusted_feats.front()->GetLocation().IsPartialStop(
eExtreme_Positional),
true);
1060BOOST_CHECK_EQUAL(adjusted_feats.back()->GetLocation().GetStart(
eExtreme_Positional), 22);
1061BOOST_CHECK_EQUAL(adjusted_feats.back()->GetLocation().GetStop(
eExtreme_Positional), 33);
1062BOOST_CHECK_EQUAL(adjusted_feats.back()->GetLocation().IsPartialStart(
eExtreme_Positional),
true);
1063BOOST_CHECK_EQUAL(adjusted_feats.back()->GetLocation().IsPartialStop(
eExtreme_Positional),
false);
1069BOOST_CHECK_EQUAL(gapped_list.size(), 1);
1070BOOST_CHECK_EQUAL(gapped_list.front()->HasKnown(),
true);
1071BOOST_CHECK_EQUAL(gapped_list.front()->HasUnknown(),
false);
1072gapped_list.front()->CalculateRelevantIntervals(
false,
true);
1073BOOST_CHECK_EQUAL(gapped_list.front()->ShouldRemove(),
true);
1074BOOST_CHECK_EQUAL(gapped_list.front()->Trimmable(),
false);
1075BOOST_CHECK_EQUAL(gapped_list.front()->Splittable(),
false);
1076vector<CRef<CSeq_feat> > adjusted_feats = gapped_list.front()->AdjustForRelevantGapIntervals(
true,
true,
true,
true,
false);
1077BOOST_CHECK_EQUAL(adjusted_feats.size(), 0);
1084BOOST_CHECK_EQUAL(gapped_list.size(), 0);
1086BOOST_CHECK_EQUAL(gapped_list.size(), 0);
1088BOOST_CHECK_EQUAL(gapped_list.size(), 0);
1090BOOST_CHECK_EQUAL(gapped_list.size(), 0);
User-defined methods of the data storage class.
@ eExtreme_Positional
numerical value
User-defined methods of the data storage class.
@Gb_qual.hpp User-defined methods of the data storage class.
CSeq_feat_EditHandle â.
namespace ncbi::objects::
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
TGappedFeatList ListGappedFeatures(CFeat_CI &feat_it, CScope &scope)
void ProcessForTrimAndSplitUpdates(CSeq_feat_Handle cds, vector< CRef< CSeq_feat > > updates)
vector< CRef< CFeatGapInfo > > TGappedFeatList
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
void SetStrand(ENa_strand strand)
Set the strand for all of the location's ranges.
static void Translate(const string &seq, string &prot, const CGenetic_code *code, bool include_stop=true, bool remove_trailing_X=false, bool *alt_start=NULL, bool is_5prime_complete=true, bool is_3prime_complete=true)
Translate a string using a specified genetic code.
static CRef< CObjectManager > GetInstance(void)
Return the existing object manager or create one.
CSeq_entry_Handle AddTopLevelSeqEntry(CSeq_entry &top_entry, TPriority pri=kPriority_Default, EExist action=eExist_Default)
Add seq_entry, default priority is higher than for defaults or loaders Add object to the score with p...
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
void RemoveTopLevelSeqEntry(const CTSE_Handle &entry)
Revoke TSE previously added using AddTopLevelSeqEntry() or AddBioseq().
const CSeq_annot_Handle & GetAnnot(void) const
Get handle to seq-annot for this feature.
virtual CConstRef< CSeq_feat > GetSeq_feat(void) const
virtual const CSeq_loc & GetProduct(void) const
virtual const CSeq_loc & GetLocation(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
void Replace(const CSeq_feat &new_feat) const
Replace the feature with new Seq-feat object.
const TId & GetId(void) const
static enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.
static bool Equal(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2, ECase use_case=eCase)
Test for equality of a substring with another string.
void SetTag(TTag &value)
Assign a value to Tag data member.
void SetDb(const TDb &value)
Assign a value to Db data member.
bool IsSetQual(void) const
qualifiers Check if a value has been assigned to Qual data member.
void SetLocation(TLocation &value)
Assign a value to Location data member.
const TQual & GetQual(void) const
Get the Qual member data.
const TLocation & GetLocation(void) const
Get the Location member data.
void SetData(TData &value)
Assign a value to Data data member.
void SetLoc(TLoc &value)
Assign a value to Loc data member.
vector< CRef< CGb_qual > > TQual
TQual & SetQual(void)
Assign a value to Qual data member.
@ eFrame_not_set
not set, code uses one
@ eFrame_three
reading frame
void SetTo(TTo value)
Assign a value to To data member.
TGeneral & SetGeneral(void)
Select the variant.
const TId & GetId(void) const
Get the Id member data.
void SetId(TId &value)
Assign a value to Id data member.
void SetFrom(TFrom value)
Assign a value to From data member.
const TInt & GetInt(void) const
Get the variant data.
TSeq & SetSeq(void)
Select the variant.
void SetInst(TInst &value)
Assign a value to Inst data member.
Utility stuff for more convenient using of Boost.Test library.
void TestTrimMiscOnRight(TSeqPos start, TSeqPos stop, bool is_minus)
edit::TGappedFeatList TryOneCDSCase(TSeqPos start, TSeqPos stop, TSeqPos gap_len, CCdregion::TFrame frame_one)
void TestTrimCDS(TSeqPos start, TSeqPos stop, CCdregion::TFrame frame_before, CCdregion::TFrame frame_after)
void TestAnticodonTrim(TSeqPos start, TSeqPos stop, TSeqPos anticodon_start, bool expect_anticodon)
void TestCodeBreakSplit(TSeqPos start, TSeqPos stop, TSeqPos anticodon_start, bool first_cb, bool second_cb)
void SetUpDelta(CBioseq &seq, TSeqPos gap_len)
void TestCodeBreakTrim(TSeqPos start, TSeqPos stop, TSeqPos anticodon_start, bool expect_code_break)
edit::TGappedFeatList TryOneCaseMixLoc(TSeqPos start1, TSeqPos stop1, TSeqPos start2, TSeqPos stop2, bool is_minus=false)
void TestTrimMiscOnLeft(TSeqPos start, TSeqPos stop, bool is_minus)
void TestTrimForFrame(TSeqPos gap_len, CCdregion::EFrame frame)
BOOST_AUTO_TEST_CASE(Test_FeatGapInfoMisc)
void TestSplitCDS(TSeqPos start, TSeqPos stop, TSeqPos gap_len, CCdregion::TFrame frame_one, CCdregion::TFrame frame_two)
void TestAnticodonSplit(TSeqPos start, TSeqPos stop, TSeqPos anticodon_start, bool first, bool second)
void TestRemoveMiscMixLoc(TSeqPos start1, TSeqPos stop1, TSeqPos start2, TSeqPos stop2, bool is_minus)
CRef< CFeatGapInfo > MakeCDSWithCodeBreak(TSeqPos start, TSeqPos stop, TSeqPos anticodon_start)
void TestUpdateCDS(CSeq_feat_Handle cds, vector< CRef< CSeq_feat > > adjusted_feats)
void CheckTags(CSeq_entry_Handle seh, const string &orig_tag, size_t num_updates)
void TestSplitMisc(TSeqPos start, TSeqPos stop, bool is_minus)
void TestTrimMiscOnRightMixLoc(TSeqPos start1, TSeqPos stop1, TSeqPos start2, TSeqPos stop2, bool is_minus)
void AddNsToGoodDelta(CBioseq &seq)
edit::TGappedFeatList TryMiscWithNs(TSeqPos start, TSeqPos stop, bool is_minus=false)
void CheckQual(const CSeq_feat &feat, const string &qual, const string &val)
void AddCodeBreak(CSeq_feat_Handle cds, TSeqPos anticodon_start)
void TestSplitMiscMixLoc(TSeqPos start1, TSeqPos stop1, TSeqPos start2, TSeqPos stop2, bool is_minus)
void TestRemoveMisc(TSeqPos start, TSeqPos stop, bool is_minus)
CRef< CFeatGapInfo > MakeTrnaWithAnticodon(TSeqPos start, TSeqPos stop, TSeqPos anticodon_start)
void TestTrimMiscOnLeftMixLoc(TSeqPos start1, TSeqPos stop1, TSeqPos start2, TSeqPos stop2, bool is_minus)
edit::TGappedFeatList TryOneCase(TSeqPos start, TSeqPos stop, bool is_minus=false)
CRef< objects::CSeq_feat > GetCDSFromGoodNucProtSet(CRef< objects::CSeq_entry > entry)
void RetranslateCdsForNucProtSet(CRef< objects::CSeq_entry > entry, objects::CScope &scope)
void ChangeNucProtSetProteinId(CRef< objects::CSeq_entry > entry, CRef< objects::CSeq_id > id)
CRef< objects::CSeq_entry > BuildGoodSeq(void)
CRef< objects::CSeq_feat > AddMiscFeature(CRef< objects::CSeq_entry > entry)
CRef< objects::CSeq_entry > GetProteinSequenceFromGoodNucProtSet(CRef< objects::CSeq_entry > entry)
CRef< objects::CSeq_entry > BuildGoodNucProtSet(void)
CRef< objects::CSeq_entry > GetNucleotideSequenceFromGoodNucProtSet(CRef< objects::CSeq_entry > entry)
CRef< objects::CSeq_entry > BuildGoodDeltaSeq(void)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4