descrs->AddFlag(
"print_exp",
"Print expected values instead of testing");
70descrs->AddFlag(
"verbose",
"Print detailed test progress");
108 size_tnum_aligns = 0;
109 while( !
in.eof() ) {
116 if(limit > 0 && num_aligns >= limit)
break;
129unique_ptr<TScopeAlnIdMap>& aln_id_map)
135aln_id_map->push_back(**aln_it);
165cout << aln_idx <<
" "<< anchor <<
" "<<
row<<
" "<< pw.
GetFlags() << endl;
177cout <<
" aln="<< aln_idx <<
", anchor="<< anchor <<
", row="<<
row<< endl;
179 size_texpected_aln_idx;
180 intexpected_row, expected_anchor;
181 intfirst_width, second_width;
183in_exp >> expected_aln_idx >> expected_anchor >> expected_row >>
flags;
184in_exp >> first_from >> first_to >> first_width;
186in_exp >> second_from >> second_to >> second_width;
188BOOST_CHECK(in_exp.good());
189BOOST_CHECK(aln_idx == expected_aln_idx);
190BOOST_CHECK(anchor == expected_anchor);
191BOOST_CHECK(
row== expected_row);
193BOOST_CHECK(pw.
GetFirstId()->GetSeqId().Equals(first_id));
194BOOST_CHECK(pw.
GetSecondId()->GetSeqId().Equals(second_id));
208<< rg_it->GetSecondFrom() <<
" " 209<< rg_it->GetLength() <<
" " 210<< (rg.
IsDirect() ? 1 : 0) << endl;
213in_exp >> first_from >> second_from >>
len>>
flags;
214BOOST_CHECK(in_exp.good());
215BOOST_CHECK(rg_it->GetFirstFrom() == first_from);
216BOOST_CHECK(rg_it->GetSecondFrom() == second_from);
217BOOST_CHECK(rg_it->GetLength() ==
len);
218BOOST_CHECK(rg_it->IsDirect() == (
flags!= 0));
228BOOST_CHECK(in_exp.good());
235cout <<
" "<< gap->GetFirstFrom() <<
" " 236<< gap->GetSecondFrom() <<
" " 237<< gap->GetLength() <<
" " 238<< (gap->IsDirect() ? 1 : 0) << endl;
241in_exp >> first_from >> second_from >>
len>>
flags;
242BOOST_CHECK(in_exp.good());
243BOOST_CHECK(gap->GetFirstFrom() == first_from);
244BOOST_CHECK(gap->GetSecondFrom() == second_from);
245BOOST_CHECK(gap->GetLength() ==
len);
246BOOST_CHECK(gap->IsDirect() == (
flags!= 0));
266 static const char* kGap =
"<GAP>";
267 static const char* kNoData =
"<NO SEQUENCE DATA>";
272cout << sparse.
GetDim() <<
" " 279 intexpected_dim, expected_numrows, expected_anchor;
280in_exp >> expected_dim >> expected_numrows >> expected_anchor;
281in_exp >> expected_aln_from >> expected_aln_to;
282BOOST_CHECK(in_exp.good());
283BOOST_CHECK(sparse.
GetDim() == expected_dim);
284BOOST_CHECK(sparse.
GetNumRows() == expected_numrows);
285BOOST_CHECK(sparse.
GetAnchor() == expected_anchor);
297 intexpected_row, expected_width;
299in_exp >> expected_row >> expected_width >>
MSerial_AsnText>> expected_id;
300BOOST_CHECK(in_exp.good());
301BOOST_CHECK(
row== expected_row);
303BOOST_CHECK(sparse.
GetSeqId(
row).Equals(expected_id));
309 TSeqPosexpected_seq_from, expected_seq_to,
310expected_native_from, expected_native_to;
315<< native_rg.
GetFrom() <<
" "<< native_rg.
GetTo() << endl;
318in_exp >> expected_aln_from >> expected_aln_to
319>> expected_seq_from >> expected_seq_to
320>> expected_native_from >> expected_native_to;
321BOOST_CHECK(in_exp.good());
324BOOST_CHECK(rg.
GetFrom() == expected_seq_from);
325BOOST_CHECK(rg.
GetTo() == expected_seq_to);
326BOOST_CHECK(native_rg.
GetFrom() == expected_native_from);
327BOOST_CHECK(native_rg.
GetTo() == expected_native_to);
330 if( check_sequence ) {
331 stringaln_sequence, row_sequence;
334 if( aln_sequence.empty() ) {
335aln_sequence = kNoData;
337 if( row_sequence.empty() ) {
338row_sequence = kNoData;
342cout << aln_sequence << endl;
343cout << row_sequence << endl;
347cout <<
" whole row="<<
row<< endl;
349 stringexpected_aln_sequence, expected_row_sequence;
351getline(in_exp, expected_aln_sequence);
352getline(in_exp, expected_row_sequence);
353BOOST_CHECK(in_exp.good());
354BOOST_CHECK(aln_sequence == expected_aln_sequence);
355BOOST_CHECK(row_sequence == expected_row_sequence);
360 for(; sparse_ci; ++sparse_ci) {
366cout <<
" "<< seg.
GetType() <<
" " 368<< seq_rg.
GetFrom() <<
" "<< seq_rg.
GetTo() << endl;
372cout <<
" segment: row="<<
row<<
", range="<<
375 unsignedexpected_seg_type;
378in_exp >> expected_seg_type
379>> expected_aln_from >> expected_aln_to
380>> expected_seq_from >> expected_seq_to;
381BOOST_CHECK(in_exp.good());
382BOOST_CHECK(seg.
GetType() == expected_seg_type);
383BOOST_CHECK(aln_rg.
GetFrom() == expected_aln_from);
384BOOST_CHECK(aln_rg.
GetTo() == expected_aln_to);
385BOOST_CHECK(seq_rg.
GetFrom() == expected_seq_from);
386BOOST_CHECK(seq_rg.
GetTo() == expected_seq_to);
389 if( check_sequence ) {
390 stringaln_sequence, row_sequence;
391 stringexpected_aln_sequence, expected_row_sequence;
393 if( !aln_rg.
Empty() ) {
395 if( aln_sequence.empty() ) {
396aln_sequence = kNoData;
402 if( !seq_rg.
Empty() ) {
405 if( row_sequence.empty() ) {
406row_sequence = kNoData;
414cout << aln_sequence << endl;
415cout << row_sequence << endl;
419getline(in_exp, expected_aln_sequence);
420getline(in_exp, expected_row_sequence);
421BOOST_CHECK(in_exp.good());
422BOOST_CHECK(aln_sequence == expected_aln_sequence);
423BOOST_CHECK(row_sequence == expected_row_sequence);
433cout <<
"Test CAlnContainer and CAlnStats... (aligns1.asn / expected01.txt)"<< endl;
443 size_tnum_aligns =
LoadAligns(in_data, aligns);
446cout << num_aligns << endl;
449 size_texpected_num_aligns;
450in_exp >> expected_num_aligns;
451BOOST_CHECK(num_aligns == expected_num_aligns);
454unique_ptr<TScopeAlnIdMap> aln_id_map;
458BOOST_CHECK(aln_stats->GetAlnCount() == num_aligns);
459BOOST_CHECK(aln_stats->CanBeAnchored());
464cout << (*id_it)->GetBaseWidth() <<
" ";
472BOOST_CHECK(
id.
Equals((*id_it)->GetSeqId()));
473BOOST_CHECK((*id_it)->GetBaseWidth() == width);
481cout <<
"Test CPairwiseAln... (aligns1.asn / expected02.txt)"<< endl;
491 size_tnum_aligns =
LoadAligns(in_data, aligns);
494cout << num_aligns << endl;
497 size_texpected_num_aligns;
498in_exp >> expected_num_aligns;
499BOOST_CHECK(num_aligns == expected_num_aligns);
502unique_ptr<TScopeAlnIdMap> aln_id_map;
508 for(
size_taln_idx = 0; aln_idx < aln_vec.size(); ++aln_idx) {
513 for(
intanchor = 0; anchor < 2; anchor++) {
515 for(
int row= 0;
row< aln_stats->GetDimForAln(aln_idx); ++
row) {
516 if(
row== anchor)
continue;
526cout <<
" "<< seg.GetFirstRange().GetFrom() <<
" " 527<< seg.GetFirstRange().GetTo() <<
" " 528<< seg.GetSecondRange().GetFrom() <<
" " 529<< seg.GetSecondRange().GetTo() <<
" " 530<< (seg.IsDirect() ? 1 : 0) <<
" " 531<< (seg.IsFirstDirect() ? 1 : 0) <<
" " 535 intdirect, first_direct, aligned;
537in_exp >> first_from >> first_to >> second_from >> second_to >>
538direct >> first_direct >> aligned;
539BOOST_CHECK(in_exp.good());
540BOOST_CHECK(seg.GetFirstRange().GetFrom() == first_from);
541BOOST_CHECK(seg.GetFirstRange().GetTo() == first_to);
542BOOST_CHECK(seg.GetSecondRange().GetFrom() == second_from);
543BOOST_CHECK(seg.GetSecondRange().GetTo() == second_to);
544BOOST_CHECK(seg.IsDirect() == (direct != 0));
545BOOST_CHECK(seg.IsFirstDirect() == (first_direct != 0));
558cout <<
"Test ranged CPairwise_CI... (aligns1.asn / expected03.txt)"<< endl;
580 size_tnum_aligns =
LoadAligns(in_data, aligns);
583cout << num_aligns << endl;
586 size_texpected_num_aligns;
587in_exp >> expected_num_aligns;
588BOOST_CHECK(num_aligns == expected_num_aligns);
591unique_ptr<TScopeAlnIdMap> aln_id_map;
597 for(
size_taln_idx = 0; aln_idx < aln_vec.size(); ++aln_idx) {
602 for(
intanchor = 0; anchor < 2; anchor++) {
604 for(
int row= 0;
row< aln_stats->GetDimForAln(aln_idx); ++
row) {
605 if(
row== anchor)
continue;
614cout << aln_idx <<
" "<< anchor <<
" "<<
row<<
" "<< pw.
GetFlags() << endl;
626cout <<
" aln="<< aln_idx <<
", anchor="<< anchor <<
", row="<<
row<< endl;
628 size_texpected_aln_idx;
629 intexpected_row, expected_anchor;
630 intfirst_width, second_width,
flags;
632in_exp >> expected_aln_idx >> expected_anchor >> expected_row >>
flags;
633in_exp >> first_from >> first_to >> first_width;
635in_exp >> second_from >> second_to >> second_width;
637BOOST_CHECK(in_exp.good());
638BOOST_CHECK(aln_idx == expected_aln_idx);
639BOOST_CHECK(anchor == expected_anchor);
640BOOST_CHECK(
row== expected_row);
642BOOST_CHECK(pw.
GetFirstId()->GetSeqId().Equals(first_id));
643BOOST_CHECK(pw.
GetSecondId()->GetSeqId().Equals(second_id));
652 if(pw.
size() < 2)
continue;
654first_from = (pw.
begin()+1)->GetFirstFrom() + 1;
655first_to = pw.
rbegin()->GetFirstFrom() - 2;
660cout <<
" "<< seg.GetFirstRange().GetFrom() <<
" " 661<< seg.GetFirstRange().GetTo() <<
" " 662<< seg.GetSecondRange().GetFrom() <<
" " 663<< seg.GetSecondRange().GetTo() <<
" " 664<< (seg.IsDirect() ? 1 : 0) <<
" " 665<< (seg.IsFirstDirect() ? 1 : 0) <<
" " 669 intdirect, first_direct, aligned;
670in_exp >> first_from >> first_to >> second_from >> second_to >>
671direct >> first_direct >> aligned;
672BOOST_CHECK(in_exp.good());
673BOOST_CHECK(seg.GetFirstRange().GetFrom() == first_from);
674BOOST_CHECK(seg.GetFirstRange().GetTo() == first_to);
675BOOST_CHECK(seg.GetSecondRange().GetFrom() == second_from);
676BOOST_CHECK(seg.GetSecondRange().GetTo() == second_to);
677BOOST_CHECK(seg.IsDirect() == (direct != 0));
678BOOST_CHECK(seg.IsFirstDirect() == (first_direct != 0));
690cout <<
"Test CAnchoredAln... (aligns1.asn / expected04.txt)"<< endl;
696 size_tnum_aligns =
LoadAligns(in_data, aligns);
699cout << num_aligns << endl;
702 size_texpected_num_aligns;
703in_exp >> expected_num_aligns;
704BOOST_CHECK(num_aligns == expected_num_aligns);
707unique_ptr<TScopeAlnIdMap> aln_id_map;
710 for(
size_taln_idx = 0; aln_idx < aligns.
size(); ++aln_idx) {
711 for(
intanchor = 0; anchor < aln_stats->GetDimForAln(aln_idx); ++anchor) {
714aln_idx, user_options, anchor);
728 static const intkMergeFlags[] = {
737cout <<
"Test built CAnchoredAln... (aligns2.asn / expected05.txt)"<< endl;
743 while(!in_data.eof() && in_data.good()) {
746in_data >> num_to_merge;
747 if(num_to_merge == 0 || !in_data.good())
break;
750 size_tnum_aligns =
LoadAligns(in_data, aligns, num_to_merge);
753cout << num_aligns << endl;
756 size_texpected_num_aligns;
757in_exp >> expected_num_aligns;
758BOOST_CHECK(num_aligns == expected_num_aligns);
761unique_ptr<TScopeAlnIdMap> aln_id_map;
765 for(
size_tanchor_idx = 0; anchor_idx < aln_ids.size(); anchor_idx++) {
770 for(
size_tflags_idx = 0; flags_idx <
sizeof(kMergeFlags)/
sizeof(kMergeFlags[0]); flags_idx++) {
774cout << anchor_idx <<
" " 779cout <<
" set="<< setnum <<
", anchor="<< anchor_idx <<
" ("<<
780anchor_id->GetSeqId().AsFastaString() <<
")"<<
781 ", flags_idx="<< flags_idx << endl;
783 size_texpected_anchor_idx;
785in_exp >> expected_anchor_idx >> expected_flags;
786BOOST_CHECK(in_exp.good());
787BOOST_CHECK(anchor_idx == expected_anchor_idx);
788BOOST_CHECK(user_options.
m_MergeFlags== expected_flags);
795 id->SetLocal().SetStr(
"pseudo-id");
798 BuildAln(anchored_aln_vec, built_aln, user_options, pseudo_id);
813cout <<
"Test CSparseAln coordinates... (aligns2.asn / expected06.txt)"<< endl;
819 while(!in_data.eof() && in_data.good()) {
822in_data >> num_to_merge;
823 if(num_to_merge == 0 || !in_data.good())
break;
826 size_tnum_aligns =
LoadAligns(in_data, aligns, num_to_merge);
829cout << num_aligns << endl;
832 size_texpected_num_aligns;
833in_exp >> expected_num_aligns;
834BOOST_CHECK(num_aligns == expected_num_aligns);
837unique_ptr<TScopeAlnIdMap> aln_id_map;
841 for(
size_tanchor_idx = 0; anchor_idx < aln_ids.size(); anchor_idx++) {
848cout << anchor_idx <<
" " 853cout <<
" set="<< setnum <<
", anchor="<< anchor_idx <<
" ("<<
854anchor_id->GetSeqId().AsFastaString() <<
")"<< endl;
856 size_texpected_anchor_idx;
857in_exp >> expected_anchor_idx;
860BOOST_CHECK(in_exp.good());
861BOOST_CHECK(anchor_idx == expected_anchor_idx);
862BOOST_CHECK(anchor_id->GetSeqId().Equals(expected_anchor_id));
869 id->SetLocal().SetStr(
"pseudo-id");
872 BuildAln(anchored_aln_vec, built_aln, user_options, pseudo_id);
884cout <<
"Test CSparseAln sequence... (aligns3.asn / expected07.txt)"<< endl;
890 while(!in_data.eof() && in_data.good()) {
893in_data >> num_to_merge;
894 if(num_to_merge == 0 || !in_data.good())
break;
897 size_tnum_aligns =
LoadAligns(in_data, aligns, num_to_merge);
900cout << num_aligns << endl;
903 size_texpected_num_aligns;
904in_exp >> expected_num_aligns;
905BOOST_CHECK(num_aligns == expected_num_aligns);
908unique_ptr<TScopeAlnIdMap> aln_id_map;
912 for(
size_tanchor_idx = 0; anchor_idx < aln_ids.size(); anchor_idx++) {
919cout << anchor_idx <<
" " 924cout <<
" set="<< setnum <<
", anchor="<< anchor_idx <<
" ("<<
925anchor_id->GetSeqId().AsFastaString() <<
")"<< endl;
927 size_texpected_anchor_idx;
928in_exp >> expected_anchor_idx;
931BOOST_CHECK(in_exp.good());
932BOOST_CHECK(anchor_idx == expected_anchor_idx);
933BOOST_CHECK(anchor_id->GetSeqId().Equals(expected_anchor_id));
940 id->SetLocal().SetStr(
"pseudo-id");
943 BuildAln(anchored_aln_vec, built_aln, user_options, pseudo_id);
958BOOST_CHECK(aln->
Equals(expected_aln));
966cout <<
"Test seq-align types... (aligns4.asn / expected08.txt)"<< endl;
972 size_tnum_aligns =
LoadAligns(in_data, aligns);
975cout << num_aligns << endl;
978 size_texpected_num_aligns;
979in_exp >> expected_num_aligns;
980BOOST_CHECK(num_aligns == expected_num_aligns);
983unique_ptr<TScopeAlnIdMap> aln_id_map;
986 for(
size_taln_idx = 0; aln_idx < aligns.
size(); ++aln_idx) {
987 for(
intanchor = 0; anchor < aln_stats->GetDimForAln(aln_idx); ++anchor) {
990 if(aln_stats->GetAlnVec()[aln_idx]->GetSegs().IsSparse() && anchor > 0) {
996aln_idx, user_options, anchor);
void BuildAln(TAnchoredAlnVec &in_alns, CAnchoredAln &out_aln, const CAlnUserOptions &options, TAlnSeqIdIRef pseudo_seqid=TAlnSeqIdIRef())
Build anchored alignment from a set of alignmnets.
void ConvertSeqAlignToPairwiseAln(CPairwiseAln &pairwise_aln, const objects::CSeq_align &sa, objects::CSeq_align::TDim row_1, objects::CSeq_align::TDim row_2, CAlnUserOptions::EDirection direction=CAlnUserOptions::eBothDirections, const TAlnSeqIdVec *ids=0)
Build pairwise alignment from the selected rows of a seq-align.
void CreateAnchoredAlnVec(_TAlnStats &aln_stats, TAnchoredAlnVec &out_vec, const CAlnUserOptions &options)
Create anchored alignment from each seq-align in the stats.
CRef< CAnchoredAln > CreateAnchoredAlnFromAln(const _TAlnStats &aln_stats, size_t aln_idx, const CAlnUserOptions &options, objects::CSeq_align::TDim explicit_anchor_row=-1)
Create an anchored alignment from Seq-align using hints.
CRef< CSeq_align > CreateSeqAlignFromAnchoredAln(const CAnchoredAln &anchored_aln, CSeq_align::TSegs::E_Choice choice, CScope *scope=NULL)
Convert CAnchoredAln to seq-align of the selected type.
CAlnStats< TScopeAlnIdMap > TScopeAlnStats
CAlnIdMap< vector< const CSeq_align * >, TScopeIdExtract > TScopeAlnIdMap
const_iterator begin() const
const_reverse_iterator rbegin() const
TSignedSeqPos GetSecondPosByFirstPos(position_type pos, ESearchDirection dir=eNone) const
position_type GetFirstFrom() const
@ fDefaultPolicy
do not store insertions
const TInsertions & GetInsertions() const
Each insertion shows where the 'first' sequence has a gap while the 'second' sequence has the inserti...
vector< TAlignRange > TInsertions
position_type GetFirstTo() const
CAlignRange Represents an element of pairwise alignment of two sequences.
const_iterator insert(const CSeq_align &seq_align)
Insert new CSeq_align into the list.
size_type size(void) const
Default IAlnSeqId implementation based on CSeq_id_Handle.
_TAlnIdVec::TAlnVec TAlnVec
Vector of original seq-aligns.
_TAlnIdVec::TIdVec TIdVec
Vector of ids used in all alignments.
Options for different alignment manager operations.
void SetAnchorId(const TAlnSeqIdIRef &anchor_id)
Set anchor id.
@ eBothDirections
No filtering: use both direct and reverse sequences.
@ fUseAnchorAsAlnSeq
Use the anchor sequence as the alignment sequence.
@ fAllowTranslocation
Allow translocations on the same row.
@ fAnchorRowFirst
Store anchor row in the first pairwise alignment (by default it's stored in the last one).
@ fTruncateOverlaps
Truncate overlapping ranges.
@ fIgnoreInsertions
Do not collect and store insertions (gaps on the anchor).
Query-anchored alignment can be 2 or multi-dimentional.
const TPairwiseAlnVector & GetPairwiseAlns(void) const
The vector of pairwise alns.
TDim GetAnchorRow(void) const
Which is the anchor row?
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, CReader *reader=0, CObjectManager::EIsDefault is_default=CObjectManager::eDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
static CNcbiApplication * Instance(void)
Singleton method.
A pairwise aln is a collection of ranges for a pair of rows.
int GetSecondBaseWidth(void) const
Base width of the second row.
const TAlnSeqIdIRef & GetFirstId(void) const
Get first sequence id.
int GetFirstBaseWidth(void) const
Base width of the first row.
const TAlnSeqIdIRef & GetSecondId(void) const
Get second sequence id.
CPairwiseAln iterator. Iterates over aligned ranges and gaps.
@ eAligned
Aligned range.
Scope-aware seq-id converter.
void Validate(bool full_test=false) const
TSignedSeqPos GetSeqAlnStart(TNumrow row) const
TRng GetAlnRange(void) const
Get whole alignment range.
TNumrow GetNumRows(void) const
Synonym of the above.
int GetBaseWidth(TNumrow row) const
Get base width for the sequence (1 for nucleotides, 3 for proteins).
TSignedSeqPos GetSeqAlnStop(TNumrow row) const
TRange GetSeqRange(TNumrow row) const
Get sequence range in sequence coords.
CAnchoredAln::TDim TDim
Synonym of TNumrow.
_TRange AlnRangeToNativeSeqRange(TNumrow row, _TRange aln_range) const
Convert alignment range (genomic coordinates) on the selected row to real sequence range.
string & GetAlnSeqString(TNumrow row, string &buffer, const TSignedRange &rq_aln_rng, bool force_translation=false) const
Fetch alignment sequence data.
TDim GetDim(void) const
Alignment dimension (number of sequence rows in the alignment)
TNumrow GetAnchor(void) const
Get anchor row index.
string & GetSeqString(TNumrow row, string &buffer, TSeqPos seq_from, TSeqPos seq_to, bool force_translation=false) const
Fetch sequence data for the given row and range.
const objects::CSeq_id & GetSeqId(TNumrow row) const
Get seq-id for the row.
Implementation of IAlnSegmentIterator for CSparseAln.
@ eAllSegments
Iterate all segments.
Alignment segment interface.
virtual const TSignedRange & GetRange(void) const =0
Get the selected row range.
virtual TSegTypeFlags GetType(void) const =0
Get current segment type.
virtual const TSignedRange & GetAlnRange(void) const =0
Get alignment range for the segment.
unsigned int TSeqPos
Type for sequence locations and lengths.
virtual const CArgs & GetArgs(void) const
Get parsed command line arguments.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
int TSignedSeqPos
Type for signed sequence position.
#define MSerial_AsnText
I/O stream manipulators â.
virtual bool Equals(const CSerialObject &object, ESerialRecursionMode how=eRecursive) const
Check if both objects contain the same values.
static CRef< CObjectManager > GetInstance(void)
Return the existing object manager or create one.
void AddDefaults(TPriority pri=kPriority_Default)
Add default data loaders from object manager.
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
void Reset(void)
Reset reference object.
position_type GetFirstFrom(void) const
static TThisType GetWhole(void)
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
IO_PREFIX::ifstream CNcbiIfstream
Portable alias for ifstream.
TTo GetTo(void) const
Get the To member data.
TFrom GetFrom(void) const
Get the From member data.
unsigned int
A callback function used to compare two keys in a database.
static bool Equals(const CVariation::TPlacements &p1, const CVariation::TPlacements &p2)
Defines the CNcbiApplication and CAppException classes for creating NCBI applications.
std::istream & in(std::istream &in_, double &x_)
vector< CRef< CAnchoredAln > > TAnchoredAlnVec
Collection of anchored alignments.
#define row(bind, expected)
Utility stuff for more convenient using of Boost.Test library.
CRef< TScopeAlnStats > InitAlnStats(const CAlnContainer &aligns, unique_ptr< TScopeAlnIdMap > &aln_id_map)
size_t LoadAligns(CNcbiIstream &in, CAlnContainer &aligns, size_t limit=0)
void CheckSparseAln(CNcbiIstream &in_exp, const CSparseAln &sparse, bool check_sequence)
NCBITEST_INIT_CMDLINE(descrs)
void CheckPairwiseAln(CNcbiIstream &in_exp, const CPairwiseAln &pw, size_t aln_idx, int anchor, int row)
BOOST_AUTO_TEST_CASE(s_TestLoadAlign)
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