;
117 using namespace xml;
132m_UseDevServer(
false)
156 virtual voidAddSummary();
170 for(
const auto&it : ids) {
171 if(m_Status.find(it) == m_Status.end()) {
173m_Status.insert(new_pair);
180 if(m_Status.empty()) {
181*m_ReportStream <<
"No BioSample IDs found"<< endl;
184biosample_util::TStatuses::iterator it = m_Status.begin();
185 while(it != m_Status.end()) {
199 virtual void Init(
void);
200 virtual int Run(
void);
207 voidSetup(
const CArgs& args);
209unique_ptr<CObjectIStream> OpenFile(
const CArgs& args);
210unique_ptr<CObjectIStream> OpenFile(
const string&fname);
211 voidSaveFile(
const string&fname,
booluseBinaryOutputFormat);
219 voidProcessSeqEntry(
void);
220 voidProcessSet(
void);
221 voidProcessSeqSubmit(
void);
222 voidProcessAsnInput (
void);
223 voidProcessList (
const string& fname);
224 voidProcessFileList (
const string& fname);
225 intProcessOneDirectory(
const string& dir_name,
const string& file_suffix,
const string& file_mask,
boolrecurse);
226 voidProcessOneFile(
stringfname);
227 voidProcessReleaseFile(
const CArgs& args);
240vector<CRef<CSeqdesc> > GetBiosampleDescriptors(
stringfname);
241vector<CRef<CSeqdesc> > GetBiosampleDescriptorsFromSeqSubmit();
242vector<CRef<CSeqdesc> > GetBiosampleDescriptorsFromSeqEntry();
243vector<CRef<CSeqdesc> > GetBiosampleDescriptorsFromSeqEntry(
const CSeq_entry& se);
246unique_ptr<CObjectIStream>
m_In;
304m_ObjMgr(0), m_Continue(
false),
305m_Level(0), m_ReportStream(0), m_NeedReportHeader(
true), m_AsnOut(0),
306m_LogStream(0), m_Mode(e_report_diffs), m_ReturnCode(0),
307m_StructuredCommentPrefix(
""), m_CompareStructuredComments(
true),
308m_FirstSeqOnly(
false), m_IDPrefix(
""), m_HUPDate(
""),
309m_BioSampleAccession(
""), m_BioProjectAccession(
""),
310m_Owner(
""), m_Comment(
""),
311m_Processed(0), m_Unprocessed(0), m_Handler(
NULL)
324arg_desc->AddOptionalKey
325(
"p",
"Directory",
"Path to ASN.1 Files",
327arg_desc->AddOptionalKey
328(
"i",
"InFile",
"Single Input File",
330arg_desc->AddOptionalKey(
331 "o",
"OutFile",
"Single Output File",
333arg_desc->AddOptionalKey(
334 "f",
"Filter",
"Substring Filter",
336arg_desc->AddDefaultKey
338arg_desc->AddFlag(
"u",
"Recurse");
339arg_desc->AddFlag(
"d",
"Use development Biosample server");
341arg_desc->AddDefaultKey(
"a",
"a",
342 "ASN.1 Type (a Automatic, z Any, e Seq-entry, b Bioseq, s Bioseq-set, m Seq-submit, t Batch Bioseq-set, u Batch Seq-submit) or accession list (l)",
346arg_desc->AddFlag(
"b",
"Output binary ASN.1");
348arg_desc->AddFlag(
"M",
"Process only first sequence in file (master)");
352arg_desc->AddOptionalKey(
353 "L",
"OutFile",
"Log File",
356arg_desc->AddDefaultKey(
357 "m",
"mode",
"Mode:\n" 358 "\t1 create update file\n" 359 "\t2 generate file for creating new biosample entries\n" 360 "\t3 push source info from one file (-i) to others (-p)\n" 361 "\t4 update with source qualifiers from BioSample unless conflict\n" 362 "\t5 update with source qualifiers from BioSample (continue with conflict))\n" 363 "\t6 report transaction status\n" 364 "\t7 use web API for update (with delete)\n" 365 "\t8 use web API for update (no delete)\n",
368arg_desc->SetConstraint(
"m", constraint);
370arg_desc->AddOptionalKey(
373arg_desc->AddOptionalKey(
374 "biosample",
"BioSampleAccession",
"BioSample Accession to use for sequences in record. Report error if sequences contain a reference to a different BioSample accession.",
CArgDescriptions::eString);
375arg_desc->AddOptionalKey(
376 "bioproject",
"BioProjectAccession",
"BioProject Accession to use for sequences in record. Report error if sequences contain a reference to a different BioProject accession.",
CArgDescriptions::eString);
377arg_desc->AddOptionalKey(
"comment",
"BioSampleComment",
"Comment to use for creating new BioSample xml",
CArgDescriptions::eString);
379arg_desc->AddOptionalKey(
"apikey_file",
"BioSampleWebAPIKey",
"File containing Web API Key needed to update BioSample database",
CArgDescriptions::eString);
382 stringprog_description =
"BioSample Checker\n";
383arg_desc->SetUsageContext(
GetArguments().GetProgramBasename(),
384prog_description,
false);
399 stringheader =
m_In->ReadFileHeader();
401 boolunhandled =
false;
403 if(header ==
"Seq-submit") {
405}
else if( header ==
"Seq-entry") {
407}
else if(header ==
"Bioseq-set") {
440 while( !
lr->AtEOF() ) {
450*
m_LogStream<<
"Unable to fetch Bioseq for "<< line << endl;
452 id->GetLabel(&
label);
478 while( !
lr->AtEOF() ) {
492 boolneed_to_close_report =
false;
493 boolneed_to_close_asn =
false;
500 if(pos != string::npos) {
501path = path.substr(0, pos);
503path = path +
".val";
511need_to_close_report =
true;
520 if(pos != string::npos) {
521path = path.substr(0, pos);
523path = path +
".out";
525need_to_close_asn =
true;
538 if(
m_In.get() ==
nullptr) {
541 if(!
m_In->InGoodState()) {
563 if(need_to_close_report) {
573 if(need_to_close_asn) {
592vector<CRef<CSeqdesc> > descriptors;
601src_desc->
Assign(*src_desc_ci);
602descriptors.push_back(src_desc);
612vector<CRef<CSeqdesc> > descriptors;
637 stringheader =
m_In->ReadFileHeader();
639vector<CRef<CSeqdesc> > descriptors;
640 if(header ==
"Seq-submit") {
642}
else if( header ==
"Seq-entry") {
654 intnum_of_files = 0;
658 for(
const auto&ii : files) {
659 stringfname = ii->GetName();
661(!file_suffix.empty() ||
NStr::Find(fname, file_suffix) != string::npos)) {
669 for(
const auto&ii : subdirs) {
670 stringsubdir = ii->GetName();
690 m_Mode= args[
"m"].AsInteger();
692 m_IDPrefix= args[
"R"] ? args[
"R"].AsString() :
"";
693 m_HUPDate= args[
"HUP"] ? args[
"HUP"].AsString() :
"";
696 m_Comment= args[
"comment"] ? args[
"comment"].AsString() :
"";
698 stringapikey_file = args[
"apikey_file"] ? args[
"apikey_file"].AsString() :
"";
699 if(!apikey_file.empty()) {
700ifstream is(apikey_file.c_str());
725 SaveFile(args[
"o"].AsString(), args[
"b"]);
752*
m_LogStream<<
"Structured comment prefix is only appropriate for generating a biosample table."<< endl;
767}
else if(
NStr::Equal(args[
"a"].AsString(),
"f")) {
773 stringdir_name = (args[
"p"]) ? args[
"p"].AsString() :
"";
774 stringfile_suffix = (args[
"f"]) ? args[
"f"].AsString() :
"";
775 stringfile_mask = (args[
"x"]) ? args[
"x"].AsString() :
".sqn";
776file_mask =
"*"+ file_mask;
777 booldir_recurse = args[
"u"];
788*
m_LogStream<<
"List type (-a l or -a f) is not appropriate for push mode."<< endl;
790}
else if(!args[
"p"] || !args[
"i"]) {
792*
m_LogStream<<
"Both directory containing contigs (-p) and master file (-i) are required for push mode."<< endl;
798}
else if( args[
"p"] ) {
864}
catch(std::exception e) {
872 in.ReadClassMember(member);
880(
const CArgs& args)
914 if(
table->GetNum_rows() == 0) {
919 for(
const auto&it :
table->GetColumns()) {
923 for(
size_t row= 0;
row< (size_t)
table->GetNum_rows();
row++) {
924 for(
const auto&it :
table->GetColumns()) {
925 if(row < it->GetData().GetString().size()) {
946biosample_util::CBiosampleFieldDiff::PrintHeader(*
m_ReportStream,
false);
950 for(
const auto&it : diffs) {
972vector< CRef<biosample_util::CBiosampleFieldDiff> >
add_item;
973vector< CRef<biosample_util::CBiosampleFieldDiff> > change_item;
974vector< CRef<biosample_util::CBiosampleFieldDiff> > delete_item;
975vector< CRef<biosample_util::CBiosampleFieldDiff> > change_organism;
979 for(
const auto&it : diffs) {
980 string id= it->GetBioSample();
981 string smp= it->GetSampleVal();
982 stringsrc = it->GetSrcVal();
983 stringfld = it->GetFieldName();
986 if(blank_smp && blank_src) {
993 if(fld ==
"Organism Name") {
994change_organism.push_back(it);
995}
else if(blank_smp) {
997}
else if(blank_src) {
999delete_item.push_back(it);
1002change_item.push_back(it);
1011options_obj.
insert(
"attribute_synonyms",
"true");
1013 for(
auto&
id: ids) {
1015obj1.
insert(
"samples",
id);
1022obj2.
insert(
"name", itm->GetFieldName());
1023obj2.
insert(
"new_value", itm->GetSrcVal());
1027 if(! delete_item.empty()) {
1030 for(
auto& itm : delete_item) {
1032obj2.
insert(
"name", itm->GetFieldName());
1033obj2.
insert(
"old_value", itm->GetSampleVal());
1037 if(! change_item.empty() || ! change_organism.empty()) {
1039 if(! change_organism.empty()) {
1041 for(
auto& itm : change_organism) {
1042chg_org.
insert(
"new_value", itm->GetSrcVal());
1045 if(! change_item.empty()) {
1047 for(
auto& itm : change_item) {
1048 stringfld = itm->GetFieldName();
1049 if(fld ==
"Tax ID") {
1053obj2.
insert(
"name", fld);
1054obj2.
insert(
"old_value", itm->GetSampleVal());
1055obj2.
insert(
"new_value", itm->GetSrcVal());
1061 if( ids.
size() > 1 ) {
1062*
m_LogStream<<
"ERROR: More than one BioSample ID is not supported by -m 7."<< endl;
1071 stringsUrl =
"https://api-int.ncbi.nlm.nih.gov/biosample/update/";
1073sUrl =
"https://dev-api-int.ncbi.nlm.nih.gov/biosample/update/";
1075 stringsContentType =
"application/json; charset=utf-8";
1094vector<string> unprocessed_ids;
1104 if(! new_diffs.empty()) {
1105 m_Diffs.insert(
m_Diffs.end(), new_diffs.begin(), new_diffs.end());
1106 for(
const auto&
id: unprocessed_ids) {
1107*
m_LogStream<<
"Failed to retrieve BioSample data for "<<
id<< endl;
1117 if(it->IsSource()) {
1131*
m_LogStream<<
label<<
" has conflicting BioSample Accession "<< biosample_ids[0] << endl;
1135 if(biosample_ids.empty()) {
1140 for(
const auto&
id: biosample_ids) {
1144 copy(descr->
Set().begin(), descr->
Set().end(),
1186*
m_LogStream<<
"Conflicts found for "<< sequence_id << endl;
1252 for(
const auto&se : set->
GetSeq_set()) {
1309 for(; src_desc_ci;) {
1312 const CSeqdesc& cur_descr = *src_desc_ci;
1339 for(++src_desc_ci; src_desc_ci;) {
1342 const CSeqdesc& cur_descr = *src_desc_ci;
1369 stringfname = args[
"i"].AsString();
1377unique_ptr<CNcbiIstream> hold_stream(
new CNcbiIfstream(fname.c_str(), ios::binary));
1383 switch(formatGuess)
1393hold_stream.release();
1394hold_stream.reset(decompress);
1395InputStream = hold_stream.get();
1399unique_ptr<CObjectIStream> objectStream;
1400 switch(formatGuess)
1407hold_stream.release();
1412 returnobjectStream;
1423 if( useBinaryOutputFormat ) {
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
#define biosample_chk_app_main
static bool s_IsEmptyBioSource(const CSeqdesc &src)
const char * BIOSAMPLE_CHK_APP_VER
string OwnerFromAffil(const CAffil &affil)
vector< CRef< CBiosampleFieldDiff > > TBiosampleFieldDiffList
bool ResolveSuppliedBioSampleAccession(const string &biosample_accession, vector< string > &biosample_ids)
bool DoDiffsContainConflicts(const TBiosampleFieldDiffList &diffs, CNcbiOstream *log)
string GetBestBioseqLabel(CBioseq_Handle bsh)
EStatus GetBiosampleStatus(const string &accession, bool use_dev_server=false, TStatuses *cache=NULL)
map< string, CRef< CSeq_descr > > TBioSamples
map< string, EStatus > TStatuses
void PrintBioseqXML(CBioseq_Handle bh, const string &id_prefix, CNcbiOstream *report_stream, const string &bioproject_accession, const string &default_owner, const string &hup_date, const string &comment, bool first_seq_only, bool report_structured_comments, const string &expected_prefix)
CRef< CSeq_descr > GetBiosampleData(const string &accession, bool use_dev_server=false, TBioSamples *cache=NULL)
string GetBiosampleStatusName(EStatus status)
TBiosampleFieldDiffList GetBioseqDiffs(CBioseq_Handle bh, const string &biosample_accession, size_t &num_processed, vector< string > &unprocessed_ids, bool use_dev_server=false, bool compare_structured_comments=false, const string &expected_prefix="", TBioSamples *cache=NULL)
pair< string, biosample_util::EStatus > TStatus
vector< string > GetBiosampleIDs(CBioseq_Handle bh)
void AddBioseqToTable(CBioseq_Handle bh, CSeq_table &table, bool with_id, bool include_comments=false, const string &expected_prefix="")
bool IsSetOrgname(void) const
bool IsSetDivision(void) const
void UpdateWithBioSample(const CBioSource &biosample, bool force, bool is_local_copy=false)
bool IsSetTaxname(void) const
void Setup(const CArgs &args)
string m_StructuredCommentPrefix
void ProcessBioseqHandle(CBioseq_Handle bh)
string m_BioSampleWebAPIKey
string m_BioProjectAccession
biosample_util::TBioSamples m_cache
void ProcessSeqSubmit(void)
void SaveFile(const string &fname, bool useBinaryOutputFormat)
void UpdateBioSource(CBioseq_Handle bh, const CBioSource &src)
vector< CRef< CSeqdesc > > GetBiosampleDescriptorsFromSeqEntry()
biosample_util::TBiosampleFieldDiffList m_Diffs
CRef< CSeq_entry > ReadSeqEntry(void)
void ProcessReleaseFile(const CArgs &args)
string m_BioSampleAccession
void PushToRecord(CBioseq_Handle bh)
CRef< CObjectManager > m_ObjMgr
void ProcessAsnInput(void)
CRef< CBioseq_set > ReadBioseqSet(void)
unique_ptr< CObjectIStream > OpenFile(const CArgs &args)
void CreateBiosampleUpdateWebService(biosample_util::TBiosampleFieldDiffList &diffs, bool del_okay)
vector< CRef< CSeqdesc > > m_Descriptors
void ReadClassMember(CObjectIStream &in, const CObjectInfo::CMemberIterator &member)
This method will be called at approriate time when the object of requested type is to be read.
CNcbiOstream * m_LogStream
void ProcessSeqEntry(void)
virtual void Init(void)
Initialize the application.
void ProcessList(const string &fname)
bool m_CompareStructuredComments
void PrintDiffs(biosample_util::TBiosampleFieldDiffList &diffs)
CNcbiOstream * m_ReportStream
int ProcessOneDirectory(const string &dir_name, const string &file_suffix, const string &file_mask, bool recurse)
void PrintResults(biosample_util::TBiosampleFieldDiffList &diffs)
void GetBioseqDiffs(CBioseq_Handle bh)
void ProcessFileList(const string &fname)
virtual int Run(void)
Run the application.
void ProcessOneFile(string fname)
vector< CRef< CSeqdesc > > GetBiosampleDescriptorsFromSeqSubmit()
vector< CRef< CSeqdesc > > GetBiosampleDescriptors(string fname)
CRef< CScope > BuildScope(void)
@ e_take_from_biosample_force
void ProcessBioseqForUpdate(CBioseq_Handle bh)
unique_ptr< CObjectIStream > m_In
CBiosampleHandler * m_Handler
CRef< CSeq_table > m_Table
void PrintTable(CRef< CSeq_table > table)
virtual void AddSummary()
virtual ~CBiosampleHandler()
virtual bool NeedsReportStream()
virtual void ProcessBioseq(CBioseq_Handle bh)
CNcbiOstream * m_ReportStream
void SetReportStream(CNcbiOstream *stream)
virtual bool NeedsReportStream()
virtual void AddSummary()
virtual ~CBiosampleStatusReport()
biosample_util::TStatuses m_Status
virtual void ProcessBioseq(CBioseq_Handle bh)
CBioseq_set_EditHandle â.
EFormat
The formats are checked in the same order as declared here.
@ eBZip2
bzip2 compressed file
@ eBinaryASN
Binary ASN.1.
@ eLzo
lzo compressed file
@ eGZip
GNU zip compressed file.
static EFormat Format(const string &path, EOnError onerror=eDefault)
Guess file format.
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, CReader *reader=0, CObjectManager::EIsDefault is_default=CObjectManager::eDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
Reading (iterating through) elements of containers (SET OF, SEQUENCE OF).
CJson_Object push_back_object(void)
Add object type element to the end of the array.
std::string ToString(TJson_Write_Flags flags=fJson_Write_IndentWithSpace, unsigned int indent_char_count=4) const
Convert the contents of the node into string.
CJson_Object SetObject(void)
Get JSON object contents of the node.
CJson_Array insert_array(const CJson_Node::TKeyType &name)
Insert array type element into the object.
void insert(const CJson_Node::TKeyType &name)
Insert null element into the object.
CJson_Object insert_object(const CJson_Node::TKeyType &name)
Insert object type element into the object.
Read hook for data member of a containing object (eg, SEQUENCE)
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, const SLoaderParams ¶ms, CObjectManager::EIsDefault is_default=CObjectManager::eNonDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
iterator_bool insert(const value_type &val)
Include a standard set of the NCBI C++ Toolkit most basic headers.
std::ofstream out("events_result.xml")
main entry point for tests
const CNcbiRegistry & GetConfig(void) const
Get the application's cached configuration parameters (read-only).
virtual const CArgs & GetArgs(void) const
Get parsed command line arguments.
int AppMain(int argc, const char *const *argv, const char *const *envp=0, EAppDiagStream diag=eDS_Default, const char *conf=NcbiEmptyCStr, const string &name=NcbiEmptyString)
Main function (entry point) for the NCBI application.
virtual void SetupArgDescriptions(CArgDescriptions *arg_desc)
Setup the command line argument descriptions.
const CNcbiArguments & GetArguments(void) const
Get the application's cached unprocessed command-line arguments.
void SetVersion(const CVersionInfo &version)
Set the version number for the program.
@ eTakeOwnership
An object can take ownership of another.
@ eInputFile
Name of file (must exist and be readable)
@ eString
An arbitrary string.
@ eOutputFile
Name of file (must be writable)
@ eInteger
Convertible into an integer number (int or Int8)
EMethod
Compression/decompression methods.
@ eNone
no compression method (copy "as is")
@ eGZipFile
.gz file (including concatenated files)
@ fDefault
Use algorithm-specific defaults.
@ eDS_Default
Try standard log file (app.name + ".log") in /log/, use stderr on failure.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
const string & GetMsg(void) const
Get message string.
TEntries GetEntries(const string &mask=kEmptyStr, TGetEntriesFlags flags=0) const
Get directory entries based on the specified "mask".
static string MakePath(const string &dir=kEmptyStr, const string &base=kEmptyStr, const string &ext=kEmptyStr)
Assemble a path from basic components.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
#define MSerial_AsnBinary
#define MSerial_AsnText
I/O stream manipulators â.
ESerialDataFormat
Data file format.
@ eSerial_AsnText
ASN.1 text.
@ eSerial_AsnBinary
ASN.1 binary.
CNcbiIstream & ContentStream(void) const
Get input stream.
int GetStatusCode(void) const
Get response status code.
void SetValue(CHeaderNameConverter name, CTempString value)
Remove all existing values with the name, set the new value.
CNcbiIstream & ErrorStream(void) const
Get input stream containing error message (e.g.
CHttpResponse g_HttpPost(const CUrl &url, CTempString data, const CHttpParam ¶m=CHttpParam())
Shortcut for POST request.
static CRef< ILineReader > New(const string &filename)
Return a new ILineReader object corresponding to the given filename, taking "-" (but not "....
pair< TObjectPtr, TTypeInfo > ObjectInfo(C &obj)
CMemberIterator FindMember(const string &memberName) const
Find class member by its name.
static CObjectIStream * Open(ESerialDataFormat format, CNcbiIstream &inStream, bool deleteInStream)
Create serial object reader and attach it to an input stream.
void SetLocalReadHook(CObjectIStream &stream, CReadClassMemberHook *hook) const
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 AddDefaults(TPriority pri=kPriority_Default)
Add default data loaders from object manager.
void RemoveTopLevelSeqEntry(const CTSE_Handle &entry)
Revoke TSE previously added using AddTopLevelSeqEntry() or AddBioseq().
CBioseq_set_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
TClass GetClass(void) const
CBioseq_set_Handle GetParentBioseq_set(void) const
Return a handle for the parent Bioseq-set, or null handle.
bool AddSeqdesc(CSeqdesc &d) const
CBioseq_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
bool IsSetClass(void) const
bool AddSeqdesc(CSeqdesc &d) const
CRef< CSeqdesc > RemoveSeqdesc(const CSeqdesc &d) const
void Reset(void)
Reset reference object.
IO_PREFIX::ofstream CNcbiOfstream
Portable alias for ofstream.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
IO_PREFIX::ifstream CNcbiIfstream
Portable alias for ifstream.
bool NcbiStreamCopy(CNcbiOstream &os, CNcbiIstream &is)
Copy the entire contents of stream "is" to stream "os".
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
static SIZE_TYPE Find(const CTempString str, const CTempString pattern, ECase use_case=eCase, EDirection direction=eForwardSearch, SIZE_TYPE occurrence=0)
Find the pattern in the string.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
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.
@ eReverseSearch
Search in a backward direction.
@ eCase
Case sensitive compare.
void Run(void)
Enter the main loop.
double Elapsed(void) const
Return time elapsed since first Start() or last Restart() call (in seconds).
@ eStart
Start timer immediately after creating.
LOG LOG_cxx2c(void)
Create LOG on top of C++ Toolkit CNcbiDiag.
void CORE_SetREG(REG rg)
Set the registry (no registry if "rg" is passed zero) â to be used by the core internals.
REG REG_cxx2c(IRWRegistry *reg, bool pass_ownership=false)
Convert a C++ Toolkit registry object to a REG registry.
void CORE_SetLOG(LOG lg)
Set the log handle (no logging if "lg" is passed zero) â to be used by the core internals (CORE LOG).
static const char label[]
bool IsSetAffil(void) const
author affiliation Check if a value has been assigned to Affil data member.
const TAffil & GetAffil(void) const
Get the Affil member data.
const TAffil & GetAffil(void) const
Get the Affil member data.
const TAuthors & GetAuthors(void) const
Get the Authors member data.
bool IsSetAffil(void) const
Check if a value has been assigned to Affil data member.
bool IsSetAuthors(void) const
not necessarily authors of the paper Check if a value has been assigned to Authors data member.
bool IsSetOrg(void) const
Check if a value has been assigned to Org data member.
bool IsSetSubtype(void) const
Check if a value has been assigned to Subtype data member.
bool IsSetOrigin(void) const
Check if a value has been assigned to Origin data member.
bool IsSetGenome(void) const
Check if a value has been assigned to Genome data member.
void SetNum_rows(TNum_rows value)
Assign a value to Num_rows data member.
TNum_rows GetNum_rows(void) const
Get the Num_rows member data.
virtual void Reset(void)
Reset the whole object.
bool IsSetSeq_set(void) const
Check if a value has been assigned to Seq_set data member.
const TSeq_set & GetSeq_set(void) const
Get the Seq_set member data.
@ eClass_nuc_prot
nuc acid and coded proteins
const TSource & GetSource(void) const
Get the variant data.
TSource & SetSource(void)
Select the variant.
Tdata & Set(void)
Assign a value to data member.
@ e_Source
source of materials, includes Org-ref
@ eMol_na
just a nucleic acid
const TContact & GetContact(void) const
Get the Contact member data.
const TCit & GetCit(void) const
Get the Cit member data.
const TEntrys & GetEntrys(void) const
Get the variant data.
const TData & GetData(void) const
Get the Data member data.
const TSub & GetSub(void) const
Get the Sub member data.
bool IsSetSub(void) const
Check if a value has been assigned to Sub data member.
bool IsEntrys(void) const
Check if variant Entrys is selected.
const TContact & GetContact(void) const
Get the Contact member data.
bool IsSetCit(void) const
citation for this submission Check if a value has been assigned to Cit data member.
bool IsSetContact(void) const
who to contact Check if a value has been assigned to Contact data member.
bool IsSetContact(void) const
WARNING: this will replace the above Check if a value has been assigned to Contact data member.
The blob sat and sat key Both must be positive integers</td > n< td > Non empty string The interpretation of the blob id depends on a processor Cassandra n processor expects the following format
<!DOCTYPE HTML >< html > n< header > n< title > PubSeq Gateway Help Page</title > n< style > n table
Lightweight interface for getting lines of data with minimal memory copying.
constexpr auto add_item(T item, list< Ts... > l) noexcept
Magic spell ;-) needed for some weird compilers... very empiric.
#define NCBI_SC_VERSION_PROXY
#define NCBI_TEAMCITY_BUILD_NUMBER_PROXY
Defines the CNcbiApplication and CAppException classes for creating NCBI applications.
Defines command line argument related classes.
Defines unified interface to application:
NCBI C++ stream class wrappers for triggering between "new" and "old" C++ stream libraries.
Useful/utility classes and methods.
std::istream & in(std::istream &in_, double &x_)
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
static SLJIT_INLINE sljit_ins lr(sljit_gpr dst, sljit_gpr src)
void PrintResults(CNcbiOstream &ostream, const vector< string > &idmap, CDbIndex::TSeqNum qnum, const vector< CSRSearch::SResultData > &results, const string &idstr1, const string &idstr2="")
C++ I/O stream wrappers to compress/decompress data on-the-fly.
#define row(bind, expected)
CRef< CScope > BuildScope(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