base_name =
"tmp_lmdb";
57 const intkNumVols = 4;
59vector<string> vol_names;
60vector<blastdb::TOid> vol_num_oids;
61 for(
unsigned intk=0; k < kNumVols; k++) {
63vol_num_oids.push_back(k*1234);
69list< CRef<CSeq_id> > ids = source_db.
GetSeqIDs(
i);
78 for(
intj=0; j < (
i% 5 + 1); j++) {
86vector<string> test_neg_accs;
91vector<string> test_accs;
92vector<blastdb::TOid> test_oids;
93list< CRef<CSeq_id> > ids = source_db.
GetSeqIDs(
i);
100test_accs.push_back((*itr)->GetSeqIdString(
true));
101test_accs.push_back((*itr)->GetSeqIdString(
false));
103test_db.
GetOids(test_accs, test_oids);
104 for(
unsigned intj=0; j < test_accs.size(); j++) {
105BOOST_REQUIRE_EQUAL(test_oids[j],
i);
110vector<blastdb::TOid> neg_oids;
112BOOST_REQUIRE_EQUAL(neg_oids.size(), 65);
115vector<string> test_vol_names;
116vector<blastdb::TOid> test_vol_num_oids;
118 for(
unsigned intk=0; k < kNumVols; k++) {
119BOOST_REQUIRE_EQUAL(test_vol_num_oids[k], vol_num_oids[k]);
120BOOST_REQUIRE_EQUAL(test_vol_names[k], vol_names[k]);
124vector<blastdb::TOid> tax_oids;
127vector<TTaxId> rv_tax_ids;
129 for(
unsigned int i=0;
i< tax_ids.
size();
i++) {
130BOOST_REQUIRE_EQUAL(tax_oids[
i] % 5, 4);
134BOOST_REQUIRE_EQUAL(tax_oids.size(), 0);
140 for(
unsigned int i=0;
i< rv_tax_ids.size();
i++) {
141BOOST_REQUIRE((tax_oids[
i] % 5 < 2));
151 const stringbase_name =
"tmp_lmdb";
155 const intkNumVols = 4;
157vector<string> vol_names;
158vector<blastdb::TOid> vol_num_oids;
159 for(
unsigned intk=0; k < kNumVols; k++) {
161vol_num_oids.push_back(k*1234);
167list< CRef<CSeq_id> > ids = source_db.
GetSeqIDs(
i);
176 for(
intj=0; j < (
i% 5 + 1); j++) {
177 t.insert(taxids[j]);
184vector<string> test_neg_accs;
189vector<string> test_accs;
190vector<blastdb::TOid> test_oids;
191list< CRef<CSeq_id> > ids = source_db.
GetSeqIDs(
i);
195 if((*itr)->IsGi()) {
198test_accs.push_back((*itr)->GetSeqIdString(
true));
199test_accs.push_back((*itr)->GetSeqIdString(
false));
201test_db.
GetOids(test_accs, test_oids);
202 for(
unsigned intj=0; j < test_accs.size(); j++) {
203BOOST_REQUIRE_EQUAL(test_oids[j],
i);
208vector<blastdb::TOid> neg_oids;
210BOOST_REQUIRE_EQUAL(neg_oids.size(), 65);
213vector<string> test_vol_names;
214vector<blastdb::TOid> test_vol_num_oids;
216 for(
unsigned intk=0; k < kNumVols; k++) {
217BOOST_REQUIRE_EQUAL(test_vol_num_oids[k], vol_num_oids[k]);
218BOOST_REQUIRE_EQUAL(test_vol_names[k], vol_names[k]);
222vector<blastdb::TOid> tax_oids;
225vector<TTaxId> rv_tax_ids;
227 for(
unsigned int i=0;
i< tax_ids.
size();
i++) {
228BOOST_REQUIRE_EQUAL(tax_oids[
i] % 5, 4);
232BOOST_REQUIRE_EQUAL(tax_oids.size(), 0);
238 for(
unsigned int i=0;
i< rv_tax_ids.size();
i++) {
239BOOST_REQUIRE((tax_oids[
i] % 5 < 2));
BOOST_AUTO_TEST_SUITE_END() static int s_GetSegmentFlags(const CBioseq &bioseq)
void GetOids(const vector< string > &accessions, vector< blastdb::TOid > &oids) const
Get OIDs for a vector of string accessions.
void GetOidsForTaxIds(const set< TTaxId > &tax_ids, vector< blastdb::TOid > &oids, vector< TTaxId > &tax_ids_found) const
Get Oids for Tax Ids list, idenitcal Oids are merged.
void NegativeSeqIdsToOids(const vector< string > &ids, vector< blastdb::TOid > &rv) const
Get Oids excluded from a vector of input accessions An oid only get exlcuded if all its seqids are fo...
void NegativeTaxIdsToOids(const set< TTaxId > &ids, vector< blastdb::TOid > &rv, vector< TTaxId > &tax_ids_found) const
Get Oids to exclude for Tax ids @parm ids Input tax ids to exclude /Output tax ids found.
void GetVolumesInfo(vector< string > &vol_names, vector< blastdb::TOid > &vol_num_oids)
Return info for all volumes.
int GetNumOIDs() const
Returns the size of the (possibly sparse) OID range.
list< CRef< CSeq_id > > GetSeqIDs(int oid) const
Gets a list of sequence identifiers.
This class supports creation of a string accession to integer OID lmdb database.
void InsertVolumesInfo(const vector< string > &vol_names, const vector< blastdb::TOid > &vol_num_oids)
Create volume table This api should only be called once to create vol info for all vols in the db.
int InsertEntries(const list< CRef< CSeq_id >> &seqids, const blastdb::TOid oid)
Add entries in bulk as fetched from CSeqDB::GetSeqIDs.
This class supports creation of tax id list lookup files.
int InsertEntries(const set< TTaxId > &tax_ids, const blastdb::TOid oid)
Add tax id entries in bulk for each oid This api needs to be called in sequential order of OIDs This ...
iterator_bool insert(const value_type &val)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
SStrictId_Tax::TId TTaxId
Taxon id type.
string GetSeqIdString(bool with_version=false) const
Return seqid string with optional version for text seqid type.
static int WorstRank(const CRef< CSeq_id > &id)
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
C::value_type FindBestChoice(const C &container, F score_func)
Find the best choice (lowest score) for values in a container.
Defines classes: CDirEntry, CFile, CDir, CSymLink, CMemoryFile, CFileUtil, CFileLock,...
BOOST_AUTO_TEST_SUITE(psiblast_iteration)
Defines interface to interact with LMDB files.
string BuildLMDBFileName(const string &basename, bool is_protein, bool use_index=false, unsigned int index=0)
Build the canonical LMDB file name for BLAST databases.
void DeleteLMDBFiles(bool db_is_protein, const string &lmdb_filename)
string GetFileNameFromExistingLMDBFile(const string &lmdb_filename, ELMDBFileType file_type)
Defines `expert' version of CSeqDB interfaces.
Utility stuff for more convenient using of Boost.Test library.
Defines lmdb implementation of string-key database.
BOOST_AUTO_TEST_CASE(CreateLMDBFile)
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