CALLS_UNTIL_CANCELLED = 25;
87 if(0 == ++mNumCalls % 100) {
88cerr <<
"Iterations until cancelled: " 89<< (CALLS_UNTIL_CANCELLED - mNumCalls) <<
"\n";
91 return(mNumCalls > CALLS_UNTIL_CANCELLED);
93 static unsigned intmNumCalls;
95 unsigned intTestCanceler::mNumCalls = 0;
109 void Init()
override;
110 int Run()
override;
140unique_ptr<CFastaOstreamEx>
m_Os;
142unique_ptr<CFastaOstreamEx>
m_On;
143unique_ptr<CFastaOstreamEx>
m_Og;
144unique_ptr<CFastaOstreamEx>
m_Or;
145unique_ptr<CFastaOstreamEx>
m_Op;
146unique_ptr<CFastaOstreamEx>
m_Ou;
193arg_desc->SetUsageContext(
"",
"Convert an ASN.1 Seq-entry into a FASTA report");
198arg_desc->AddOptionalKey(
"i",
"InputFile",
202arg_desc->AddOptionalKey(
"serial",
"SerialFormat",
"Input file format",
205 "text",
"binary",
"XML"));
208arg_desc->AddOptionalKey(
"id",
"ID",
212arg_desc->AddOptionalKey(
"ids",
"IDFile",
218arg_desc->AddDefaultKey(
"type",
"AsnType",
"ASN.1 object type",
220arg_desc->SetConstraint(
"type",
221&( *
new CArgAllow_Strings,
"any",
"seq-entry",
"bioseq",
"bioseq-set",
"seq-submit") );
224arg_desc->AddOptionalKey(
"indir",
"InputDirectory",
226arg_desc->AddOptionalKey(
"x",
"InputExtension",
235arg_desc->AddFlag(
"batch",
"Process NCBI release file");
237arg_desc->AddFlag(
"c",
"Compressed file");
239arg_desc->AddFlag(
"p",
"Propagate top descriptors");
241arg_desc->AddFlag(
"defline-only",
242 "Only output the defline");
243 stringfeat_desc =
"Comma-separated list of feature types.\n";
244feat_desc +=
" Allowed types are:\n";
245feat_desc +=
" fasta_cds_na,\n";
246feat_desc +=
" fasta_cds_aa,\n";
247feat_desc +=
" gene_fasta,\n";
248feat_desc +=
" rna_fasta,\n";
249feat_desc +=
" other_fasta,\n";
250feat_desc +=
" all";
259arg_desc->AddFlag(
"resolve-all",
"Resolves all, e.g for contigs");
262arg_desc->AddFlag(
"show-mods",
"Show FASTA header mods (e.g. [strain=abc])");
264arg_desc->AddFlag(
"auto-def",
"Use AutoDef algorithm for nucleotides");
266arg_desc->AddFlag(
"no-auto-def",
"Do not use AutoDef algorithm for nucleotides");
268arg_desc->AddOptionalKey(
"gap-mode",
"GapMode",
"\ 270 letters: letters will show gaps as runs of Ns (default mode)\n\ 271 count: count shows gaps as '>?123'\n\ 272 dashes: will show gaps as runs of dashes\n\ 273 one-dash: shows single gap literal as one das\n\ 277 "letters",
"count",
"dashes",
"one-dash"));
279arg_desc->AddOptionalKey(
"width",
"CHARS",
"Output FASTA with an alternate number of columns",
CArgDescriptions::eInteger);
283arg_desc->AddOptionalKey(
"o",
"SingleOutputFile",
287arg_desc->AddFlag(
"nucs-only",
"Only emit nucleotide sequences");
289arg_desc->AddFlag(
"prots-only",
"Only emit protein sequences");
294arg_desc->AddOptionalKey(
"on",
"NucleotideOutputFile",
298arg_desc->AddOptionalKey(
"og",
"GenomicOutputFile",
303arg_desc->AddOptionalKey(
"og_head",
"GenomicOutputFileHead",
304 "Genomic output file name stem",
310arg_desc->AddOptionalKey(
"og_tail",
"GenomicOutputFileTail",
311 "Genomic output file name suffix",
317arg_desc->AddOptionalKey(
"og_maxsize",
"GenomeFileMaxSize",
318 "Maximum size of each genomic fasta file in Mb",
321arg_desc->AddOptionalKey(
"or",
"RNAOutputFile",
326arg_desc->AddOptionalKey(
"op",
"ProteinOutputFile",
330arg_desc->AddOptionalKey(
"ou",
"UnknownOutputFile",
334arg_desc->AddOptionalKey(
"oq",
"QualityScoreOutputFile",
336arg_desc->AddFlag(
"enable-gi",
"Enable GI output in defline");
338arg_desc->AddFlag(
"ignore-origid",
"Ignore OriginalID descriptor when constructing defline");
340arg_desc->AddFlag(
"gnlacc",
"Display general id and genbank accession in defline");
346arg_desc->AddFlag(
"cleanup",
347 "Do internal data cleanup prior to formatting");
363 if(strname.empty()) {
364 if(argname.empty())
return nullptr;
365 if(! args[argname])
return nullptr;
372}
else if( !strname.empty() ) {
378os = &args[argname].AsOutputFile();
385fasta_os->SetAllFlags(
393 if(args[
"enable-gi"])
398 if(args[
"ignore-origid"])
403 if(args[
"gnlacc"]) {
407 if( args[
"gap-mode"] ) {
410 stringgapmode = args[
"gap-mode"].AsString();
411 if( gapmode ==
"one-dash") {
413}
else if( gapmode ==
"dashes") {
415}
else if( gapmode ==
"letters") {
417}
else if( gapmode ==
"count") {
422 if( args[
"show-mods"] ) {
430 if( args[
"no-auto-def"] ) {
433 if( args[
"width"] ) {
434fasta_os->SetWidth( args[
"width"].AsInteger() );
439 returnfasta_os.release();
454<<
" is more than 1 year old. Please download the current version if it is newer."<< endl;
464 "Could not create object manager");
486 if( args[
"feats"] ) {
493 if( args[
"id"] ) {
500 stringseqID = args[
"id"].AsString();
504 else if( args[
"ids"] ) {
511 if(id_str.empty() || id_str[0] ==
'#') {
526 if(args[
"indir"]) {
532ifname = args[
"i"].AsString();
537 string msg= !ifname.empty() ?
538 "Unable to open input file "+ ifname :
539 "Unable to read data from stdin";
544 if( args[
"batch"] ) {
548 stringasn_type = args[
"type"].AsString();
556 catch(exception& e) {
574 m_Oq= args[
"oq"] ? &(args[
"oq"].AsOutputFile()) :
nullptr;
581 if(args[
"og_head"] && args[
"og_tail"]) {
583 WARNING_POST(
"-x is deprecated. Use -og_maxsize instead.");
585 intog_maxsize = 1000;
586 if(args[
"og_maxsize"]) {
587og_maxsize = args[
"og_maxsize"].AsInteger();
591 const string& s = args[
"x"].AsString();
595 m_OgHead= args[
"og_head"].AsString();
596 m_OgTail= args[
"og_tail"].AsString();
617list<string> feat_list;
623 if(feat_list.empty()) {
626 for(
const string& feat_name : feat_list) {
627 if(feat_name ==
"fasta_cds_na") {
631 if(feat_name ==
"fasta_cds_aa") {
636 if(feat_name ==
"gene_fasta") {
640 if(feat_name ==
"rna_fasta") {
644 if(feat_name ==
"other_fasta") {
648 if(feat_name ==
"all") {
653 "Unrecognized feature type: "+feat_name );
669 in.RegisterHandler(
this);
680 if( asn_type ==
"seq-entry") {
695 if( asn_type ==
"any") {
697CSeq_entry::GetTypeInfo(), CSeq_submit::GetTypeInfo(),
698CBioseq_set::GetTypeInfo(), CBioseq::GetTypeInfo(),
704 if(matching_types.
empty()) {
706 "Unidentifiable object");
707}
else if(matching_types.
size() > 1) {
709 "Ambiguous object");
710}
else if(*matching_types.
begin() == CSeq_entry::GetTypeInfo()) {
712}
else if(*matching_types.
begin() == CSeq_submit::GetTypeInfo()) {
714}
else if(*matching_types.
begin() == CBioseq_set::GetTypeInfo()) {
716}
else if(*matching_types.
begin() == CBioseq::GetTypeInfo()) {
721 "Unable to construct Seq-entry object");
730 if( asn_type ==
"bioseq") {
733 else if( asn_type ==
"bioseq-set") {
736 else if( asn_type ==
"seq-submit") {
742 "Unable to construct Seq-entry object");
757 "provided Seq-entry is empty");
821 ERR_FATAL(
"Unable to obtain data on ID \""<< seq_id <<
"\".");
861 boolis_genomic =
false;
862 boolis_RNA =
false;
865 if(closest_molinfo) {
920 if( bsh.
IsNa() ) {
925 if( (is_genomic || ! closest_molinfo) &&
m_Og) {
926fasta_os =
m_Og.get();
934fasta_os =
m_Og.get();
938}
else if( is_RNA &&
m_Or) {
939fasta_os =
m_Or.get();
945 if( bsh.
IsAa() ) {
965 return!(feat_handle.GetData().IsCdregion() ||
966feat_handle.GetData().IsGene() ||
967feat_handle.GetData().IsRna());
980 if( tseh.
IsSet() ) {
994 cleanup.BasicCleanup( *tmp_se );
996 if( tmp_se->
IsSet() ) {
1013 for(
CBioseq_CIbioseq_it(seh); bioseq_it; ++bioseq_it) {
1018 #if defined(CANCELER_CODE) 1022 if( !fasta_os )
continue;
1027fasta_os->
Write(bsh);
1029 #if defined(CANCELER_CODE) 1048 #define PRELOAD_PRODUCTS 1049 #ifdef PRELOAD_PRODUCTS 1051vector<CSeq_id_Handle> product_ids;
1058 for(
CBioseq_CIbioseq_it(seh); bioseq_it; ++bioseq_it) {
1064 for( ; feat_it; ++feat_it) {
1090vector<CBioseq_Handle> product_handles;
1102 if( all_nuc_loc ) {
1106 if( all_prot_loc ) {
1113 for(
CBioseq_CIbioseq_it(seh); bioseq_it; ++bioseq_it) {
1121 for( ; feat_it; ++feat_it) {
1149 if( args[
"serial"] ) {
1150 const string&
val= args[
"serial"].AsString();
1151 if(
val==
"text") {
1153}
else if(
val==
"binary") {
1155}
else if(
val==
"XML") {
1163 boolbDeleteOnClose =
false;
1164 if( !ifname.empty() ) {
1166bDeleteOnClose =
true;
1172 if( args[
"c"] ) {
1201 stringext =
".sqn";
1203ext = args[
"x"].AsString();
1205 const string mask=
"*"+ ext;
1213 const stringifname = de->GetPath();
1214 stringofname = ifname;
1217ofname.resize(ofname.size() - ext.size());
1223 const string msg=
"Unable to open input file"+ ifname;
1229 if(args[
"batch"]) {
1232 stringasn_type = args[
"type"].AsString();
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
static const CDataLoadersUtil::TLoaders kDefaultLoaders
#define asn2fasta_app_main
ncbi::TMaskedQueryRegions mask
int x_ProcessISubdirectory(const CDir &)
int Run() override
Run the application.
bool HandleSeqID(const string &seqID)
CRef< CObjectManager > m_Objmgr
CFastaOstreamEx * OpenFastaOstream(const string &argname, const string &strname, bool use_stdout)
CArgValue::TStringArray m_FeatureSelection
void x_ProcessIStream(const string &asn_type, CObjectIStream &istr)
CObjectIStream * x_OpenIStream(const string &ifname)
void Init() override
Initialize the application.
unique_ptr< CFastaOstreamEx > m_Op
unique_ptr< CFastaOstreamEx > m_Or
void x_InitOStreams(const CArgs &args)
void x_BatchProcess(CObjectIStream &istr)
CSeq_entry_Handle ObtainSeqEntryFromSeqEntry(CObjectIStream &is)
void PrintQualityScores(const CBioseq &bioseq, CNcbiOstream &ostream)
unique_ptr< CFastaOstreamEx > m_Ou
unique_ptr< CFastaOstreamEx > m_On
bool x_IsOtherFeat(const CSeq_feat_Handle &feat) const
unique_ptr< CQualScoreWriter > m_pQualScoreWriter
CSeq_entry_Handle ObtainSeqEntryFromBioseqSet(CObjectIStream &is)
unique_ptr< CFastaOstreamEx > m_Og
CFastaOstreamEx * x_GetFastaOstream(CBioseq_Handle &handle)
bool HandleSeqEntry(CRef< CSeq_entry > &se) override
user code for handling a Seq-entry goes here.
CSeq_entry_Handle ObtainSeqEntryFromBioseq(CObjectIStream &is)
void x_InitFeatDisplay(const string &feats)
CSeq_entry_Handle ObtainSeqEntryFromSeqSubmit(CObjectIStream &is)
unique_ptr< CFastaOstreamEx > m_Os
CBioseq_set_EditHandle â.
CConstRef< CSeqdesc > GetClosestDescriptor(CSeqdesc::E_Choice choice, int *level=NULL) const
TSeqPos GetLength(void) const
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.
void WriteFeatureTitle(const CSeq_feat &feat, CScope &scope, bool translate_cds=false)
void WriteFeature(const CSeq_feat &feat, CScope &scope, bool translate_cds=false)
Interface for handling Seq-entry objects.
CGBReleaseFile is a utility class to ease the processing of Genbank release files one Seq-entry at a ...
void SetCanceler(ICanceled *pCanceller)
namespace ncbi::objects::
CZipStreamDecompressor â zlib based decompression stream processor.
Interface for testing cancellation request in a long lasting operation.
const_iterator begin() const
static void cleanup(void)
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.
vector< string > TStringArray
Some values types can contain several value lists.
@ 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)
@ eInteger
Convertible into an integer number (int or Int8)
@ eDirectory
Name of file directory.
@ fCheckFileHeader
Check (and skip) gzip file header on decompression stage.
#define ERR_FATAL(message)
Posting fatal error and abort.
#define WARNING_POST(message)
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
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.
TEntries GetEntries(const string &mask=kEmptyStr, TGetEntriesFlags flags=0) const
Get directory entries based on the specified "mask".
bool CheckAccess(TMode access_mode) const
Check access rights.
virtual bool Exists(void) const
Check if directory "dirname" exists.
string GetName(void) const
Get the base entry name with extension (if any).
@ fIgnoreRecursive
Suppress "self recursive" elements (the directories "." and "..").
C * SerialClone(const C &src)
Create on heap a clone of the source object.
ESerialDataFormat
Data file format.
@ eSerial_AsnText
ASN.1 text.
@ eSerial_AsnBinary
ASN.1 binary.
static CSeq_id_Handle GetHandle(const CSeq_id &id)
Normal way of getting a handle, works for any seq-id.
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
virtual set< TTypeInfo > GuessDataType(const set< TTypeInfo > &known_types, size_t max_length=16, size_t max_bytes=1024 *1024)
Identify the type of data in the stream.
virtual bool EndOfData(void)
Check if there is still some meaningful data that can be read; in text streams this function will ski...
static CObjectIStream * Open(ESerialDataFormat format, CNcbiIstream &inStream, bool deleteInStream)
Create serial object reader and attach it to an input stream.
virtual void WriteTitle(const CBioseq_Handle &handle, const CSeq_loc *location=0, const string &custom_title=kEmptyStr)
virtual void Write(const CSeq_entry_Handle &handle, const CSeq_loc *location=0)
Unspecified locations designate complete sequences; non-empty custom titles override the usual title ...
@ fNoExpensiveOps
don't try too hard to find titles
@ fShowModifiers
show key-value pair modifiers (e.g. "[organism=Homo sapiens]")
@ fInstantiateGaps
honor specifed gap mode; on by default
@ fHideGenBankPrefix
Hide gb| prefix for genbank only seq_id's.
@ fKeepGTSigns
don't convert '>' to '_' in title
@ fShowGnlAndAcc
Show general id and accession in the defline.
@ fNoDupCheck
skip check for duplicate sequence IDs
@ fIgnoreOriginalID
Disregard original ID when constructing defline.
@ fEnableGI
Use this flag to enable GI output in the defline.
@ fAssembleParts
assemble FAR delta sequences; on by dflt
@ eGM_letters
Multiple inline Ns or Xs as appropriate (default).
@ eGM_count
>?N or >?unk100, as appropriate.
@ eGM_dashes
Multiple inline dashes.
@ eGM_one_dash
A single dash, followed by a line break.
void ResetHistory(EActionIfLocked action=eKeepIfLocked)
Clean all unused TSEs from the scope's cache and release the memory.
CBioseq_Handle AddBioseq(CBioseq &bioseq, TPriority pri=kPriority_Default, EExist action=eExist_Throw)
Add bioseq, return bioseq handle.
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.
TBioseqHandles GetBioseqHandles(const TIds &ids)
Get bioseq handles for all ids.
void RemoveTopLevelSeqEntry(const CTSE_Handle &entry)
Revoke TSE previously added using AddTopLevelSeqEntry() or AddBioseq().
TBulkIds GetBulkIds(const TSeq_id_Handles &idhs, TGetFlags flags=0)
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
TSet SelectSet(TClass set_class=CBioseq_set::eClass_not_set) const
Convert the empty Seq-entry to Bioseq-set.
CConstRef< TObject > GetCompleteObject(void) const
const CSeqFeatData & GetData(void) const
const CTSE_Handle & GetTSE_Handle(void) const
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.
bool IsProtein(void) const
CSeq_entry_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
TMol GetSequenceType(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
bool IsSetData(void) const
SSeqMapSelector & SetLinkUsedTSE(bool link=true)
SAnnotSelector & SetResolveAll(void)
SetResolveAll() is equivalent to SetResolveMethod(eResolve_All).
SAnnotSelector & SetAdaptiveDepth(bool value=true)
SetAdaptiveDepth() requests to restrict subsegment resolution depending on annotations found on lower...
SAnnotSelector & SetExcludeExternal(bool exclude=true)
External annotations for the Object Manger are annotations located in top level Seq-entry different f...
const CSeq_feat & GetMappedFeature(void) const
Feature mapped to the master sequence.
SAnnotSelector & ExcludeNamedAnnots(const CAnnotName &name)
Add named annot to set of annots names to exclude.
SAnnotSelector & SetSortOrder(ESortOrder sort_order)
Set sort order of annotations.
@ eSortOrder_Normal
default - increasing start, decreasing length
static CRef< CSeqMap > CreateSeqMapForSeq_loc(const CSeq_loc &loc, CScope *scope)
bool CanResolveRange(CScope *scope, const SSeqMapSelector &sel) const
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
void Reset(void)
Reset reference object.
#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::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.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
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 bool EndsWith(const CTempString str, const CTempString end, ECase use_case=eCase)
Check if a string ends with a specified suffix value.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static string TruncateSpaces(const string &str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string.
@ fSplit_MergeDelimiters
Merge adjacent delimiters.
@ 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...
const SBuildInfo & GetBuildInfo() const
Get build info (date and tag, if set)
CTime GetBuildTime(void) const
Converts 'date' parameter to CTime.
bool IsCdregion(void) const
Check if variant Cdregion is selected.
const TLocation & GetLocation(void) const
Get the Location member data.
bool IsGene(void) const
Check if variant Gene is selected.
const TProduct & GetProduct(void) const
Get the Product member data.
bool IsSetProduct(void) const
product of process Check if a value has been assigned to Product data member.
bool IsRna(void) const
Check if variant Rna is selected.
bool IsSetLocation(void) const
feature made from Check if a value has been assigned to Location data member.
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.
@ e_not_set
No variant selected.
TBiomol GetBiomol(void) const
Get the Biomol member data.
EMol
molecule class in living organism
const TMolinfo & GetMolinfo(void) const
Get the variant data.
@ e_Molinfo
info on the molecule and techniques
@ eMol_na
just a nucleic acid
void SetData(TData &value)
Assign a value to Data data member.
const struct ncbi::grid::netcache::search::fields::EXPIRES expires
#define NCBI_SC_VERSION_PROXY
#define NCBI_TEAMCITY_BUILD_NUMBER_PROXY
Defines the CNcbiApplication and CAppException classes for creating NCBI applications.
std::istream & in(std::istream &in_, double &x_)
Utility macros and typedefs for exploring NCBI objects from seq.asn.
#define NCBI_BIOMOL(Type)
CMolInfo definitions.
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
Selector used in CSeqMap methods returning iterators.
static wxAcceleratorEntry entries[3]
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