()
override;
144 int Run()
override;
190 template<
typename_TMethod,
typename... TArgs>
191 bool x_OneShot(_TMethod method, TArgs&& ... args);
192 template<
typename_TMethod,
typename... TArgs>
193 static void x_OneShotMethod(_TMethod method,
const CAsn2FlatApp* app, CAsn2FlatApp::TThreadStatePool::TUniqPointer thread_state, TArgs ... args);
204 #ifdef USE_THREAD_POOL 205TThreadPool m_thread_pool;
227unique_ptr<ncbi::grpcapi::dbsnp::primary_track::DbSnpPrimaryTrack::Stub> m_SNPTrackStub;
269arg_desc->SetUsageContext(
"",
"Convert an ASN.1 Seq-entry into a flat report");
273arg_desc->SetCurrentGroup(
"Input/Output Options");
279arg_desc->SetConstraint(
"serial",
281arg_desc->AddFlag(
"sub",
"Submission");
290arg_desc->SetConstraint(
"type",
291&(*
new CArgAllow_Strings,
"any",
"seq-entry",
"bioseq",
"bioseq-set",
"seq-submit"));
317arg_desc->SetCurrentGroup(
"Batch Processing Options");
318arg_desc->AddFlag(
"batch",
"Process NCBI release file");
320arg_desc->AddFlag(
"c",
"Compressed file");
322arg_desc->AddFlag(
"p",
"Propagate top descriptors");
330arg_desc->SetCurrentGroup(
"Debugging Options - Subject to change or removal without warning");
332arg_desc->AddFlag(
"huge",
"Use Huge files mode");
333arg_desc->AddFlag(
"disable-huge",
"Explicitly disable huge-files mode");
334arg_desc->SetDependency(
"disable-huge",
337arg_desc->AddFlag(
"use_mt",
"Use multiple threads when possible");
342 "benchmark-cancel-checking",
343 "Check statistics on how often the flatfile generator checks if " 344 "it should be canceled. This also sets up SIGUSR1 to trigger " 360 autofilename = args[name].AsString();
374<<
" is more than 1 year old. Please download the current version if it is newer."<< endl;
395 if(args[
"gbload"] || args[
"id"] || args[
"ids"]) {
400 if((args[
"enable-external"] && ! args[
"no-external"]) || args[
"policy"].AsString() ==
"external") {
404gb_loader->CGBDataLoader::SetAlwaysLoadExternal(
true);
414 stringhost = cfg.
GetString(
"SNPAccess",
"host",
"");
415 stringport = cfg.
GetString(
"SNPAccess",
"port",
"");
416 stringhostport = host +
":"+ port;
419grpc::CreateChannel(hostport, grpc::InsecureChannelCredentials());
443 m_HugeFileMode= ! args[
"disable-huge"] && (args[
"huge"] || cfg.
GetBool(
"asn2flat",
"UseHugeFiles",
false));
446 NcbiCerr<<
"Use of -huge mode also requires use of the -i argument. Disabling -huge mode."<< endl;
450 NcbiCerr<<
"Use of -huge mode is incompatible with -i /dev/stdin. Disabling -huge mode."<< endl;
454 NcbiCerr<<
"Use of -huge cannot be combined with -batch. Disabling -huge mode."<< endl;
458 NcbiCerr<<
"Use of -huge cannot be combined with -c. Disabling -huge mode."<< endl;
475 boolhas_o_args = has_o_arg || has_on_arg || has_og_arg || has_or_arg || has_op_arg || has_ou_arg;
486 autoview = args[
"view"].AsString();
491 if(args[
"accn"]) {
514 if(id_str.empty() || id_str[0] ==
'#') {
531 m_huge_process.OpenFile(args[
"i"].AsString(), args[
"c"] ?
nullptr: &edit::CHugeFileProcess::g_supported_types);
540 if(args[
"i"] && args[
"batch"] && !args[
"c"] &&
546 if(content == CBioseq_set::GetTypeInfo()) {
555 string msg= args[
"i"] ?
"Unable to open input file"+ args[
"i"].AsString() :
"Unable to read data from stdin";
560 if(args[
"batch"]) {
579 template<
typename_TMethod,
typename... TArgs>
587 autosuccess = method(app,
context, std::forward<TArgs>(args)...);
588 if(!success) app->
m_stopit=
true;
591 template<
typename_TMethod,
typename... TArgs>
595 "CAsn2FlatApp::x_OneShot should be used with class member function pointers");
606 automember = std::mem_fn(method);
608 autocalleable =
x_OneShotMethod<decltype(member), std::decay_t<TArgs>...>;
611 #ifdef USE_THREAD_POOL 612m_thread_pool.OneShot(calleable, member,
this, std::move(thread_state), std::forward<TArgs>(args)...);
614std::thread(calleable, member,
this, std::move(thread_state), std::forward<TArgs>(args)...).detach();
617calleable(member,
this, std::move(thread_state), std::forward<TArgs>(args)...);
627 if(reader && seqid) {
628 autoentry = reader->LoadSeqEntry(seqid);
632 if(
autopSubmitBlock = reader->GetSubmitBlock(); pSubmitBlock) {
634pSeqSubmit->SetSub().Assign(*pSubmitBlock);
635pSeqSubmit->SetData().SetEntrys().push_back(entry);
647 boolpropagate =
GetArgs()[
"p"];
678 boolsuccess =
true;
683 for(
auto id: idlist) {
702 stringasn_type = args[
"type"].AsString();
708 if(asn_info ==
nullptr)
710 if(asn_type ==
"seq-entry") {
711asn_info = CSeq_entry::GetTypeInfo();
712}
else if(asn_type ==
"bioseq") {
713asn_info = CBioseq::GetTypeInfo();
714}
else if(asn_type ==
"bioseq-set") {
715asn_info = CBioseq_set::GetTypeInfo();
716}
else if(asn_type ==
"seq-submit") {
717asn_info = CSeq_submit::GetTypeInfo();
721 if(asn_info == CSeq_entry::GetTypeInfo()) {
726 while(! is->EndOfData()) {
732 context.m_Scope->RemoveTopLevelSeqEntry(seh);
734}
else if(asn_info == CBioseq::GetTypeInfo()) {
739 while(! is->EndOfData()) {
745 context.m_Scope->RemoveTopLevelSeqEntry(seh);
747}
else if(asn_info == CBioseq_set::GetTypeInfo()) {
752 while(! is->EndOfData()) {
758 context.m_Scope->RemoveTopLevelSeqEntry(seh);
760}
else if(asn_info == CSeq_submit::GetTypeInfo()) {
761 while(! is->EndOfData()) {
764}
else if(asn_type ==
"any") {
768 while(! is->EndOfData()) {
769 stringstrNextTypeName = is->PeekNextTypeName();
798 context.m_Scope->RemoveTopLevelSeqEntry(seh);
819 context.m_cleanup.BasicCleanup(sub, options);
827seh =
context.m_Scope->GetSeq_entryHandle(*e);
832seh =
context.m_Scope->AddTopLevelSeqEntry(*e);
843 context.m_Scope->RemoveTopLevelSeqEntry(seh);
854 returnHandleSeqSubmit(
context, *sub);
884HandleSeqEntryHandle(
context, seh);
898 if(tseh.
IsSet()) {
914 context.m_cleanup.BasicCleanup(*tmp_se, options);
916 if(tmp_se->
IsSet()) {
941 return context.m_Scope->AddTopLevelSeqEntry(*se);
970 return context.m_Scope->AddTopLevelSeqEntry(*entry);
995 context.m_Scope->ResetDataAndHistory();
1004 if(args[
"serial"]) {
1005 const string&
val= args[
"serial"].AsString();
1006 if(
val==
"text") {
1008}
else if(
val==
"binary") {
1010}
else if(
val==
"XML") {
1018 boolbDeleteOnClose =
false;
1027pInputStream =
new CNcbiIfstream(args[
"i"].AsString(), ios::binary);
1028bDeleteOnClose =
true;
1030pInputStream = &std::cin;
1051 returnunique_ptr<CObjectIStream>{pI};
1072 if( args[
"benchmark-cancel-checking"] ) {
1078 bool nuc= args[
"og"] || args[
"or"] || args[
"on"];
1079 bool prot= args[
"op"];
1085}
else if(
prot) {
1100 context.m_FFGenerator->SetAnnotSelector().IncludeNamedAnnotAccession(
"SNP");
1103 if(args[
"no-external"] || args[
"policy"].AsString() ==
"internal") {
1104 context.m_FFGenerator->SetAnnotSelector().SetExcludeExternal(
true);
1109 if(args[
"resolve-all"] || args[
"policy"].AsString() ==
"external") {
1110 context.m_FFGenerator->SetAnnotSelector().SetResolveAll();
1112 if(args[
"depth"]) {
1113 context.m_FFGenerator->SetAnnotSelector().SetResolveDepth(args[
"depth"].AsInteger());
1115 if(args[
"max_search_segments"]) {
1116 context.m_FFGenerator->SetAnnotSelector().SetMaxSearchSegments(args[
"max_search_segments"].AsInteger());
1118 if(args[
"max_search_time"]) {
1119 context.m_FFGenerator->SetAnnotSelector().SetMaxSearchTime(
float(args[
"max_search_time"].AsDouble()));
1137 return static_cast<ENa_strand>(args[
"strand"].AsInteger());
1169 if(args[
"location"]) {
1171 const string& locn = args[
"location"].AsString();
1184 if(args[
"strand"]) {
1194loc.
SetInt().SetFrom(from);
1195loc.
SetInt().SetTo(to);
1197loc.
SetInt().SetStrand(strand);
1206 if(entry.
IsSeq()) {
1233 returnit->GetSeq();
1241 returnit->GetSeq();
1274 stringacc_prefix = acc.substr(0, 2);
1275 if(acc_prefix ==
"NC"|| acc_prefix ==
"AC"||
1276acc_prefix ==
"NT"|| acc_prefix ==
"NW") {
1288 #ifdef USE_SNPLOADER 1296 autosnp_status = m_SNPTrackStub->ForSeqId(&
context, request, &reply);
1297 if(snp_status.ok()) {
1299 if(! na_acc.empty())
1311 if(args[
"from"] || args[
"to"] || args[
"strand"] || args[
"location"]) {
1315 context.m_FFGenerator->Generate(loc, seh.
GetScope(), *flatfile_os, { flatfile_os });
1331 if(
context.m_FFGenerator.NotEmpty()) {
1332 context.m_FFGenerator->SetFeatTree(
nullptr);
1335 if(
context.m_Scope.NotEmpty()) {
1336 context.m_Scope->ResetDataAndHistory();
1342 if(
context.m_Scope.Empty()) {
1344 context.m_Scope->AddDefaults();
1346 #ifdef USE_SNPLOADER 1347 if(m_SNPDataLoader) {
1348 context.m_Scope->AddDataLoader(m_SNPDataLoader->GetLoaderNameFromArgs());
1351 #ifdef USE_CDDLOADER 1359 if(
context.m_FFGenerator.Empty())
1369 if(args[
"o"] && args[
"format"] && args[
"format"].AsString() ==
"insdseq") {
1373*os << (unwrap ?
"</INSDSet>":
"<INSDSet>") << endl;
1392list<string> split_args;
1393vector<const char*> new_argv;
1395 if(argc==2 && argv && argv[1] && strchr(argv[1],
' '))
1399 autoit = split_args.begin();
1400 while(it != split_args.end())
1403 if(
next!= split_args.end() &&
1404((it->front() ==
'"'&& it->back() !=
'"') ||
1405(it->front() ==
'\''&& it->back() !=
'\'')))
1407it->append(
" "); it->append(*
next);
1411 for(
auto& rec: split_args)
1413 if(rec.front()==
'\''&& rec.back()==
'\'')
1414rec=rec.substr(1, rec.length()-2);
1416argc = 1 +
int(split_args.size());
1417new_argv.reserve(argc);
1418new_argv.push_back(argv[0]);
1419 for(
const string& s : split_args)
1421new_argv.push_back(s.c_str());
1422std::cerr << s.c_str() <<
" ";
1427argv = new_argv.data();
User-defined methods of the data storage class.
static const CDataLoadersUtil::TLoaders default_loaders
#define asn2flat_app_main
void Init() override
Initialize the application.
void x_GetLocation(const CSeq_entry_Handle &entry, const CArgs &args, CSeq_loc &loc) const
static void x_OneShotMethod(_TMethod method, const CAsn2FlatApp *app, CAsn2FlatApp::TThreadStatePool::TUniqPointer thread_state, TArgs ... args)
int x_GenerateTraditionally(unique_ptr< CObjectIStream > is, TFFContext &context, const CArgs &args) const
bool HandleSeqSubmit(TFFContext &context, CObjectIStream &is) const
TResourcePool< TFFContext > TThreadStatePool
TThreadStatePool m_state_pool
void x_FFGenerate(CSeq_entry_Handle seh, TFFContext &context) const
int x_AddSNPAnnots(CBioseq_Handle &bsh, TFFContext &context) const
bool HandleSeqId(TFFContext &context, const edit::CHugeAsnReader *reader, CConstRef< CSeq_id > seqid) const
TSeqPos x_GetTo(const CArgs &args) const
unique_ptr< CObjectIStream > x_OpenIStream(const CArgs &args) const
void HandleTextId(TFFContext &context, const string &id) const
edit::CHugeFileProcess m_huge_process
CSeq_entry_Handle ObtainSeqEntryFromBioseq(TFFContext &context, CObjectIStream &is, bool report) const
void x_CreateFlatFileGenerator(TFFContext &context, const CArgs &args) const
std::atomic< bool > m_stopit
unique_ptr< ICanceled > m_pCanceledCallback
CRef< CCDDDataLoader > m_CDDDataLoader
void x_ResetContext(TFFContext &context)
TSeqPos x_GetFrom(const CArgs &args) const
CBioseq_Handle x_DeduceTarget(const CSeq_entry_Handle &entry) const
bool HandleSeqEntryHandle(TFFContext &context, CSeq_entry_Handle seh) const
std::atomic< bool > m_Exception
bool WrapINSDSet(bool unwrap)
ENa_strand x_GetStrand(const CArgs &args) const
int Run() override
Run the application.
void x_InitNewContext(TFFContext &context)
CSeq_entry_Handle ObtainSeqEntryFromBioseqSet(TFFContext &context, CObjectIStream &is, bool report) const
bool x_OneShot(_TMethod method, TArgs &&... args)
CSeq_entry_Handle ObtainSeqEntryFromSeqEntry(TFFContext &context, CObjectIStream &is, bool report) const
CFFMultiSourceFileSet m_writers
bool SetFlatfileOstream(eFlatFileCodes _code, const string &name)
CFlatFileConfig::CGenbankBlockCallback TGenbankBlockCallback
decltype(TFFContext::m_streams) fileset_type
int x_GenerateBatchMode(unique_ptr< CObjectIStream > is)
CRef< CObjectManager > m_Objmgr
bool HandleSeqEntry(TFFContext &context, CRef< CSeq_entry > se) const
CBioseq_set_EditHandle â.
static string GetLoaderNameFromArgs(void)
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, CObjectManager::EIsDefault is_default=CObjectManager::eNonDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
@ eClean_FlatfileHTMLMode
@ eClean_FlatfileGenerator
static void SetupObjectManager(const CArgs &args, objects::CObjectManager &obj_mgr, TLoaders loaders=fDefault)
Set up the standard object manager data loaders according to the arguments provided above.
static void AddArgumentDescriptions(CArgDescriptions &arg_desc, TLoaders loaders=fDefault)
Add a standard set of arguments used to configure the object manager.
static void AddArgumentDescriptions(CArgDescriptions &args)
void SetHTMLFormatter(CRef< IHTMLFormatter > html_fmt)
bool ShowSNPFeatures(void) const
void FromArguments(const CArgs &args)
CFlatFileConfig & SetHideSNPFeatures(bool val=true)
bool BasicCleanup(void) const
SAnnotSelector & SetAnnotSelector(void)
CGBReleaseFile is a utility class to ease the processing of Genbank release files one Seq-entry at a ...
CGRPCClientContext â client context for NCBI gRPC services.
CGetSeqLocFromStringHelper_ReadLocFromText(CScope *scope)
virtual CRef< CSeq_loc > Seq_loc_Add(const CSeq_loc &loc1, const CSeq_loc &loc2, CSeq_loc::TOpFlags flags)
void SetNcbiURLBase(const string &path)
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, const SLoaderParams ¶ms, CObjectManager::EIsDefault is_default=CObjectManager::eNonDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
CWrapINSDSet(CAsn2FlatApp *app)
CZipStreamDecompressor â zlib based decompression stream processor.
void SetDepth(size_t depth)
void SetUseMT(bool use_mt)
fileset_type MakeNewFileset()
void Open(enum_type _enum, const std::string &filename)
static std::unique_ptr< Stub > NewStub(const std::shared_ptr< ::grpc::ChannelInterface > &channel, const ::grpc::StubOptions &options=::grpc::StubOptions())
const std::string & na_track_acc_with_filter() const
void set_gi(::uint64_t value)
Include a standard set of the NCBI C++ Toolkit most basic headers.
The NCBI C++ standard methods for dealing with std::string.
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
static const char location[]
const CNcbiRegistry & GetConfig(void) const
Get the application's cached configuration parameters (read-only).
unsigned int TSeqPos
Type for sequence locations and lengths.
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 string & GetProgramDisplayName(void) const
Get the application's "display" name.
const CVersionAPI & GetFullVersion(void) const
Get the program version information.
void SetVersion(const CVersionInfo &version)
Set the version number for the program.
@ eTakeOwnership
An object can take ownership of another.
@ eNoOwnership
No ownership is assumed.
@ eExcludes
One argument excludes another.
@ eInputFile
Name of file (must exist and be readable)
@ eString
An arbitrary string.
@ eOutputFile
Name of file (must be writable)
@ fCheckFileHeader
Check (and skip) gzip file header on decompression stage.
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Error(CExceptionArgs_Base &args)
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
ESerialDataFormat
Data file format.
@ eSerial_AsnText
ASN.1 text.
@ eSerial_AsnBinary
ASN.1 binary.
TGi FindGi(const container &ids)
Return gi from id list if exists, return 0 otherwise.
static SIZE_TYPE ParseIDs(CBioseq::TId &ids, const CTempString &s, TParseFlags flags=fParse_Default)
Parse a string representing one or more Seq-ids, appending the results to IDS.
void GetLabel(string *label, ELabelType type=eDefault, TLabelFlags flags=fLabel_Default) const
Append a label for this Seq-id to the supplied string.
static int Score(const CRef< CSeq_id > &id)
Wrappers for use with FindBestChoice from <corelib/ncbiutil.hpp>
@ eContent
Untagged human-readable accession or the like.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Override Assign() to incorporate cache invalidation.
static CObjectIStream * Open(ESerialDataFormat format, CNcbiIstream &inStream, bool deleteInStream)
Create serial object reader and attach it to an input stream.
CRef< CSeq_loc > Seq_loc_Add(const CSeq_loc &loc1, const CSeq_loc &loc2, CSeq_loc::TOpFlags flags, CScope *scope)
Add two seq-locs.
TTaxId GetTaxId(const CBioseq_Handle &handle)
return the tax-id associated with a given sequence.
TLoader * GetLoader(void) const
Get pointer to the loader.
static CRef< CObjectManager > GetInstance(void)
Return the existing object manager or create one.
CDataLoader * FindDataLoader(const string &loader_name) const
Try to find a registered data loader by name.
static void SetDefaultKeepExternalAnnotsForEdit(bool keep=true)
Set new application-wide KeepExternalAnnotsForEdit flag.
TClass GetClass(void) const
TSet SelectSet(TClass set_class=CBioseq_set::eClass_not_set) const
Convert the empty Seq-entry to Bioseq-set.
CSeq_entry_Handle GetParentEntry(void) const
Get parent Seq-entry handle.
TBioseqCore GetBioseqCore(void) const
Get bioseq core structure.
CConstRef< TObject > GetCompleteObject(void) const
TInst_Mol GetInst_Mol(void) const
CConstRef< CSeq_id > GetSeqId(void) const
Get id which can be used to access this bioseq handle Throws an exception if none is available.
void Remove(ERemoveMode mode=eRemoveSeq_entry) const
void Remove(ERemoveMode mode=eRemoveSeq_entry) const
Remove current seqset-entry from its location.
CConstRef< TObject > GetCompleteObject(void) const
TSeq SelectSeq(CBioseq &seq) const
Make the empty Seq-entry be in seq state with specified Bioseq object.
CSeq_entry_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
TInst_Length GetInst_Length(void) const
bool IsSetClass(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
SAnnotSelector & IncludeNamedAnnotAccession(const string &acc, int zoom_level=0)
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
void Reset(void)
Reset reference object.
uint32_t Uint4
4-byte (32-bit) unsigned integer
virtual bool GetBool(const string §ion, const string &name, bool default_value, TFlags flags=0, EErrAction err_action=eThrow) const
Get boolean value of specified parameter name.
virtual string GetString(const string §ion, const string &name, const string &default_value, TFlags flags=0) const
Get the parameter string value.
@ eReturn
Return default value.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
CNcbiIstream & NcbiGetlineEOL(CNcbiIstream &is, string &str, string::size_type *count=NULL)
Read from "is" to "str" the next line (taking into account platform specifics of End-of-Line)
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
IO_PREFIX::ifstream CNcbiIfstream
Portable alias for ifstream.
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
static string TruncateSpaces(const string &str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string.
@ eCurrent
Use current time. See also CCurrentTime.
void CONNECT_Init(const IRWRegistry *reg=0, CRWLock *lock=0, TConnectInitFlags flag=eConnectInit_OwnNothing, FSSLSetup ssl=0)
Init [X]CONNECT library with the specified "reg" and "lock" (ownership for either or both can be deta...
C::value_type FindBestChoice(const C &container, F score_func)
Find the best choice (lowest score) for values in a container.
static void TrapSignals(TSignalMask signals)
Sets interrupt signal handling.
@ eSignal_USR1
User defined signal 1.
const SBuildInfo & GetBuildInfo() const
Get build info (date and tag, if set)
CTime GetBuildTime(void) const
Converts 'date' parameter to CTime.
ENa_strand
strand of nucleic acid
E_Choice Which(void) const
Which variant is currently selected.
@ e_Other
for historical reasons, 'other' = 'refseq'
TSet & SetSet(void)
Select the variant.
E_Choice Which(void) const
Which variant is currently selected.
bool IsSet(void) const
Check if variant Set is selected.
TSeq & SetSeq(void)
Select the variant.
@ eClass_nuc_prot
nuc acid and coded proteins
@ eClass_gen_prod_set
genomic products, chrom+mRNA+protein
@ eClass_genbank
converted genbank
@ eClass_segset
segmented sequence + parts
@ e_not_set
No variant selected.
const TId & GetId(void) const
Get the Id member data.
list< CRef< CSeq_id > > TId
@ eMol_na
just a nucleic acid
bool IsSetData(void) const
Check if a value has been assigned to Data data member.
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.
unsigned int
A callback function used to compare two keys in a database.
const struct ncbi::grid::netcache::search::fields::EXPIRES expires
const GenericPointer< typename T::ValueType > T2 value
#define NCBI_SC_VERSION_PROXY
#define NCBI_TEAMCITY_BUILD_NUMBER_PROXY
Setup interrupt signal handling.
Defines the CNcbiApplication and CAppException classes for creating NCBI applications.
std::istream & in(std::istream &in_, double &x_)
CRef< CSeq_loc > GetSeqLocFromString(const string &text, const CSeq_id *id, CGetSeqLocFromStringHelper *helper)
Utility macros and typedefs for exploring NCBI objects from seq.asn.
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
CFFMultiSourceFileSet::fileset_type m_streams
CRef< CFlatFileGenerator > m_FFGenerator
static CS_CONTEXT * context
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