86 #define THIS_FILE "xm_ascii.cpp"
99 if (condiv && ibp->
segnum != 0) {
117 }
else if (condiv && ibp->
is_contig ==
false && ibp->
origin ==
false) {
132 bool allow_crossdb_featloc;
140 for (q = p,
r = p; *q !=
'\0'; q++)
141 if (*q !=
'\n' && *q !=
'\t' && *q !=
' ')
145 for (q = p; *q !=
'\0'; q++)
146 if ((q[0] ==
',' && q[1] ==
',') || (q[0] ==
'(' && q[1] ==
',') ||
147 (q[0] ==
',' && q[1] ==
')'))
199 for (xip = ibp->
xip; xip; xip = xip->
next) {
250 bool pat_ref =
false;
251 bool est_kwd =
false;
252 bool sts_kwd =
false;
253 bool gss_kwd =
false;
254 bool htc_kwd =
false;
255 bool fli_kwd =
false;
256 bool wgs_kwd =
false;
257 bool tpa_kwd =
false;
258 bool tsa_kwd =
false;
259 bool tls_kwd =
false;
260 bool env_kwd =
false;
261 bool mga_kwd =
false;
277 if (p && p >
str && p[1] ==
'\0' && *(p - 1) ==
'.')
285 gbb->SetKeywords().swap(ibp->
keywords);
306 for (
const string&
key : gbb->GetKeywords()) {
307 fta_keywords_check(
key.c_str(), &est_kwd, &sts_kwd, &gss_kwd, &htc_kwd, &fli_kwd, &wgs_kwd, &tpa_kwd, &env_kwd, &mga_kwd, &tsa_kwd, &tls_kwd);
320 string div_str(bptr, bptr + 3);
321 gbb->SetDiv(div_str);
328 const char* p_div = gbb->GetDiv().c_str();
349 if (!
HasHtg(gbb->GetKeywords())) {
384 if (ibp->
is_mga ==
false) {
404 if (ibp->
is_tsa ==
false) {
414 if (ibp->
is_tls ==
false) {
424 if (
i == 2 && ibp->
htg > 0 && env_kwd)
425 ErrPostStr(
SEV_WARNING,
ERR_KEYWORD_HTGPlusENV,
"This HTG record also has the ENV keyword, which is an unusual combination. Confirmation that isolation and cloning steps actually occured might be appropriate.");
426 else if (
i != 2 || env_kwd ==
false ||
427 (est_kwd ==
false && gss_kwd ==
false && wgs_kwd ==
false)) {
428 ErrPostStr(
SEV_REJECT,
ERR_KEYWORD_ConflictingKeywords,
"This record contains more than one of the special keywords used to indicate that a sequence is an HTG, EST, GSS, STS, HTC, WGS, ENV, FLI_CDNA, TPA, CAGE, TSA or TLS sequence.");
436 wgs_kwd ==
false && tpa_kwd ==
false && env_kwd ==
false) {
461 string p_div = gbb->GetDiv();
463 check_div(ibp->
is_pat, pat_ref, est_kwd, sts_kwd, gss_kwd, if_cds, p_div, &tech, ibp->
bases, pp->
source, drop);
479 }
else if (gbb->GetDiv() ==
"CON") {
491 gbb->GetDiv() !=
"EST") {
501 bool is_htc_div = gbb->GetDiv() ==
"HTC",
502 has_htc =
HasHtc(gbb->GetKeywords());
504 if (is_htc_div && ! has_htc) {
509 if (! is_htc_div && has_htc) {
518 if (*
str ==
'm' || *
str ==
'r')
539 if (! gbb->GetDiv().empty()) {
540 if (gbb->GetDiv() ==
"EST") {
544 }
else if (gbb->GetDiv() ==
"STS") {
548 }
else if (gbb->GetDiv() ==
"GSS") {
552 }
else if (gbb->GetDiv() ==
"HTC") {
556 }
else if (gbb->GetDiv() ==
"SYN" && bio_src && bio_src->
IsSetOrigin() &&
585 for (
const auto& subtype : bio_src->
GetSubtype()) {
595 if (gbb->IsSetDiv() &&
643 GetFlatBiomol(mol_info->SetBiomol(), mol_info->GetTech(), molstr, pp, *entry, org_ref);
645 mol_info->ResetBiomol();
656 char* organism =
nullptr;
657 char* taxonomy =
nullptr;
662 for (; xip; xip = xip->
next) {
680 while (*p !=
' ' && *p !=
'\0')
691 for (q--; *q ==
' ' || *q ==
'\t'; q--)
694 if (*q !=
' ' && *q !=
'\t')
708 taxname = taxname.substr(0, taxname.size() - 1);
717 bioseq.
SetDescr().Set().push_back(descr);
726 for (p =
offset; *p ==
'\n' || *p ==
' ';)
738 for (p++; *p ==
' ';)
747 for (p += 2, q = p; *q ==
' ';)
753 for (p =
offset; *p ==
' ';)
757 for (p =
offset; *p !=
'\0';)
762 if (*p ==
' ' || *p ==
'\t' || *p ==
';' || *p ==
',' ||
763 *p ==
'.' || *p ==
'~') {
806 for (
auto& descr : bioseq.
SetDescr().Set()) {
807 if (descr->IsSource()) {
808 bio_src = &(descr->SetSource());
810 org_ref = &bio_src->
SetOrg();
825 for (p =
str; *p ==
' ';)
831 if (! p || p[1] !=
'\0') {
846 bioseq.
SetDescr().Set().push_back(descr);
869 (title.empty() || !
StringEquN(title.c_str(),
"TPA:", 4))) {
876 (title.empty() || !
StringEquN(title.c_str(),
"TSA:", 4))) {
883 (title.empty() || !
StringEquN(title.c_str(),
"TLS:", 4))) {
894 for (; dbp; dbp = dbpnext) {
901 bioseq.
SetDescr().Set().push_back(descr);
908 for (; dbp; dbp = dbpnext) {
915 bioseq.
SetDescr().Set().push_back(descr);
933 if (! dr_ena.empty() || ! dr_biosample.empty())
936 if (mol_info->IsSetBiomol() || mol_info->IsSetTech()) {
939 bioseq.
SetDescr().Set().push_back(descr);
947 }
else if (gbb.
Empty()) {
958 if (embl->GetExtra_acc().empty())
959 embl->ResetExtra_acc();
968 if (! gbdiv.empty()) {
976 bioseq.
SetDescr().Set().push_back(descr);
1004 if (pp->
taxserver == 1 && gbb->IsSetDiv())
1009 bioseq.
SetDescr().Set().push_back(descr);
1027 for (
auto& user_obj : user_objs) {
1030 bioseq.
SetDescr().Set().push_back(descr);
1035 for (q =
offset, p = q; *p !=
'\0';) {
1036 if (*p ==
';' && (p[1] ==
' ' || p[1] ==
'~'))
1038 if (*p ==
'~' || *p ==
' ') {
1040 for (p++; *p ==
' ' || *p ==
'~';)
1051 bioseq.
SetDescr().Set().push_back(descr);
1090 bioseq.
SetDescr().Set().push_back(descr);
1101 bioseq.
SetDescr().Set().push_back(descr);
1116 if (! ibp || ! entry)
1135 Int4 total_long = 0;
1136 Int4 total_dropped = 0;
1145 bool seq_long =
false;
1157 for (imax = pp->
indx,
i = 0;
i < imax;
i++) {
1206 if (!
XMLGetInst(pp, dbp, ibp->
is_prot ? protconv.get() : dnaconv.get(), *bioseq)) {
1251 else if (ibp->
htg == 4 || ibp->
htg == 1 || ibp->
htg == 2 ||
1254 }
else if (ibp->
gaps)
1301 id->SetPatent(*ibp->
psip);
1302 bioseq->
SetId().push_back(
id);
1314 }
else if (ibp->
is_wgs) {
1350 for (j = segindx; j <=
i; j++) {
1362 for (j = segindx; j <=
i; j++) {
1369 seq_entries.clear();
1380 gene_refs.
valid =
false;
1385 if (seq_entries.empty()) {
1388 for (j = segindx; j <=
i; j++) {
1424 if (pp->
limit != 0) {
1426 for (j = segindx; j <=
i; j++) {
1432 if (tibp->
htg == 1 || tibp->
htg == 2 || tibp->
htg == 4) {
1440 if (ibp->
htg == 1 || ibp->
htg == 2 || ibp->
htg == 4) {
1453 if (pp->
qamode && ! seq_entries.empty())
1484 for (j = segindx; j <=
i; j++)
1490 total_long += (
i - segindx + 1);
1497 total += (
i - segindx + 1);
1503 for (j = segindx; j <=
i; j++) {
1512 seq_entries.clear();
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.
bool no_reference(const CBioseq &bioseq)
void SeqToDelta(CBioseq &bioseq, Int2 tech)
bool fta_check_htg_kwds(TKeywordList &kwds, IndexblkPtr ibp, CMolInfo &mol_info)
void fta_set_molinfo_completeness(CBioseq &bioseq, const Indexblk *ibp)
void fta_add_hist(ParserPtr pp, CBioseq &bioseq, CGB_block::TExtra_accessions &extra_accs, Parser::ESource source, CSeq_id::E_Choice acctype, bool pricon, const char *acc)
void AssemblyGapsToDelta(CBioseq &bioseq, GapFeatsPtr gfp, bool *drop)
bool fta_parse_tpa_tsa_block(CBioseq &bioseq, char *offset, char *acnum, Int2 vernum, size_t len, Int2 col_data, bool tpa)
string GetQSFromFile(FILE *fd, const Indexblk *ibp)
void fta_create_far_fetch_policy_user_object(CBioseq &bsp, Int4 num)
void fta_tsa_tls_comment_dblink_check(const CBioseq &bioseq, bool is_tsa)
void fta_remove_cleanup_user_object(CSeq_entry &seq_entry)
bool fta_dblink_has_sra(const CRef< CUser_object > &uop)
void GapsToDelta(CBioseq &bioseq, GapFeatsPtr gfp, bool *drop)
void err_install(const Indexblk *ibp, bool accver)
bool no_date(Parser::EFormat format, const TSeqdescList &descrs)
void fta_parse_structured_comment(char *str, bool &bad, TUserObjVector &objs)
Int4 fta_fix_seq_loc_id(TSeqLocList &locs, ParserPtr pp, const char *location, const char *name, bool iscon)
void StripSerialNumbers(TEntryList &seq_entries)
void fta_fix_orgref_div(const CBioseq::TAnnot &annots, COrg_ref *org_ref, CGB_block &gbb)
void fta_sort_seqfeat_cit(TEntryList &seq_entries)
void PackEntries(TEntryList &seq_entries)
void fta_set_strandedness(TEntryList &seq_entries)
void CheckHTGDivision(const char *div, CMolInfo::TTech tech)
unique_ptr< unsigned char[]> GetDNAConv(void)
bool XMLCheckCDS(const char *entry, XmlIndexPtr xip)
unique_ptr< unsigned char[]> GetProteinConv(void)
void EntryCheckDivCode(TEntryList &seq_entries, ParserPtr pp)
void GetSeqExt(ParserPtr pp, CSeq_loc &seq_loc)
bool GetSeqData(ParserPtr pp, const DataBlk &entry, CBioseq &bioseq, Int4 nodetype, unsigned char *seqconv, Uint1 seq_data_type)
bool fta_EntryCheckGBBlock(TEntryList &seq_entries)
void fta_sort_descr(TEntryList &seq_entries)
void XMLDefVsHTGKeywords(CMolInfo::TTech tech, const char *entry, XmlIndexPtr xip, bool cancelled)
void BuildBioSegHeader(ParserPtr pp, TEntryList &entries, const CSeq_loc &seqloc)
void GetExtraAccession(IndexblkPtr ibp, bool allow_uwsec, Parser::ESource source, TAccessionList &accessions)
bool check_div(bool pat_acc, bool pat_ref, bool est_kwd, bool sts_kwd, bool gss_kwd, bool if_cds, string &div, CMolInfo::TTech *tech, size_t bases, Parser::ESource source, bool &drop)
CRef< CBioseq > CreateEntryBioseq(ParserPtr pp)
list< string > TStringList
void ProcessCitations(TEntryList &seq_entries)
CDate::ECompare Compare(const CDate_std &date) const
Indicate how *this relates to another date.
void SetToTime(const CTime &time, CDate::EPrecision prec=CDate::ePrecision_second)
@ eCompare_after
*this comes second.
static bool IsNa(EMol mol)
void fta_build_ena_user_object(CSeq_descr::Tdata &descrs, TStringList &dr_ena, TStringList &dr_biosample, CRef< CUser_object > &dbuop)
CRef< CEMBL_block > XMLGetEMBLBlock(ParserPtr pp, const char *entry, CMolInfo &mol_info, string &gbdiv, CBioSource *bio_src, TStringList &dr_ena, TStringList &dr_biosample)
void FinalCleanup(TEntryList &seq_entries)
#define ERR_SEQUENCE_BadData
#define ERR_TPA_TpaSpansMissing
#define ERR_ENTRY_LongSequence
#define ERR_FORMAT_MissingContigFeature
#define ERR_KEYWORD_ShouldNotBeTPA
#define ERR_DIVISION_BadTSADivcode
#define ERR_FORMAT_MissingSequenceData
#define ERR_DIVISION_InvalidHTCKeyword
#define ERR_KEYWORD_IllegalForCON
#define ERR_DIVISION_MissingHTGKeywords
#define ERR_QSCORE_FailedToParse
#define ERR_ENTRY_LongHTGSSequence
#define ERR_KEYWORD_MissingTSA
#define ERR_DIVISION_BadTPADivcode
#define ERR_REFERENCE_No_references
#define ERR_KEYWORD_ShouldNotBeTLS
#define ERR_ENTRY_GBBlock_not_Empty
#define ERR_KEYWORD_HTGPlusENV
#define ERR_DEFINITION_MissingTPA
#define ERR_ENTRY_Skipped
#define ERR_DEFINITION_MissingTLS
#define ERR_KEYWORD_ESTSubstring
#define ERR_KEYWORD_ConflictingKeywords
#define ERR_DIVISION_ConDivLacksContig
#define ERR_LOCATION_ContigHasNull
#define ERR_SEGMENT_OnlyOneMember
#define ERR_KEYWORD_ENV_NoMatchingQualifier
#define ERR_KEYWORD_ShouldNotBeTSA
#define ERR_KEYWORD_STSSubstring
#define ERR_DIVISION_UnknownDivCode
#define ERR_KEYWORD_MissingTLS
#define ERR_DEFINITION_ShouldNotBeTSA
#define ERR_SEGMENT_Rejected
#define ERR_DIVISION_MissingHTCKeyword
#define ERR_DIVISION_MappedtoCON
#define ERR_DIVISION_MappedtoEST
#define ERR_FORMAT_ContigWithSequenceData
#define ERR_KEYWORD_NoGeneExpressionKeywords
#define ERR_DEFINITION_MissingTSA
#define ERR_DEFINITION_ShouldNotBeTPA
#define ERR_KEYWORD_MissingTPA
#define ERR_DIVISION_ConDivInSegset
#define ERR_ENTRY_ParsingComplete
#define ERR_DIVISION_Mismatch
#define ERR_ORGANISM_NoOrganism
#define ERR_DATE_IllegalDate
#define ERR_DIVISION_HTCWrongMolType
#define ERR_KEYWORD_ShouldNotBeCAGE
#define ERR_DEFINITION_ShouldNotBeTLS
#define ERR_TSA_UnexpectedPrimaryAccession
list< CRef< objects::CSeq_entry > > TEntryList
bool QscoreToSeqAnnot(const string &qscore, CBioseq &bioseq, char *acc, Int2 ver, bool check_minmax, bool allow_na)
unique_ptr< string > XMLGetTagValue(const char *entry, const XmlIndex *xip)
#define INSDSEQ_DEFINITION
DataBlkPtr XMLBuildRefDataBlk(char *entry, const XmlIndex *xip, int type)
#define INSDSEQ_STRANDEDNESS
void XMLGetKeywords(const char *entry, const XmlIndex *xip, TKeywordList &keywords)
char * XMLLoadEntry(ParserPtr pp, bool err)
#define INSDSEQ_CREATE_DATE
#define INSDSEQ_UPDATE_DATE
unique_ptr< string > XMLConcatSubTags(const char *entry, const XmlIndex *xip, Int4 tag, Char sep)
unique_ptr< string > XMLFindTagValue(const char *entry, const XmlIndex *xip, Int4 tag)
std::vector< CRef< objects::CUser_object > > TUserObjVector
bool StringEquNI(const char *s1, const char *s2, size_t n)
bool StringEquN(const char *s1, const char *s2, size_t n)
bool StringEqu(const char *s1, const char *s2)
void StringCpy(char *d, const char *s)
size_t StringLen(const char *s)
void MemCpy(void *p, const void *q, size_t sz)
char * StringRChr(char *s, const char c)
void FtaDeletePrefix(int prefix)
void fta_find_pub_explore(ParserPtr pp, TEntryList &seq_entries)
static const char * str(char *buf, int n)
void CheckFeatSeqLoc(TEntryList &seq_entries)
void DealWithGenes(TEntryList &seq_entries, ParserPtr pp)
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.
void Reset(void)
Reset reference object.
bool NotEmpty(void) const THROWS_NONE
Check if CRef is not empty – pointing to an object and has a non-null value.
bool Empty(void) const THROWS_NONE
Check if CRef is empty – not pointing to any object, which means having a null value.
int16_t Int2
2-byte (16-bit) signed integer
int32_t Int4
4-byte (32-bit) signed integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static int CompareNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive compare of a substring with another string.
@ eCurrent
Use current time. See also CCurrentTime.
const TSubtype & GetSubtype(void) const
Get the Subtype member data.
TGenome GetGenome(void) const
Get the Genome member data.
TOrigin GetOrigin(void) const
Get the Origin member data.
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.
const TOrg & GetOrg(void) const
Get the Org member data.
bool IsSetOrigin(void) const
Check if a value has been assigned to Origin data member.
void SetOrg(TOrg &value)
Assign a value to Org data member.
@ eSubtype_environmental_sample
TStd & SetStd(void)
Select the variant.
const TDiv & GetDiv(void) const
Get the Div member data.
void SetCommon(const TCommon &value)
Assign a value to Common data member.
const TTaxname & GetTaxname(void) const
Get the Taxname member data.
bool IsSetDiv(void) const
GenBank division code Check if a value has been assigned to Div data member.
void SetTaxname(const TTaxname &value)
Assign a value to Taxname data member.
bool IsSetOrgname(void) const
Check if a value has been assigned to Orgname data member.
void SetOrgname(TOrgname &value)
Assign a value to Orgname data member.
const TOrgname & GetOrgname(void) const
Get the Orgname member data.
@ eSeq_code_type_iupacaa
IUPAC 1 letter amino acid code.
@ eSeq_code_type_iupacna
IUPAC 1 letter nuc acid code.
bool IsMix(void) const
Check if variant Mix is selected.
const TMix & GetMix(void) const
Get the variant data.
TRepr GetRepr(void) const
Get the Repr member data.
TId & SetId(void)
Assign a value to Id data member.
const TInst & GetInst(void) const
Get the Inst member data.
TTitle & SetTitle(void)
Select the variant.
TPub & SetPub(void)
Select the variant.
bool IsSetAnnot(void) const
Check if a value has been assigned to Annot data member.
TGenbank & SetGenbank(void)
Select the variant.
TAnnot & SetAnnot(void)
Assign a value to Annot data member.
const TId & GetId(void) const
Get the Id member data.
TTech GetTech(void) const
Get the Tech member data.
const Tdata & Get(void) const
Get the member data.
TComment & SetComment(void)
Select the variant.
void SetInst(TInst &value)
Assign a value to Inst data member.
void ResetTech(void)
Reset Tech data member.
TSource & SetSource(void)
Select the variant.
void SetTopology(TTopology value)
Assign a value to Topology data member.
ETopology
topology of molecule
void SetDescr(TDescr &value)
Assign a value to Descr data member.
bool IsSetTech(void) const
Check if a value has been assigned to Tech data member.
TUser & SetUser(void)
Select the variant.
TEmbl & SetEmbl(void)
Select the variant.
void SetRepr(TRepr value)
Assign a value to Repr data member.
EStrand
strandedness in living organism
void SetStrand(TStrand value)
Assign a value to Strand data member.
void SetTech(TTech value)
Assign a value to Tech data member.
const TDescr & GetDescr(void) const
Get the Descr member data.
TMolinfo & SetMolinfo(void)
Select the variant.
TCreate_date & SetCreate_date(void)
Select the variant.
TUpdate_date & SetUpdate_date(void)
Select the variant.
@ eRepr_delta
sequence made by changes (delta) to others
@ eRepr_raw
continuous sequence
@ eTech_htgs_2
ordered High Throughput sequence contig
@ eTech_htc
high throughput cDNA
@ eTech_targeted
targeted locus sets/studies
@ eTech_sts
Sequence Tagged Site.
@ eTech_htgs_3
finished High Throughput sequence
@ eTech_htgs_1
unordered High Throughput sequence contig
@ eTech_tsa
transcriptome shotgun assembly
@ eTech_wgs
whole genome shotgun sequencing
@ eTech_survey
one-pass genomic sequence
@ eTech_htgs_0
single genomic reads for coordination
@ eTech_fli_cdna
full length insert cDNA
@ eTech_est
Expressed Sequence Tag.
CRef< CDate_std > GetUpdateDate(const char *ptr, Parser::ESource source)
Int2 XMLCheckSTRAND(const char *str)
Int4 IsNewAccessFormat(const Char *acnum)
Int2 CheckDIV(const char *str)
Int2 XMLCheckTPG(const char *str)
void GetFlatBiomol(CMolInfo::TBiomol &biomol, CMolInfo::TTech tech, char *molstr, ParserPtr pp, const DataBlk &entry, const COrg_ref *org_ref)
void LoadFeat(ParserPtr pp, const DataBlk &entry, CBioseq &bioseq)
const struct ncbi::grid::netcache::search::fields::KEY key
const CharType(& source)[N]
std::list< SeqLoc > TSeqLocList
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
CRef< CPubdesc > DescrRefs(ParserPtr pp, DataBlkPtr dbp, Uint2 col_data)
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
CRef< objects::CSeq_entry > seq_entry
CRef< objects::CPatent_seq_id > psip
char *(* ff_get_qscore_pp)(const char *accession, Int2 v, Parser *pp)
vector< IndexblkPtr > entrylist
bool allow_crossdb_featloc
char *(* ff_get_qscore)(const char *accession, Int2 v)
bool GetGenomeInfo(CBioSource &bsp, string_view bptr)
void MaybeCutGbblockSource(TEntryList &seq_entries)
bool HasHtg(const TKeywordList &keywords)
bool HasHtc(const TKeywordList &keywords)
bool fta_tls_keywords_check(const TKeywordList &kwds, Parser::ESource source)
void RemoveHtgPhase(TKeywordList &keywords)
void fta_remove_tsa_keywords(TKeywordList &kwds, Parser::ESource source)
void fta_remove_tpa_keywords(TKeywordList &kwds)
void fta_remove_keywords(CMolInfo::TTech tech, TKeywordList &kwds)
void fta_remove_tls_keywords(TKeywordList &kwds, Parser::ESource source)
void fta_keywords_check(const char *str, bool *estk, bool *stsk, bool *gssk, bool *htck, bool *flik, bool *wgsk, bool *tpak, bool *envk, bool *mgak, bool *tsak, bool *tlsk)
void fta_StringCpy(char *dst, const char *src)
bool IsCancelled(const TKeywordList &keywords)
bool fta_tsa_keywords_check(const TKeywordList &kwds, Parser::ESource source)
void fta_remove_env_keywords(TKeywordList &kwds)
bool fta_tpa_keywords_check(const TKeywordList &kwds)
bool fta_check_mga_keywords(CMolInfo &mol_info, const TKeywordList &kwds)
CRef< CSeq_loc > xgbparseint_ver(string_view raw_intervals, bool &keep_rawPt, int &numErrors, const TSeqIdList &seq_ids, bool accver)
bool XMLAscii(ParserPtr pp)
bool XMLGetInst(ParserPtr pp, DataBlkPtr dbp, unsigned char *dnaconv, CBioseq &bioseq)
static bool XMLGetInstContig(XmlIndexPtr xip, DataBlkPtr dbp, CBioseq &bioseq, ParserPtr pp)
static void XMLGetDescr(ParserPtr pp, DataBlkPtr entry, CBioseq &bioseq)
static CRef< CGB_block > XMLGetGBBlock(ParserPtr pp, const char *entry, CMolInfo &mol_info, CBioSource *bio_src)
static CRef< CMolInfo > XMLGetMolInfo(ParserPtr pp, DataBlkPtr entry, COrg_ref *org_ref)
static void XMLCheckContigEverywhere(IndexblkPtr ibp, Parser::ESource source)
static void XMLGetDivision(const char *entry, IndexblkPtr ibp)
static void XMLFakeBioSources(XmlIndexPtr xip, const char *entry, CBioseq &bioseq, Parser::ESource source)
static void XMLGetDescrComment(char *offset)
void XGappedSeqLocsToDeltaSeqs(const TSeqLocList &locs, TDeltaList &deltas)