()
override;
103 void x_OpenOStream(
const string& filename,
const string& dir =
kEmptyStr,
boolremove_orig_dir =
true);
155arg_desc->SetUsageContext(
"",
"Perform ExtendedCleanup on an ASN.1 Seq-entry into a flat report");
167arg_desc->SetConstraint(
"outformat", &(*
new CArgAllow_Strings,
"text",
"binary",
"XML",
"JSON"));
192arg_desc->AddFlag(
"bigfile",
"Process big files containing many bioseqs (Deprecated)");
204arg_desc->AddOptionalKey(
"K",
"Cleanup",
"Systemic Cleaning Options\n" 207 "\tn Normalize Descriptor Order\n" 208 "\tu Remove Cleanup User-object\n",
214arg_desc->AddOptionalKey(
"F",
"Feature",
"Feature Cleaning Options\n" 215 "\tr Remove Redundant Gene xref\n" 216 "\ta Adjust for Missing Stop Codon\n" 217 "\tp Clear internal partials\n" 218 "\tz Delete or Update EC Numbers\n" 219 "\td Remove duplicate features\n",
222arg_desc->AddOptionalKey(
"X",
"Miscellaneous",
"Other Cleaning Options\n" 223 "\td Automatic Definition Line\n" 224 "\tw GFF/WGS Genome Cleanup\n" 225 "\tr Regenerate Definition Lines\n" 226 "\tb Batch Cleanup of Multireader Output\n" 227 "\ta Remove Assembly Gaps\n" 228 "\ti Make Influenza Small Genome Sets\n" 229 "\tf Make IRD misc_feats\n",
232arg_desc->AddFlag(
"T",
"TaxonomyLookup");
238arg_desc->AddFlag(
"nocleanup",
239 "Do not perform extended data cleanup prior to formatting");
240arg_desc->AddFlag(
"basic",
241 "Perform basic data cleanup prior to formatting");
242arg_desc->AddFlag(
"noobj",
243 "Do not create Ncbi_cleanup object");
246arg_desc->AddFlag(
"showprogress",
247 "List ID for which cleanup is occuring");
248arg_desc->AddFlag(
"debug",
"Save before.sqn");
251arg_desc->AddFlag(
"huge",
252 "Process file in huge files mode");
253arg_desc->AddFlag(
"disable-huge",
254 "Explicitly disable huge files mode");
255arg_desc->SetDependency(
"disable-huge",
260arg_desc->AddFlag(
"as-seqentry",
261 "Write Bioseq result wrapped in a Seq-entry");
277 for(
charc : opt) {
279 if(c !=
'r'&& c !=
'a'&& c !=
'p'&& c !=
'z'&& c !=
'd') {
284 if(! unrecognized.empty()) {
296 for(
charc : opt) {
298 if(c !=
'b'&& c !=
's'&& c !=
'u'&& c !=
'n') {
303 if(! unrecognized.empty()) {
315 for(
charc : opt) {
317 if(c !=
'w'&& c !=
'r'&& c !=
'b'&& c !=
'a'&&
318c !=
'i'&& c !=
'f'&& c !=
'd') {
323 if(! unrecognized.empty()) {
340 if(args[
"disable-huge"])
344 returncfg.
GetBool(
"asn_cleanup",
"UseHugeFiles",
true);
357 if(args[
"type"]) {
358cerr <<
"Warning: -type argument should not be used; ASN.1 object type is now autodetected."<< endl;
360 if(args[
"serial"]) {
361cerr <<
"Warning: -serial argument should not be used; Input file format is now autodetected."<< endl;
368 if(args[
"noobj"]) {
372 if(args[
"X"] && (
NStr::Find(args[
"X"].AsString(),
"i") !=
NPOS)) {
376 if(args[
"K"] &&
NStr::Find(args[
"K"].AsString(),
"u") !=
NPOS) {
382huge_process.OpenFile(filename);
384 TTypeInfoasn_type = huge_process.GetFile().m_content;
386 string msg=
"Unable to open input file "+ filename +
". Content not recognized.";
391 boolopened_output =
false;
393 if(! args[
"o"] && args[
"outdir"]) {
395opened_output =
true;
400 if(asn_type == CBioseq::GetTypeInfo()) {
405}
else if(args[
"batch"]) {
410huge_process.OpenReader();
413huge_process.OpenReader();
417unique_ptr<CObjectIStream> is = huge_process.GetFile().MakeObjStream(0);
431 boolproceed =
true;
432 autoreader = process.GetReader();
448 autoanytop = reader.ReadAny();
455 if(anytop->GetThisTypeInfo() == CSeq_entry::GetTypeInfo()) {
458topobject = topentry;
459}
else if(anytop->GetThisTypeInfo() == CSeq_submit::GetTypeInfo()) {
461 if(submit->IsEntrys()) {
462topentry = submit->SetData().SetEntrys().front();
463 if(submit->IsSetSub()) {
466submit->SetData().SetEntrys().clear();
468submit->SetData().SetEntrys().push_back(topentry);
471}
else if(anytop->GetThisTypeInfo() == CBioseq_set::GetTypeInfo()) {
474topentry->
SetSet(*bioset);
477 if(topentry->
IsSet())
481}
else if(anytop->GetThisTypeInfo() == CBioseq::GetTypeInfo()) {
484topentry->
SetSeq(*bioseq);
487 if(topentry->
IsSet())
511 if(reader.GetTopEntry()) {
512topentry->
Assign(*reader.GetTopEntry());
519 if(reader.GetSubmitBlock()) {
521submit->
SetSub().Assign(*reader.GetSubmitBlock());
522submit->
SetData().SetEntrys().clear();
523submit->
SetData().SetEntrys().push_back(topentry);
530topobject = topentry;
534 boolproceed = process.ForEachEntry(
537HandleSeqEntry(seh.GetEditHandle());
538writer.PushNextEntry(seh.GetCompleteSeq_entry());
551 returnprocess.ForEachBlob([
this](edit::CHugeFileProcess& p_process) ->
bool{
552 auto& reader = p_process.GetReader();
553 boolmulti_seq = reader.IsMultiSequence();
554 if(multi_seq && !reader.HasLoneProteins()) {
555if (reader.HasNestedGenbankSets()) {
556m_state.m_changes.SetChanged(CCleanupChange::eCollapseSet);
565 m_Out->ResetLocalHooks();
567 if(topobject->GetThisTypeInfo() == CBioseq::GetTypeInfo()) {
570topentry.
SetSeq(*bioseq);
572}
else if(topobject->GetThisTypeInfo() == CBioseq_set::GetTypeInfo()) {
575topentry.
SetSet(*bioset);
578*
m_Out<< *topobject;
581*
m_Out<< *topobject;
593 string mask=
"*"+ suffix;
594 size_tnum_files = 0;
604 if(num_files == 0) {
627 if(args[
"batch"] && args[
"bigfile"]) {
628 NCBI_THROW(
CArgException, eInvalidArg,
"\"batch\" and \"bigfile\" arguments are incompatible. Only one of them may be used.");
630 if(args[
"as-seqentry"]) {
635 if(
NStr::Find(args[
"K"].AsString(),
"b") != string::npos) {
638 if(
NStr::Find(args[
"K"].AsString(),
"s") != string::npos) {
642}
else if(args[
"X"]) {
644 if(
NStr::Find(args[
"X"].AsString(),
"w") != string::npos) {
648}
else if(args[
"F"]) {
651 if(args[
"basic"]) {
653}
else if(! args[
"nocleanup"]) {
666 m_tax_updater.reset(
newedit::CTaxonomyUpdater(
nullptr));
669 boolopened_output =
false;
673 stringfname = args[
"i"].AsString();
674 if(args[
"indir"]) {
678 ERR_POST(
"Input and output files should be different");
683args[
"outdir"] ? args[
"outdir"].AsString() :
kEmptyStr,
685opened_output =
true;
686}
else if(! args[
"outdir"] || args[
"id"]) {
688opened_output =
true;
692 stringseqID = args[
"id"].AsString();
694}
else if(args[
"i"]) {
695 stringfname = args[
"i"].AsString();
696 if(args[
"indir"]) {
700}
else if(args[
"outdir"]) {
703cerr <<
"Error: stdin is no longer supported; please use -i"<< endl;
716 #ifdef THIS_IS_TRUNK_BUILD 733 ERR_FATAL(
"The ID "<< seq_id <<
" is not a valid seq ID.");
737 ERR_FATAL(
"Sequence for "<< seq_id <<
" cannot be retrieved.");
754 boolany_changes =
false;
755 if(
NStr::Find(opt,
"r") != string::npos) {
758 if(
NStr::Find(opt,
"a") != string::npos) {
761 if(
NStr::Find(opt,
"p") != string::npos) {
764 if(
NStr::Find(opt,
"z") != string::npos) {
767 if(
NStr::Find(opt,
"d") != string::npos) {
775 boolany_change =
false;
777 if(deleted_feats.
empty()) {
781 for(
auto df: deleted_feats) {
786 for(
autoorph : orphans) {
797 boolany_changes =
false;
798 if(
NStr::Find(opt,
"w") != string::npos) {
801 if(
NStr::Find(opt,
"r") != string::npos) {
803 if(change_defline) {
808 if(
NStr::Find(opt,
"b") != string::npos) {
811 if(
NStr::Find(opt,
"a") != string::npos) {
819 if(
NStr::Find(opt,
"f") != string::npos) {
824 if(
NStr::Find(opt,
"d") != string::npos) {
847cout << e.
what() << endl;
850cout << e.
what() << endl;
869 boolany_changes =
false;
876 boolfeat_change =
false;
889new_mrna->
Assign(*mrna);
898new_gene->
Assign(*gene);
932 autochanges =
cleanup.BasicCleanup(seh, options);
933any_changes |= (! changes.Empty());
934changes =
cleanup.ExtendedCleanup(seh, options);
935any_changes |= (! changes.Empty());
936any_changes |=
x_FixCDS(seh, 0,
"unnamed protein product");
948 boolany_changes =
false;
961 autochanges = *
cleanup.BasicCleanup(entry, options);
963any_changes = ! changes.
Empty();
972 autochanges = *
cleanup.ExtendedCleanup(entry, options);
974any_changes = ! changes.
Empty();
986 boolany_changes =
false;
988 autochanges = *
cleanup.BasicCleanup(block);
989any_changes =
x_ReportChanges(
"BasicCleanup of SubmitBlock", changes);
1004 if(args[
"showprogress"]) {
1008 if(args[
"debug"]) {
1016 boolany_changes =
false;
1019validator::CTaxValidationAndCleanup tval(
m_tax_updater->GetUpdateFunc());
1020any_changes |= tval.DoTaxonomyUpdate(entry,
true);
1023 if(args[
"K"] &&
NStr::Find(args[
"K"].AsString(),
"u") != string::npos) {
1029 if(args[
"noobj"]) {
1058 if(! entryHandle) {
1063 if(entryHandle.GetCompleteSeq_entry().GetPointer() != se.
GetPointer()) {
1064se->
Assign(*entryHandle.GetCompleteSeq_entry());
1078 if(args[
"outformat"]) {
1079 if(args[
"outformat"].AsString() ==
"binary") {
1081}
else if(args[
"outformat"].AsString() ==
"XML") {
1083}
else if(args[
"outformat"].AsString() ==
"JSON") {
1091 stringbase = filename;
1092 if(remove_orig_dir) {
1095 if(pos != string::npos) {
1096base = base.substr(pos + 1);
1116 boolany_changes =
false;
1118 if(changes_str.empty()) {
1122 for(
autoit : changes_str) {
1125any_changes =
true;
1142list<string> split_args;
1143vector<const char*> new_argv;
1145 if(argc == 2 && argv && argv[1] && strchr(argv[1],
' ')) {
1148argc = 1 +
int(split_args.size());
1149new_argv.reserve(argc);
1150new_argv.push_back(argv[0]);
1151 for(
auto& s : split_args) {
1152new_argv.push_back(s.c_str());
1154std::cerr << s.c_str() <<
" ";
1159argv = new_argv.data();
1164 for(
int i= 1;
i< argc; ++
i) {
1169string_view
a{ argv[
i] };
1170 if(
a==
"-r"sv) {
1171 if(((
i+ 1) < argc) && argv[
i+ 1]) {
1172string_view param{ argv[
i+ 1] };
1173 if(! param.empty() && param[0] !=
'-') {
1174argv[
i] =
"-outdir";
1176cerr <<
"Warning: deprecated use of -r argument. Please use " 1177 "-outdir instead.\n";
1180}
else if(
a==
"-p"sv) {
1181argv[
i] =
"-indir";
1182cerr <<
"Warning: argument -p is deprecated. Please use -indir " 1184}
else if(
a==
"-R"sv) {
1186cerr <<
"Warning: argument -R is deprecated. Please use -r instead.\n";
1187}
else if(
a==
"-gbload"sv) {
1188argv[
i] =
"-genbank";
1189cerr <<
"Warning: argument -gbload is deprecated. Please use -genbank "static bool s_IsHugeMode(const CArgs &args, const CNcbiRegistry &cfg)
static const CDataLoadersUtil::TLoaders default_loaders
#define asn_cleanup_app_main
ncbi::TMaskedQueryRegions mask
static bool RegenerateDefLines(CSeq_entry_Handle se)
void x_ProcessOneFile(const string &filename)
bool HandleSeqID(const string &seqID)
bool HandleSubmitBlock(CSubmit_block &block)
void x_FeatureOptionsValid(const string &opt)
unique_ptr< edit::CTaxonomyUpdater > m_tax_updater
const Uint4 kGFF3CDSFixOptions
void x_ProcessOneDirectory(const string &dirname, const string &suffix)
bool HandleSeqEntry(CRef< CSeq_entry > &se)
unique_ptr< CObjectOStream > m_Out
bool x_ProcessHugeFile(edit::CHugeFileProcess &process)
bool x_ProcessFeatureOptions(const string &opt, CSeq_entry_Handle seh)
bool x_RemoveDuplicateFeatures(CSeq_entry_Handle seh)
void x_ProcessBatch(unique_ptr< CObjectIStream > &is)
int Run() override
Run the application.
bool x_ReportChanges(const string_view prefix, CCleanupChangeCore changes)
void x_OpenOStream(const string &filename, const string &dir=kEmptyStr, bool remove_orig_dir=true)
bool x_ProcessXOptions(const string &opt, CSeq_entry_Handle seh, Uint4 options)
void x_KOptionsValid(const string &opt)
bool x_BasicAndExtended(CSeq_entry_Handle entry, const string &label, Uint4 options=0)
bool x_FixCDS(CSeq_entry_Handle seh, Uint4 options, const string &missing_prot_name)
bool x_ProcessHugeFileBlob(edit::CHugeFileProcess &process)
void x_XOptionsValid(const string &opt)
void Init() override
Initialize the application.
bool x_BatchExtendCDS(CSeq_feat &, CBioseq_Handle)
CRef< CSerialObject > x_ProcessTraditionally(edit::CHugeAsnReader &reader)
bool x_GFF3Batch(CSeq_entry_Handle seh)
CRef< CObjectManager > m_Objmgr
All the changes made during cleanup.
vector< string_view > GetDescriptions() const
static bool ConvertDeltaSeqToRaw(CSeq_entry_Handle seh, CSeq_inst::EMol filter=CSeq_inst::eMol_not_set)
static bool RenormalizeNucProtSets(CSeq_entry_Handle seh)
Convert nuc-prot sets with just one sequence to just the sequence can't be done during the explore ph...
static void SetProteinName(CProt_ref &prot, const string &protein_name, bool append)
static bool FixECNumbers(CSeq_entry_Handle entry)
Fix EC numbers.
static size_t MakeSmallGenomeSet(CSeq_entry_Handle entry)
static bool ClearInternalPartials(CSeq_loc &loc, bool is_first=true, bool is_last=true)
Clear internal partials.
static bool WGSCleanup(CSeq_entry_Handle entry, bool instantiate_missing_proteins=true, Uint4 options=0, bool run_extended_cleanup=true, bool also_fix_location=true)
Performs WGS specific cleanup.
static bool ExtendStopPosition(CSeq_feat &f, const CSeq_feat *cdregion, size_t extension=0)
@ eClean_KeepSingleSeqSet
@ eClean_NoNcbiUserObjects
static bool ExtendToStopCodon(CSeq_feat &f, CBioseq_Handle bsh, size_t limit)
Extends a feature up to limit nt to a stop codon, or to the end of the sequence if limit == 0 (partia...
static const string & GetProteinName(const CProt_ref &prot)
static bool SetFrameFromLoc(CCdregion &cdregion, const CSeq_loc &loc, CScope &scope)
Chooses best frame based on location 1.
static bool NormalizeDescriptorOrder(CSeq_descr &descr)
Normalize Descriptor Order on a specific Seq-entry.
static bool LocationMayBeExtendedToMatch(const CSeq_loc &orig, const CSeq_loc &improved)
Checks whether it is possible to extend the original location up to improved one.
static bool RemoveNcbiCleanupObject(CSeq_descr &descr)
Removes NcbiCleanup User Objects in the Seq-descr.
static bool SetGeneticCodes(CBioseq_Handle bsh)
Sets genetic codes for coding regions on Bioseq-Handle.
static bool RemoveUnnecessaryGeneXrefs(CSeq_feat &f, CScope &scope)
Removes unnecessary Gene-xrefs.
static bool MakeIRDFeatsFromSourceXrefs(CSeq_entry_Handle entry)
From SQD-4329 For each sequence with a source that has an IRD db_xref, create a misc_feature across t...
static void AutodefId(CSeq_entry_Handle seh)
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.
CGBReleaseFile is a utility class to ease the processing of Genbank release files one Seq-entry at a ...
void StartWriter(CConstRef< CSerialObject > topobject)
SeqMap related exceptions.
SeqVector related exceptions.
void GetLabel(string *label, ELabelType type) const
CSeq_feat_EditHandle â.
namespace ncbi::objects::
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
set< CBioseq_Handle > ListOrphanProteins(CSeq_entry_Handle seh, bool force_refseq=false)
set< CSeq_feat_Handle > GetDuplicateFeaturesForRemoval(CSeq_entry_Handle seh)
static void cleanup(void)
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.
void SetVersion(const CVersionInfo &version)
Set the version number for the program.
@ fHidden
Hide it in Usage.
@ 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)
@ eDirectory
Name of file directory.
#define ERR_FATAL(message)
Posting fatal error and abort.
#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.
const string & GetMsg(void) const
Get message string.
virtual const char * what(void) const noexcept
Standard report (includes full backlog).
TEntries GetEntries(const string &mask=kEmptyStr, TGetEntriesFlags flags=0) const
Get directory entries based on the specified "mask".
static string CreateAbsolutePath(const string &path, ERelativeToWhat rtw=eRelativeToCwd)
Get an absolute path from some, possibly relative, path.
static string MakePath(const string &dir=kEmptyStr, const string &base=kEmptyStr, const string &ext=kEmptyStr)
Assemble a path from basic components.
static char GetPathSeparator(void)
Get path separator symbol specific for the current platform.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
ESerialDataFormat
Data file format.
@ eSerial_AsnText
ASN.1 text.
@ eSerial_AsnBinary
ASN.1 binary.
static CObjectOStream * Open(ESerialDataFormat format, CNcbiOstream &outStream, bool deleteOutStream)
Create serial object writer and attach it to an output stream.
bool RetranslateCDS(const CSeq_feat &cds, CScope &scope)
RetranslateCDS A function to replace the protein Bioseq pointed to by cds.product with the current tr...
bool IsPseudo(const CSeq_feat &feat, CScope &scope)
Determines whether given feature is pseudo, using gene associated with feature if necessary Checks to...
CConstRef< CSeq_feat > GetGeneForFeature(const CSeq_feat &feat, CScope &scope)
Finds gene for feature, but obeys SeqFeatXref directives.
CConstRef< CSeq_feat > GetmRNAforCDS(const CSeq_feat &cds, CScope &scope)
GetmRNAforCDS A function to find a CSeq_feat representing the appropriate mRNA for a given CDS.
static void Translate(const string &seq, string &prot, const CGenetic_code *code, bool include_stop=true, bool remove_trailing_X=false, bool *alt_start=NULL, bool is_5prime_complete=true, bool is_3prime_complete=true)
Translate a string using a specified genetic code.
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.
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
void RemoveTopLevelSeqEntry(const CTSE_Handle &entry)
Revoke TSE previously added using AddTopLevelSeqEntry() or AddBioseq().
CSeq_entry_Handle GetSeq_entry_Handle(void) const
Get parent Seq-entry handle.
void Remove(void) const
Remove the feature from Seq-annot.
void Remove(ERemoveMode mode=eRemoveSeq_entry) const
CConstRef< CSeq_entry > GetCompleteSeq_entry(void) const
Complete and get const reference to the seq-entry.
CScope & GetScope(void) const
Get scope this handle belongs to.
void Replace(const CSeq_feat &new_feat) const
Replace the feature with new Seq-feat object.
TObjectType * GetPointer(void) const THROWS_NONE
Get pointer,.
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
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.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
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 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.
@ fSplit_CanEscape
Allow \... escaping.
@ fSplit_MergeDelimiters
Merge adjacent delimiters.
@ eReverseSearch
Search in a backward direction.
@ eCase
Case sensitive compare.
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...
static const char label[]
bool IsCdregion(void) const
Check if variant Cdregion is selected.
const TLocation & GetLocation(void) const
Get the Location member data.
const TData & GetData(void) const
Get the Data member data.
void SetData(TData &value)
Assign a value to Data data member.
TSet & SetSet(void)
Select the variant.
TClass GetClass(void) const
Get the Class member data.
const TSet & GetSet(void) const
Get the variant data.
bool IsSet(void) const
Check if variant Set is selected.
void SetClass(TClass value)
Assign a value to Class data member.
virtual void Reset(void)
Reset the whole object.
TSeq & SetSeq(void)
Select the variant.
TSeq_set & SetSeq_set(void)
Assign a value to Seq_set data member.
@ eClass_genbank
converted genbank
virtual void Reset(void)
Reset the whole object.
@ eMol_na
just a nucleic acid
void SetSub(TSub &value)
Assign a value to Sub data member.
void SetData(TData &value)
Assign a value to Data data member.
unsigned int
A callback function used to compare two keys in a database.
where boath are integers</td > n< td ></td > n</tr > n< tr > n< td > tse</td > n< td > optional</td > n< td > String</td > n< td class=\"description\"> TSE option controls what blob is orig
#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_)
double df(double x_, const double &y_)
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
CCleanupChangeCore m_changes
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