;
100 const stringkPssmFile(
"data/pssm_freq_ratios.asn");
101m_Pssm = TestUtil::ReadObject<CPssmWithParameters>(kPssmFile);
104BOOST_REQUIRE(m_SeqEntry->
IsSeq());
109seqloc->
SetId(*
id);
110m_Seq_locs.push_back(seqloc);
113 const stringkSeqEntryFile(
"data/7450545.seqentry.asn");
115TestUtil::ReadObject<CSeq_entry>(kSeqEntryFile);
120BOOST_REQUIRE(m_SeqEntry->
IsSeq());
124seqloc->
SetId(*
id);
125m_Seq_locs.push_back(seqloc);
142x_ReadSeqEntriesFromFile();
147m_OptHandle.
Reset();
148m_SearchDb.
Reset();
149m_DomainDb.
Reset();
150m_SeqEntry.
Reset();
163 const CSeq_id& seqid = (*itr)->GetSeq_id(1);
168BOOST_REQUIRE(seqid.
IsOther() ||
178 if(acc != last_acc || ver != last_ver) {
188 if(new_gi != last_id) {
231 CDeltaBlastdeltablast(query_factory, dbadapter, domain_dbadapter,
232m_OptHandle, rps_opts);
239BOOST_REQUIRE((*domain_results)[0].GetErrors().
empty());
241 const intkNumExpectedMatchingDomains = 3;
244BOOST_REQUIRE_EQUAL(kNumExpectedMatchingDomains,
245x_CountNumberUniqueIds(domain_sas));
247 const size_tkNumExpectedDomainHSPs = 3;
252expected_domain_results[0].score = 742;
253expected_domain_results[0].evalue = 5.21679e-102;
254expected_domain_results[0].bit_score = 2.89507e+02;
255expected_domain_results[0].num_ident = 111;
256 intstarts[] = {1, 139, 80, -1, 81, 218};
257 intlengths[] = {79, 1, 151};
259back_inserter(expected_domain_results[0].starts));
261back_inserter(expected_domain_results[0].lengths));
266expected_domain_results[1].score = 713;
267expected_domain_results[1].evalue = 1.33296e-97;
268expected_domain_results[1].bit_score = 2.78295e+02;
269expected_domain_results[1].num_ident = 107;
270 intstarts[] = {1, 135, 6, -1, 8, 140, -1, 190, 58, 191, 80, -1, 81,
271213, 94, -1, 95, 226, 114, -1, 116, 245, 200, -1,
273 intlengths[] = {5, 2, 50, 1, 22, 1, 13, 1, 19, 2, 84, 2, 30};
275back_inserter(expected_domain_results[1].starts));
277back_inserter(expected_domain_results[1].lengths));
282expected_domain_results[2].score = 673;
283expected_domain_results[2].evalue = 1.63233e-91;
284expected_domain_results[2].bit_score = 2.62959e+02;
285expected_domain_results[2].num_ident = 106;
286 intstarts[] = {0, 137, 115, -1, 117, 252 };
287 intlengths[] = {115, 2, 112};
289back_inserter(expected_domain_results[2].starts));
291back_inserter(expected_domain_results[2].lengths));
298qa::CSeqAlignCmpOpts opts;
299qa::CSeqAlignCmp cmp_d(expected_domain_results, actual_domain_results, opts);
301 boolidentical_results = cmp_d.Run(&errors);
303BOOST_REQUIRE_MESSAGE(identical_results, errors);
321 const intkNumExpectedMatchingSeqs = 8;
324BOOST_REQUIRE_EQUAL(kNumExpectedMatchingSeqs, x_CountNumberUniqueIds(sas));
326 const size_tkNumExpectedHSPs = 9;
331expected_results[0].score = 861;
332expected_results[0].evalue = 2.80386e-109;
333expected_results[0].bit_score = 3.35656e+02;
334expected_results[0].num_ident = 101;
335 intstarts[] = {0, 941, -1, 1094, 153, 1095};
336 intlengths[] = {153, 1, 79};
338back_inserter(expected_results[0].starts));
340back_inserter(expected_results[0].lengths));
345expected_results[1].score = 633;
346expected_results[1].evalue = 3.86624e-77;
347expected_results[1].bit_score = 2.47830e+02;
348expected_results[1].num_ident = 73;
349 intstarts[] = {0, 154, -1, 307, 153, 308};
350 intlengths[] = {153, 1, 25};
352back_inserter(expected_results[1].starts));
354back_inserter(expected_results[1].lengths));
359expected_results[2].score = 645;
360expected_results[2].evalue = 6.62145e-84;
361expected_results[2].bit_score = 2.52452e+02;
362expected_results[2].num_ident = 80;
363 intstarts[] = {0, 190, 68, -1, 70, 258, 92, -1, 93, 280, 118, -1,
364119, 305, 151, -1, 152, 337, 161, -1, 162, 346, -1,
366 intlengths[] = {68, 2, 22, 1, 25, 1, 32, 1, 9, 1, 21, 4, 49};
368back_inserter(expected_results[2].starts));
370back_inserter(expected_results[2].lengths));
375expected_results[3].score = 53;
376expected_results[3].evalue = 3.83197e+00;
377expected_results[3].bit_score = 244103049e-7;
378expected_results[3].num_ident = 7;
379 intstarts[] = {127, 104, 132, -1, 134, 109};
380 intlengths[] = {5, 2, 15};
382back_inserter(expected_results[3].starts));
384back_inserter(expected_results[3].lengths));
390expected_results[4].score = 51;
391expected_results[4].evalue = 5.55808;
392expected_results[4].bit_score = 23.6440;
393expected_results[4].num_ident = 5;
394 intstarts[] = {137, 20, 151, -1, 156, 34};
395 intlengths[] = {14, 5, 17};
397back_inserter(expected_results[4].starts));
399back_inserter(expected_results[4].lengths));
404expected_results[5].score = 51;
405expected_results[5].evalue = 6.14178;
406expected_results[5].bit_score = 23.6440;
407expected_results[5].num_ident = 8;
408 intstarts[] = {153, 102, -1, 122, 173, 127};
409 intlengths[] = {20, 5, 12};
411back_inserter(expected_results[5].starts));
413back_inserter(expected_results[5].lengths));
418expected_results[6].score = 51;
419expected_results[6].evalue = 6.33109;
420expected_results[6].bit_score = 23.6440;
421expected_results[6].num_ident = 7;
422 intstarts[] = {172, 305, 179, -1, 182, 312};
423 intlengths[] = {7, 3, 33};
425back_inserter(expected_results[6].starts));
427back_inserter(expected_results[6].lengths));
433expected_results[7].score = 48;
434expected_results[7].evalue = 7.91913;
435expected_results[7].bit_score = 22.4884;
436expected_results[7].num_ident = 5;
437 intstarts[] = {155, 78};
438 intlengths[] = {18};
440back_inserter(expected_results[7].starts));
442back_inserter(expected_results[7].lengths));
448expected_results[8].score = 49;
449expected_results[8].evalue = 8.65824;
450expected_results[8].bit_score = 22.8736;
451expected_results[8].num_ident = 4;
452 intstarts[] = {175, 11};
453 intlengths[] = {14};
455back_inserter(expected_results[8].starts));
457back_inserter(expected_results[8].lengths));
464qa::CSeqAlignCmp
cmp(expected_results, actual_results, opts);
465identical_results =
cmp.Run(&errors);
467BOOST_REQUIRE_MESSAGE(identical_results, errors);
479m_OptHandle->SetEvalueThreshold(5);
492 CDeltaBlastdeltablast(query_factory, dbadapter, domain_dbadapter,
493m_OptHandle, rps_opts);
500BOOST_REQUIRE((*domain_results)[0].GetErrors().
empty());
502 const intkNumExpectedMatchingDomains = 3;
505BOOST_REQUIRE_EQUAL(kNumExpectedMatchingDomains,
506x_CountNumberUniqueIds(domain_sas));
508 const size_tkNumExpectedDomainHSPs = 3;
513expected_domain_results[0].score = 728;
514expected_domain_results[0].evalue = 6.61511e-100;
515expected_domain_results[0].bit_score = 2841082571e-7;
516expected_domain_results[0].num_ident = 111;
517 intstarts[] = {1, 139, 80, -1, 81, 218, 162, -1, 163, 299};
518 intlengths[] = {79, 1, 81, 1, 69};
520back_inserter(expected_domain_results[0].starts));
522back_inserter(expected_domain_results[0].lengths));
527expected_domain_results[1].score = 698;
528expected_domain_results[1].evalue = 2.17510e-95;
529expected_domain_results[1].bit_score = 2725169055e-7;
530expected_domain_results[1].num_ident = 107;
531 intstarts[] = {1, 135, 6, -1, 8, 140, -1, 190, 58, 191, 80, -1, 81,
532213, 94, -1, 95, 226, 114, -1, 116, 245, 200, -1,
534 intlengths[] = {5, 2, 50, 1, 22, 1, 13, 1, 19, 2, 84, 2, 30};
536back_inserter(expected_domain_results[1].starts));
538back_inserter(expected_domain_results[1].lengths));
543expected_domain_results[2].score = 661;
544expected_domain_results[2].evalue = 9.15785e-90;
545expected_domain_results[2].bit_score = 2583366987e-7;
546expected_domain_results[2].num_ident = 106;
547 intstarts[] = {0, 137, 115, -1, 117, 252 };
548 intlengths[] = {115, 2, 112};
550back_inserter(expected_domain_results[2].starts));
552back_inserter(expected_domain_results[2].lengths));
559qa::CSeqAlignCmpOpts opts;
560qa::CSeqAlignCmp cmp_d(expected_domain_results, actual_domain_results, opts);
562 boolidentical_results = cmp_d.Run(&errors);
564BOOST_REQUIRE_MESSAGE(identical_results, errors);
582 const intkNumExpectedMatchingSeqs = 5;
585BOOST_REQUIRE_EQUAL(kNumExpectedMatchingSeqs, x_CountNumberUniqueIds(sas));
587 const size_tkNumExpectedHSPs = 6;
592expected_results[0].score = 876;
593expected_results[0].evalue = 2.04885e-111;
594expected_results[0].bit_score = 3414303038e-7;
595expected_results[0].num_ident = 101;
596 intstarts[] = {0, 941, -1, 1094, 153, 1095};
597 intlengths[] = {153, 1, 79};
599back_inserter(expected_results[0].starts));
601back_inserter(expected_results[0].lengths));
607expected_results[1].score = 642;
608expected_results[1].evalue = 2.54740e-78;
609expected_results[1].bit_score = 2512936031e-7;
610expected_results[1].num_ident = 73;
611 intstarts[] = {0, 154, -1, 307, 153, 308};
612 intlengths[] = {153, 1, 25};
614back_inserter(expected_results[1].starts));
616back_inserter(expected_results[1].lengths));
621expected_results[2].score = 736;
622expected_results[2].evalue = 1.10324e-97;
623expected_results[2].bit_score = 2875023632e-7;
624expected_results[2].num_ident = 83;
625 intstarts[] = {0, 190, 68, -1, 70, 258, 92, -1, 93, 280, 118, -1,
626119, 305, 151, -1, 152, 337, 161, -1, 162, 346, -1,
628 intlengths[] = {68, 2, 22, 1, 25, 1, 32, 1, 9, 1, 28, 4, 42};
630back_inserter(expected_results[2].starts));
632back_inserter(expected_results[2].lengths));
637expected_results[3].score = 53;
638expected_results[3].evalue = 3.45771;
639expected_results[3].bit_score = 2441105291e-8;
640expected_results[3].num_ident = 4;
641 intstarts[] = {139, 22, 151, -1, 156, 34};
642 intlengths[] = {12, 5, 17};
644back_inserter(expected_results[3].starts));
646back_inserter(expected_results[3].lengths));
652expected_results[4].score = 52;
653expected_results[4].evalue = 4.61874;
654expected_results[4].bit_score = 2402585333e-8;
655expected_results[4].num_ident = 7;
656 intstarts[] = {172, 305, 179, -1, 182, 312};
657 intlengths[] = {7, 3, 33};
659back_inserter(expected_results[4].starts));
661back_inserter(expected_results[4].lengths));
666expected_results[5].score = 52;
667expected_results[5].evalue = 4.62283;
668expected_results[5].bit_score = 2402585333e-8;
669expected_results[5].num_ident = 7;
670 intstarts[] = {127, 104, 132, -1, 134, 109};
671 intlengths[] = {5, 2, 15};
673back_inserter(expected_results[5].starts));
675back_inserter(expected_results[5].lengths));
681qa::CSeqAlignCmp
cmp(expected_results, actual_results, opts);
682identical_results =
cmp.Run(&errors);
684BOOST_REQUIRE_MESSAGE(identical_results, errors);
698 CDeltaBlastdeltablast(query_factory, dbadapter, domain_dbadapter,
713 results[1].GetSeqAlign()->
Get().
front()->GetSeq_id(0).GetPir().GetName(),
719deltablast.
GetPssm(0)->GetQuery().GetSeq().GetFirstId()->GetGi(),
723deltablast.
GetPssm(1)->GetQuery().GetSeq().GetFirstId()->GetPir().GetName(),
733BOOST_REQUIRE_THROW(
CDeltaBlastdeltablast(query_factory, dbadapter,
734domain_dbadapter, m_OptHandle),
747BOOST_REQUIRE_THROW(
CDeltaBlastdeltablast(query_factory, dbadapter,
748domain_dbadapter, m_OptHandle),
760BOOST_REQUIRE_THROW(
CDeltaBlastdeltablast(query_factory, dbadapter,
761domain_dbadapter, m_OptHandle),
773BOOST_REQUIRE_THROW(
CDeltaBlastdeltablast(query_factory, dbadapter,
774domain_dbadapter, m_OptHandle),
static CRef< CScope > m_Scope
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
Declares the CBlastRPSOptionsHandle class.
BOOST_AUTO_TEST_SUITE_END() static int s_GetSegmentFlags(const CBioseq &bioseq)
const CSeq_id * GetFirstId() const
Defines BLAST error codes (user errors included)
Handle to the rpsblast options to the BLAST algorithm.
Handle to the protein-protein options to the BLAST algorithm.
A simple realization of the DELTA-BLAST algorithm: seacrch domain database, compute PSSM,...
Interface to create a BlastSeqSrc suitable for use in CORE BLAST from a a variety of BLAST database/s...
NCBI C++ Object Manager dependant implementation of IQueryFactory.
const CSeq_entry & GetQuery() const
Retrieve the query sequence.
bool HasQuery() const
Has this PSSM a query in it?
Search Results for All Queries.
@ eCompositionBasedStats
Composition-based statistics as in NAR 29:2994-3005, 2001.
@ eNoCompositionBasedStats
Don't use composition based statistics.
#define STATIC_ARRAY_SIZE(array)
Calculate the size of a static array.
BOOST_AUTO_TEST_CASE(TestSingleQuery_CBS)
Declares CPsiBlast, the C++ API for the PSI-BLAST engine.
Declares the CDeltaBlastOptionsHandle class.
void SetEvalueThreshold(double eval)
Sets EvalueThreshold.
void SetCompositionBasedStats(bool mode)
Set composition based statistics mode.
CConstRef< objects::CPssmWithParameters > GetPssm(int index=0) const
Accessor for PSSM computd from CDD hits and used in protein search.
CRef< CSearchResultSet > Run()
Run the DELTA-BLAST engine with one iteration.
ECompoAdjustModes GetCompositionBasedStats() const
Returns this mode, which mostly specifies whether composition of db sequence is taken into account wh...
CRef< CSearchResultSet > GetDomainResults()
Get results of conserved domain search (intermediate results)
void SetFilterString(const char *f, bool clear=true)
Sets FilterString.
@ eBlastDbIsProtein
protein
#define GI_FROM(T, value)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
const CTextseq_id * GetTextseq_Id(void) const
Return embedded CTextseq_id, if any.
static bool PreferAccessionOverGi(void)
Check if the option to prefer accession.version over GI is enabled (SeqId/PreferAccessionOverGi or SE...
void SetId(CSeq_id &id)
set the 'id' field in all parts of this location
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...
void Reset(void)
Reset reference object.
uint32_t Uint4
4-byte (32-bit) unsigned integer
const TTag & GetTag(void) const
Get the Tag member data.
bool IsSetTag(void) const
appropriate tag Check if a value has been assigned to Tag data member.
TId GetId(void) const
Get the variant data.
void SetPssm(TPssm &value)
Assign a value to Pssm data member.
bool CanGetQuery(void) const
Check if it is safe to call GetQuery method.
const TPssm & GetPssm(void) const
Get the Pssm member data.
list< CRef< CSeq_align > > Tdata
const Tdata & Get(void) const
Get the member data.
bool IsGenbank(void) const
Check if variant Genbank is selected.
bool IsOther(void) const
Check if variant Other is selected.
bool IsGeneral(void) const
Check if variant General is selected.
TGi GetGi(void) const
Get the variant data.
TVersion GetVersion(void) const
Get the Version member data.
const TGeneral & GetGeneral(void) const
Get the variant data.
bool IsGi(void) const
Check if variant Gi is selected.
bool IsSetVersion(void) const
Check if a value has been assigned to Version data member.
const TAccession & GetAccession(void) const
Get the Accession member data.
const TSeq & GetSeq(void) const
Get the variant data.
TSet & SetSet(void)
Select the variant.
bool IsSeq(void) const
Check if variant Seq is selected.
TSeq & SetSeq(void)
Select the variant.
TSeq_set & SetSeq_set(void)
Assign a value to Seq_set data member.
bool IsSetInst(void) const
the sequence data Check if a value has been assigned to Inst data member.
Declares class which provides internal BLAST database representations to the internal BLAST APIs.
const TYPE & Get(const CNamedParameterList *param)
constexpr auto front(list< Head, As... >, T=T()) noexcept -> Head
constexpr bool empty(list< Ts... >) noexcept
Magic spell ;-) needed for some weird compilers... very empiric.
std::vector< SeqAlign > TSeqAlignSet
Vector of neutral sequence alignments.
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
NOTE: This file contains work in progress and the APIs are likely to change, please do not rely on th...
API to compare CSeq-aligns produced by BLAST.
void SeqAlignSetConvert(const objects::CSeq_align_set &ss, std::vector< SeqAlign > &retval)
Converts a Seq-align-set into a neutral seqalign for use with the CSeqAlignCmp class.
vector< SSeqLoc > TSeqLocVector
Vector of sequence locations.
vector< CRef< CSeq_loc > > m_Seq_locs
Seq-locs for creating instances of CObjMgr_QueryFactory.
int x_CountNumberUniqueIds(CConstRef< CSeq_align_set > sas)
CRef< CPssmWithParameters > m_Pssm
CRef< CSeq_entry > m_SeqEntry
Contains a single Bioseq.
CRef< CSeq_entry > m_SeqSet
Contains a Bioseq-set with two Bioseqs, gi 7450545 and gi 129295.
CRef< CScope > m_Scope
Scope.
CRef< CSearchDatabase > m_DomainDb
CRef< CDeltaBlastOptionsHandle > m_OptHandle
void x_ReadSeqEntriesFromFile()
CRef< CSearchDatabase > m_SearchDb
~CDeltaBlastTestFixture()
Structure to represent a single sequence to be fed to BLAST.
Utility stuff for more convenient using of Boost.Test library.
Uniform BLAST Search Interface.
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