84 #define THIS_FILE "ref.cpp"
93 "to the EMBL/GenBank/DDBJ databases",
94 "to the EMBL/DDBJ/GenBank databases",
95 "to the DDBJ/GenBank/EMBL databases",
96 "to the DDBJ/EMBL/GenBank databases",
97 "to the GenBank/DDBJ/EMBL databases",
98 "to the GenBank/EMBL/DDBJ databases",
104 "Publication Status: Online-Only",
105 "Publication Status : Online-Only",
106 "Publication_Status: Online-Only",
107 "Publication_Status : Online-Only",
108 "Publication-Status: Online-Only",
109 "Publication-Status : Online-Only",
110 "Publication Status: Available-Online",
111 "Publication Status : Available-Online",
112 "Publication_Status: Available-Online",
113 "Publication_Status : Available-Online",
114 "Publication-Status: Available-Online",
115 "Publication-Status : Available-Online",
116 "Publication Status: Available-Online prior to print",
117 "Publication Status : Available-Online prior to print",
118 "Publication_Status: Available-Online prior to print",
119 "Publication_Status : Available-Online prior to print",
120 "Publication-Status: Available-Online prior to print",
121 "Publication-Status : Available-Online prior to print",
128 string new_comment = comment;
131 for (
r = (
char*)new_comment.c_str();;) {
135 for (
r += 2, q =
r; *q ==
' ' || *q ==
';';)
141 comment = new_comment;
162 const char*
months[12] = {
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec" };
165 for (cal = 0; cal < 12; cal++) {
173 if (year < 1900 || year > 1994) {
209 while (*
str ==
'\"' || *
str ==
'\'')
214 while (
size > 0 && (newp[
size - 1] ==
'\"' || newp[
size - 1] ==
'\'')) {
248 for (p += 8; *p ==
' ';)
280 for (q = p; *q !=
' ' && *q !=
'\0';)
304 for (p += 7; *p ==
' ';)
338 while (*q ==
' ' || *q ==
'\t')
340 for (
r = q; *
r >=
'0' && *
r <=
'9';)
343 if (
r == q || *
r !=
'\0')
348 if (*p !=
' ' && *p !=
'\t' && *p !=
',' && *p !=
';' && *p !=
'.')
351 while (*p ==
' ' || *p ==
'\t' || *p ==
',' || *p ==
';' || *p ==
'.') {
356 if (*p !=
' ' && *p !=
'\t' && *p !=
',' && *p !=
';' && *p !=
'.')
426 for (s = bptr +
len; *s ==
' ';)
430 for (country = s, q = s;
isalpha((
int)*s) || *s ==
' '; s++)
445 for (
number = s, q = s;
isdigit((
int)*s) != 0 || *s ==
','; s++)
460 for (
type = s; *s !=
' ' && *s !=
'/' && *s !=
'\0';)
474 for (app = s, q = s; *s >=
'0' && *s <=
'9';)
476 if (*s !=
'\0' && *s !=
',' && *s !=
'.' && *s !=
' ' && *s !=
';' &&
482 }
else if (*s !=
'\0')
483 for (*s++ =
'\0'; *s ==
' ';)
491 if (std_date.
Empty()) {
507 cit_pat->SetCountry(country);
508 cit_pat->SetNumber(msg);
510 cit_pat->SetDoc_type(
type ?
type :
"");
511 cit_pat->SetDate_issue().SetStd(*std_date);
512 cit_pat->SetTitle(title.
Empty() ?
"" : title->GetName());
515 CAuth_list& pat_auth_list = cit_pat->SetAuthors();
516 pat_auth_list.
SetNames().SetStr().push_back(
"");
518 cit_pat->SetAuthors(*auth_list);
524 if (s < eptr && *s !=
'\0')
532 ibp->
psip->SetCit().SetCountry(country);
533 ibp->
psip->SetCit().SetId().SetNumber(msg);
534 ibp->
psip->SetSeqid(app ? atoi(app) : 0);
536 ibp->
psip->SetCit().SetDoc_type(
type);
554 if (! parts || *parts ==
'\0')
557 for (p = parts,
i = 0, j = 0; *p !=
'\0'; p++) {
563 if (j >
i ||
i - j > 1)
567 if (*p !=
'\0' ||
i < 2)
573 for (p = start + 1; *p ==
' ';)
578 for (q = end - 1; *q ==
' ' && q > p;)
607 if (! bptr || ! eptr)
615 for (p = parts; *p !=
'\0'; p++)
640 for (p = q; *p ==
' ';)
642 for (q = p; *q !=
'\0' && *q !=
' ';)
648 for (p = q; *p ==
' ';)
650 for (q = p; *q !=
'\0';)
653 for (q--; *q ==
' ';)
664 (issue_str[0] ==
'P' || issue_str[0] ==
'p') && (issue_str[1] ==
'T' || issue_str[1] ==
't') &&
665 issue_str[2] ==
'\0') {
672 for (p = parts; *p ==
' ';)
674 for (q = p; *q !=
'\0' && *q !=
' ';)
680 for (p = q; *p ==
' ';)
682 for (q = p; *q !=
'\0';)
685 for (q--; *q ==
' ';)
712 char* volume =
nullptr;
713 char* pages =
nullptr;
742 end_volume =
nullptr;
745 unique_ptr<char[]> pBuf(
new char[
len + 1]);
746 char*
buf = pBuf.get();
749 while (eptr >
buf && (*eptr ==
' ' || *eptr ==
'\t' || *eptr ==
'.'))
754 for (s = eptr - 1; s >
buf && *s !=
'(';)
766 if (
buf[0] ==
'G' &&
buf[1] ==
'3')
770 for (
i = 0; ss <= year; ss++) {
775 else if (*ss >=
'0' && *ss <=
'9' &&
i == 0)
779 for (s = end_pages; s >=
buf && *s != symbol;)
797 for (s = end_pages; s >=
buf && *s != symbol;)
803 if (*s == symbol && ss != year) {
807 for (pages = s + 1;
isspace(*pages) != 0;)
810 if (end_volume > ss) {
849 else if (
i == -1 && is_er > 0) {
857 if (!
get_parts(volume, end_volume, imp)) {
890 for (
char* aux = end_tit - 1; aux > tit && *aux !=
'.' && *aux !=
')' && !
isalnum(*aux); --aux)
894 journal.SetTitle().Set().push_back(journal_title);
900 if ((is_er & 01) == 01) {
924 cit_art->
SetTitle().Set().push_back(title);
949 for (s = bptr; *s !=
'\0' && *s !=
'(';)
956 if (s < eptr && *s !=
'\0' && auth_list.
NotEmpty())
959 cit_gen->SetCit(
string(bptr,
str + 1));
963 cit_gen->SetAuthors(*auth_list);
966 cit_gen->SetTitle(title);
992 bool IS_AUTH =
false;
1021 cit_book.
SetImp().SetPrepub(pre);
1027 for (s = tbptr + 4; *s ==
' ';)
1029 for (bptr = s; *s !=
';' && *s !=
'(' && *s !=
'\0';)
1037 }
else if (*s ==
';')
1040 while (*tit ==
' ' || *tit ==
';' || *tit ==
'\n')
1043 if (IS_AUTH && *bptr !=
'\0') {
1045 get_auth(bptr, ref_fmt, jour, book_auth_list);
1059 for (ss = tit; *ss !=
'\0';)
1061 for (s = ss; *s !=
':' && s != tit;)
1069 book_title->SetName(
"");
1073 cit_book.
SetImp().SetVolume(volume);
1079 for (pages = s; *s !=
'\0' && *s !=
',' && *s !=
';';)
1084 while (*pages ==
' ')
1096 string new_title = book_title->GetName();
1099 book_title->SetName(new_title);
1104 for (press = s; *s !=
'(' && *s !=
'\0';)
1122 cit_book.
SetImp().SetDate(*date);
1125 cit_book.
SetTitle().Set().push_back(book_title);
1128 cit_art->
SetTitle().Set().push_back(title);
1157 book.
SetImp().SetPrepub(pre);
1160 for (s = bptr; *s !=
'\0' && *s !=
'(';)
1166 book.
SetImp().SetDate(*date);
1182 book.
SetTitle().Set().push_back(title);
1187 empty_title->SetName(
"");
1188 book.
SetTitle().Set().push_back(empty_title);
1212 for (bptr += 5;
isspace(*bptr) != 0;)
1216 for (s = bptr; *s !=
'\0' && *s !=
'(';)
1227 cit_book->
SetImp().SetPrepub(pre);
1231 cit_book->
SetImp().SetDate(*date);
1234 for (s = bptr; *s !=
'\0' && *s !=
'.';)
1238 book_title->SetName(
string(bptr, s));
1239 cit_book->
SetTitle().Set().push_back(book_title);
1275 for (s = bptr; *s !=
'(' && *s !=
'\0';)
1288 isdigit((
int)*(s + 1)) == 0) {
1310 for (s += 8; *s !=
'\0' && *s !=
':';)
1313 if (*s !=
'\0' && *(s + 1) !=
'\0') {
1323 for (s += l_str; *s ==
' ' || *s ==
'.';)
1332 if (*s !=
'\0' && auth_list.
NotEmpty()) {
1373 for (s = bptr; *s !=
'(' && *s !=
'\0';)
1381 if (std_date.
Empty())
1397 const Char* s = title->GetName().c_str();
1398 size_t l_str =
StringLen(
"Published by");
1434 for (p++; *p ==
' ' || *p ==
'\t';)
1436 for (q = p; *p >=
'0' && *p <=
'9';)
1438 for (
r = p; *p ==
' ' || *p ==
'\t' || *p ==
')';)
1440 if (*p ==
'\n' || *p ==
'\0') {
1447 for (q--; *q ==
' ' || *q ==
'\t' || *q ==
'(';)
1457 cit_gen->SetCit(bptr);
1459 cit_gen->SetAuthors(*auth_list);
1460 cit_gen->SetTitle(title->GetName());
1463 cit_gen->SetDate().SetStd().SetYear(year);
1480 const Char* title_str = title.
Empty() ?
nullptr : title->GetName().c_str();
1489 while (*nearend ==
' ' || *nearend ==
'\t' || *nearend ==
'.')
1496 *(nearend + 1) =
'\0';
1502 if (pre == 0 && *end ==
'(' &&
isdigit(*(end + 1)) != 0) {
1503 for (nearend = end - 1; nearend > bptr && *nearend !=
' ';)
1507 *(nearend + 1) =
'\0';
1512 if (my_len >= 6 && *p ==
'(') {
1523 const Char* title_str = title.
Empty() ?
nullptr : title->GetName().c_str();
1530 if (article.
Empty())
1539 if (cit_let.
Empty()) {
1548 if (cit_sub.
Empty()) {
1554 }
else if (
StringEquN(
"Published in GSDB", p, 17)) {
1559 if (cit_sub.
Empty()) {
1575 if (cit_pat.
Empty()) {
1595 }
else if (
StringEquNI(
"Published Only in Database", p, 26)) {
1599 if (cit_gen.
Empty()) {
1605 }
else if (
StringEquNI(
"Online Publication", p, 18)) {
1610 if (cit_gen.
Empty()) {
1623 if (new_art.
Empty()) {
1624 if (! all_zeros && !
StringEquN(bptr,
"(er)", 4) && er == 0)
1639 if (! pchStart || ! pchCurrent || pchStart >= pchCurrent)
1642 for (pchCurrent--; pchCurrent >= pchStart; pchCurrent--) {
1643 if (
isspace((
int)*pchCurrent) != 0)
1645 if (*pchCurrent ==
';')
1646 return (pchCurrent);
1656 if (!
str || *
str ==
'\0')
1672 char* pchNumber =
nullptr;
1687 pchNumber = end + 1;
1690 pchNumber = end + 1;
1700 for (p = comm; *p ==
' ' || *p ==
'\t' || *p ==
'\n';)
1713 if (! entry || ! xip)
1716 for (; xip; xip = xip->
next) {
1722 for (xipqual = xip->
subtags; xipqual; xipqual = xipqual->
next) {
1730 quals.push_back(qual);
1737 if (doi.empty() && agricola.empty())
1743 if (! agricola.empty()) {
1745 id->SetOther().SetDb(
"AGRICOLA");
1746 id->SetOther().SetTag().SetStr(agricola);
1748 cit_art.
SetIds().Set().push_front(
id);
1751 if (! doi.empty()) {
1753 id->SetDoi().Set(doi);
1755 cit_art.
SetIds().Set().push_front(
id);
1804 if (p &&
isdigit((
int)*p) != 0) {
1805 desc->SetPub().Set().push_back(
get_num(p));
1834 if (! q || q[1] !=
'\0') {
1842 for (q = p; *q ==
' ' || *q ==
'.' || *q ==
',';)
1857 for (q = p; *q ==
' ' || *q ==
'.' || *q ==
',';)
1873 if (!
StringEquN(p,
"Direct Submission", 17) &&
1874 *p !=
'\0' && *p !=
';') {
1892 if (*p ==
'\0' || *p ==
';') {
1912 er =
fta_remark_is_er(desc->IsSetComment() ? desc->GetComment().c_str() :
nullptr);
1917 if (cit_art.
Empty())
1924 desc->SetPub().Set().push_back(pub);
1938 for (
const auto& xref : xrefs) {
1939 if (! xref->IsSetQual())
1943 agricola = xref->GetVal();
1945 doi = xref->GetVal();
1950 if (pub_ref.
Empty()) {
1958 desc->SetPub().Set().push_back(pub_ref);
1982 if (*p >=
'0' && *p <=
'9')
1983 desc->SetPub().Set().push_back(
get_num(p));
1997 if (*p < '0' || *p >
'9')
2007 desc->SetPub().Set().push_back(
get_num(p));
2021 for (q = p; *q ==
' ' || *q ==
'.' || *q ==
',';)
2034 for (q = p; *q ==
' ' || *q ==
'.' || *q ==
',';)
2047 if (!
StringEquN(p,
"Direct Submission", 17) &&
2048 *p !=
'\0' && *p !=
';') {
2066 if (*p ==
'\0' || *p ==
';') {
2073 is_online =
StringEquNI(p,
"Online Publication", 18);
2084 er =
fta_remark_is_er(desc->IsSetComment() ? desc->GetComment().c_str() :
nullptr);
2096 desc->SetPub().Set().push_back(pub);
2101 if (pub_ref.
Empty()) {
2109 desc->SetPub().Set().push_back(pub_ref);
2139 while ((*p < '0' || *p >
'9') && dbp->
len > 0)
2141 if (*p >=
'0' && *p <=
'9')
2142 desc->SetPub().Set().push_back(
get_num(p));
2157 er =
fta_remark_is_er(desc->IsSetComment() ? desc->GetComment().c_str() :
nullptr);
2176 desc->SetPub().Set().push_back(pub);
2189 for (q = p; *q ==
' ' || *q ==
'.' || *q ==
',';)
2205 for (q = p; *q ==
' ' || *q ==
'.' || *q ==
',';)
2218 if (*p !=
'\0' && *p !=
';') {
2220 if (title && title[0]) {
2236 if (*p ==
'\0' || *p ==
';') {
2253 desc->SetPub().Set().push_back(pub);
2258 if (pub_ref.
Empty()) {
2268 desc->SetPub().Set().push_back(pub_ref);
2276 for (TPubList::iterator pub = pubs.begin(); pub != pubs.end(); ++pub) {
2277 TPubList::iterator next_pub = pub;
2278 for (++next_pub; next_pub != pubs.end(); ++next_pub) {
2279 if ((*next_pub)->Which() > (*pub)->Which())
2282 if ((*next_pub)->Which() == (*pub)->Which()) {
2283 if (! (*pub)->IsMuid() || (*pub)->GetMuid() >= (*next_pub)->GetMuid())
2287 pub->Swap(*next_pub);
2295 static const size_t MAX_LAST_NAME_LEN = 30;
2303 if (! author->IsSetName() || ! author->GetName().IsName())
2306 const CName_std& name = author->GetName().GetName();
2318 ErrPostEx(sev,
ERR_REFERENCE_LongAuthorName,
"Last name of author exceeds 30 characters in length. A format error in the reference data might have caused the author name to be parsed incorrectly. Name is \"%s\".", name.
GetLast().c_str());
2351 }
else if (pub.
IsSub())
2353 if (! soft_report) {
2398 for (
const auto& cur_pub : pub.
GetEquiv().
Get()) {
2411 for (
auto& pub : pub_equiv.
Set()) {
2413 muid = pub->GetMuid();
2415 pmid = pub->GetPmid().Get();
2416 else if (pub->IsArticle() && ! cit_art)
2417 cit_art = &pub->SetArticle();
2425 id->SetMedline().Set(muid);
2426 cit_art->
SetIds().Set().push_front(
id);
2431 id->SetPubmed().Set(pmid);
2432 cit_art->
SetIds().Set().push_front(
id);
2447 bool soft_report =
false;
2450 bool no_auth =
false;
2458 desc =
sp_refs(pp, dbp, col_data);
2460 desc =
XMLRefs(pp, dbp, no_auth, rej);
2462 desc =
gb_refs_common(pp, dbp, col_data,
true,
nullptr, no_auth);
2464 desc =
embl_refs(pp, dbp, col_data, no_auth);
2466 if (desc && desc->IsSetComment()) {
2467 char* comment = (
char*)desc->GetComment().c_str();
2469 desc->SetComment(comment);
2486 if (desc.
NotEmpty() && desc->IsSetPub()) {
2489 for (
const auto& pub : desc->GetPub().Get()) {
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
char * tata_save(char *str)
char * StringRStr(char *where, const char *what)
void ShrinkSpaces(char *line)
@Affil.hpp User-defined methods of the data storage class.
@Auth_list.hpp User-defined methods of the data storage class.
@Gb_qual.hpp User-defined methods of the data storage class.
@Name_std.hpp User-defined methods of the data storage class.
@Pubdesc.hpp User-defined methods of the data storage class.
#define ERR_FORMAT_MultiplePatRefs
#define ERR_REFERENCE_Illegalreference
#define ERR_REFERENCE_InvalidInPress
#define ERR_REFERENCE_GsdbRefDropped
#define ERR_REFERENCE_Fail_to_parse
#define ERR_REFERENCE_LongAuthorName
#define ERR_REFERENCE_NoContactInfo
#define ERR_REFERENCE_MissingAuthors
#define ERR_REFERENCE_UnusualBookFormat
#define ERR_REFERENCE_Thesis
#define ERR_REFERENCE_IllegalDate
#define ERR_REFERENCE_InvalidMuid
#define INSDREFERENCE_REMARK
char * XMLFindTagValue(const char *entry, const XmlIndex *xip, Int4 tag)
#define INSDREFERENCE_PUBMED
char * XMLGetTagValue(const char *entry, const XmlIndex *xip)
#define INSDREFERENCE_AUTHORS
#define INSDREFERENCE_XREF
#define INSDREFERENCE_TITLE
#define INSDREFERENCE_JOURNAL
#define INSDREFERENCE_MEDLINE
#define INSDREFERENCE_CONSORTIUM
#define INSDREFERENCE_REFERENCE
char * XMLConcatSubTags(const char *entry, const XmlIndex *xip, Int4 tag, Char sep)
std::list< CRef< objects::CPub > > TPubList
char * StringSave(const char *s)
bool StringEquNI(const char *s1, const char *s2, size_t n)
bool StringEquN(const char *s1, const char *s2, size_t n)
void StringCpy(char *d, const char *s)
size_t StringLen(const char *s)
char * StringRChr(char *s, const char c)
CRef< CCit_art > FetchPubPmId(TEntrezId pmid)
SStrictId_Entrez::TId TEntrezId
TEntrezId type for entrez ids which require the same strictness as TGi.
#define ENTREZ_ID_FROM(T, value)
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.
uint8_t Uint1
1-byte (8-bit) unsigned integer
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 StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static string Sanitize(CTempString str, TSS_Flags flags=fSS_print)
Sanitize a string, allowing only specified classes of characters.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
@ fAllowTrailingSymbols
Ignore trailing non-numerics characters.
bool IsProc(void) const
Check if variant Proc is selected.
bool IsSetVolume(void) const
Check if a value has been assigned to Volume data member.
const TAuthors & GetAuthors(void) const
Get the Authors member data.
const TPart_supi & GetPart_supi(void) const
Get the Part_supi member data.
const TCit & GetCit(void) const
Get the Cit member data.
void SetPages(const TPages &value)
Assign a value to Pages data member.
void SetIds(TIds &value)
Assign a value to Ids data member.
const TBook & GetBook(void) const
Get the Book member data.
bool IsSetAuthors(void) const
Check if a value has been assigned to Authors data member.
bool IsSetAuthors(void) const
authors (ANSI requires) Check if a value has been assigned to Authors data member.
void SetTitle(TTitle &value)
Assign a value to Title data member.
void SetDate(TDate &value)
Assign a value to Date data member.
bool IsSetPrepub(void) const
Check if a value has been assigned to Prepub data member.
const TFrom & GetFrom(void) const
Get the From member data.
bool IsSetApplicants(void) const
Applicants Check if a value has been assigned to Applicants data member.
const TAuthors & GetAuthors(void) const
Get the Authors member data.
bool IsSetAssignees(void) const
Assignees Check if a value has been assigned to Assignees data member.
void SetIssue(const TIssue &value)
Assign a value to Issue data member.
void SetTitle(TTitle &value)
Assign a value to Title data member.
const TAuthors & GetAuthors(void) const
Get the Authors member data.
void SetFrom(TFrom &value)
Assign a value to From data member.
const TIssue & GetIssue(void) const
Get the Issue member data.
void SetAffil(TAffil &value)
Assign a value to Affil data member.
bool IsSetFrom(void) const
Check if a value has been assigned to From data member.
void SetAuthors(TAuthors &value)
Assign a value to Authors data member.
void SetSerial_number(TSerial_number value)
Assign a value to Serial_number data member.
bool IsSetAuthors(void) const
not necessarily authors of the paper Check if a value has been assigned to Authors data member.
void ResetPart_supi(void)
Reset Part_supi data member.
TPrepub GetPrepub(void) const
Get the Prepub member data.
void SetAuthors(TAuthors &value)
Assign a value to Authors data member.
void ResetPrepub(void)
Reset Prepub data member.
const TProc & GetProc(void) const
Get the variant data.
void SetImp(TImp &value)
Assign a value to Imp data member.
TStr & SetStr(void)
Select the variant.
bool IsSetNames(void) const
Check if a value has been assigned to Names data member.
bool IsSetAuthors(void) const
author/inventor Check if a value has been assigned to Authors data member.
void SetVolume(const TVolume &value)
Assign a value to Volume data member.
void SetNames(TNames &value)
Assign a value to Names data member.
bool IsSetIssue(void) const
Check if a value has been assigned to Issue data member.
void SetAuthors(TAuthors &value)
Assign a value to Authors data member.
const TAuthors & GetAuthors(void) const
Get the Authors member data.
void SetDate(TDate &value)
Assign a value to Date data member.
const TApplicants & GetApplicants(void) const
Get the Applicants member data.
bool IsSetDate(void) const
date of publication Check if a value has been assigned to Date data member.
EPrepub
for prepublication citations
bool IsBook(void) const
Check if variant Book is selected.
void SetPubstatus(TPubstatus value)
Assign a value to Pubstatus data member.
bool IsSetAuthors(void) const
authors Check if a value has been assigned to Authors data member.
void SetMedium(TMedium value)
Assign a value to Medium data member.
bool IsSetBook(void) const
citation to meeting Check if a value has been assigned to Book data member.
const TNames & GetNames(void) const
Get the Names member data.
bool IsSetCit(void) const
same fields as a book Check if a value has been assigned to Cit data member.
const TStd & GetStd(void) const
Get the variant data.
void SetPart_sup(const TPart_sup &value)
Assign a value to Part_sup data member.
EMedium
medium of submission
void SetPrepub(TPrepub value)
Assign a value to Prepub data member.
bool IsSetPart_supi(void) const
part/sup on issue Check if a value has been assigned to Part_supi data member.
const TAuthors & GetAuthors(void) const
Get the Authors member data.
const TAssignees & GetAssignees(void) const
Get the Assignees member data.
const TImp & GetImp(void) const
Get the Imp member data.
bool IsSetPages(void) const
Check if a value has been assigned to Pages data member.
void SetPart_supi(const TPart_supi &value)
Assign a value to Part_supi data member.
bool IsStd(void) const
Check if variant Std is selected.
const TBook & GetBook(void) const
Get the variant data.
@ ePrepub_in_press
accepted, not published
@ ePrepub_submitted
submitted, not accepted
void SetYear(TYear value)
Assign a value to Year data member.
void SetMonth(TMonth value)
Assign a value to Month data member.
TStd & SetStd(void)
Select the variant.
void SetDay(TDay value)
Assign a value to Day data member.
bool IsSetLast(void) const
Check if a value has been assigned to Last data member.
const TLast & GetLast(void) const
Get the Last member data.
const TStd & GetStd(void) const
Get the variant data.
bool IsSetCit(void) const
article citation Check if a value has been assigned to Cit data member.
const TCit & GetCit(void) const
Get the Cit member data.
bool IsMedline(void) const
Check if variant Medline is selected.
TPmid & SetPmid(void)
Select the variant.
bool IsBook(void) const
Check if variant Book is selected.
const TMedline & GetMedline(void) const
Get the variant data.
const TMan & GetMan(void) const
Get the variant data.
TMuid & SetMuid(void)
Select the variant.
TBook & SetBook(void)
Select the variant.
Tdata & Set(void)
Assign a value to data member.
const TArticle & GetArticle(void) const
Get the variant data.
const TSub & GetSub(void) const
Get the variant data.
const TPatent & GetPatent(void) const
Get the variant data.
const Tdata & Get(void) const
Get the member data.
const TProc & GetProc(void) const
Get the variant data.
const TEquiv & GetEquiv(void) const
Get the variant data.
TMan & SetMan(void)
Select the variant.
bool IsEquiv(void) const
Check if variant Equiv is selected.
bool IsProc(void) const
Check if variant Proc is selected.
TSub & SetSub(void)
Select the variant.
bool IsSub(void) const
Check if variant Sub is selected.
TGen & SetGen(void)
Select the variant.
const TGen & GetGen(void) const
Get the variant data.
TPatent & SetPatent(void)
Select the variant.
bool IsPatent(void) const
Check if variant Patent is selected.
bool IsArticle(void) const
Check if variant Article is selected.
TArticle & SetArticle(void)
Select the variant.
bool IsGen(void) const
Check if variant Gen is selected.
const TBook & GetBook(void) const
Get the variant data.
bool IsMan(void) const
Check if variant Man is selected.
void SetQual(const TQual &value)
Assign a value to Qual data member.
bool IsSetQual(void) const
Check if a value has been assigned to Qual data member.
void SetVal(const TVal &value)
Assign a value to Val data member.
const TQual & GetQual(void) const
Get the Qual member data.
@ e_Other
for historical reasons, 'other' = 'refseq'
@ e_Tpe
Third Party Annot/Seq EMBL.
@ e_Tpd
Third Party Annot/Seq DDBJ.
@ e_Tpg
Third Party Annot/Seq Genbank.
@ eReftype_no_target
nothing specified (EMBL)
void ind_subdbp(DataBlkPtr dbp, DataBlkPtr ind[], int maxkw, Parser::EFormat bank)
Int4 IsNewAccessFormat(const Char *acnum)
const struct ncbi::grid::netcache::search::fields::SIZE size
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
User-defined methods of the data storage class.
static void XMLGetXrefs(char *entry, XmlIndexPtr xip, TQualVector &quals)
static CRef< CPub > get_muid(char *str, Parser::EFormat format)
CRef< CPubdesc > DescrRefs(ParserPtr pp, DataBlkPtr dbp, Int4 col_data)
static char * get_embl_str_pub_id(char *str, const Char *tag)
Int4 fta_remark_is_er(const Char *str)
static const char * ERRemarks[]
static CRef< CCit_art > get_book(char *bptr, CRef< CAuth_list > &auth_list, CRef< CTitle::C_E > &title, CImprint::EPrepub pre, Parser::EFormat format, char *jour)
static void fta_check_long_name_in_article(const CCit_art &cit_art, bool soft_report)
static CRef< CPub > get_num(char *str)
CRef< CPubdesc > gb_refs_common(ParserPtr pp, DataBlkPtr dbp, Int4 col_data, bool bParser, DataBlkPtr **ppInd, bool &no_auth)
static void fta_check_long_last_name(const CAuth_list &authors, bool soft_report)
static void fta_propagate_pmid_muid(CPub_equiv &pub_equiv)
static CRef< CCit_let > get_thesis(char *bptr, CRef< CAuth_list > &auth_list, CRef< CTitle::C_E > &title, CImprint::EPrepub pre)
static TEntrezId get_embl_pmid(char *str)
static void fta_sort_pubs(TPubList &pubs)
static CRef< CPubdesc > XMLRefs(ParserPtr pp, DataBlkPtr dbp, bool &no_auth, bool &rej)
static CRef< CCit_pat > get_pat(ParserPtr pp, char *bptr, CRef< CAuth_list > &auth_list, CRef< CTitle::C_E > &title, char *eptr)
static const char * strip_sub_str[]
static CRef< CCit_sub > get_sub_gsdb(char *bptr, CRef< CAuth_list > &auth_list, CRef< CTitle::C_E > &title, ParserPtr pp)
static void fta_add_article_ids(CPub &pub, const string &doi, const string &agricola)
static CRef< CPubdesc > embl_refs(ParserPtr pp, DataBlkPtr dbp, Int4 col_data, bool &no_auth)
static CRef< CCit_sub > get_sub(ParserPtr pp, char *bptr, CRef< CAuth_list > &auth_list)
static CRef< CCit_book > get_whole_book(char *bptr, CRef< CAuth_list > &auth_list, CRef< CTitle::C_E > &title, CImprint::EPrepub pre)
CRef< CPub > journal(ParserPtr pp, char *bptr, char *eptr, CRef< CAuth_list > &auth_list, CRef< CTitle::C_E > &title, bool has_muid, CRef< CCit_art > &cit_art, Int4 er)
static void fta_check_long_names(const CPub &pub, bool soft_report)
static void normalize_comment(string &comment)
static CRef< CCit_gen > fta_get_citgen(char *bptr, CRef< CAuth_list > &auth_list, CRef< CTitle::C_E > &title)
static void fta_get_part_sup(char *parts, CImprint &imp)
static CRef< CCit_art > get_art(ParserPtr pp, char *bptr, CRef< CAuth_list > &auth_list, CRef< CTitle::C_E > &title, CImprint::EPrepub pre, bool has_muid, bool *all_zeros, Int4 er)
static char * ExtractErratum(char *comm)
static char * FindSemicolon(char *str)
static char * check_book_tit(char *title)
static bool get_parts(char *bptr, char *eptr, CImprint &imp)
static CRef< CDate > get_lanl_date(char *s)
static CRef< CCit_gen > get_unpub(char *bptr, char *eptr, CRef< CAuth_list > &auth_list, const Char *title)
static char * FindBackSemicolon(char *pchStart, char *pchCurrent)
static char * clean_up(char *str)
@ ParFlat_PATENT_CITATION
@ ParFlat_ONLINE_CITATION
@ ParFlat_MONOGRAPH_NOT_JOURNAL
@ ParFlat_THESIS_CITATION
@ ParFlat_MISSING_JOURNAL
CRef< objects::CPubdesc > sp_refs(ParserPtr pp, DataBlkPtr dbp, Int4 col_data)
static const char * str(char *buf, int n)
CRef< objects::CPatent_seq_id > psip
vector< IndexblkPtr > entrylist
CRef< CDate_std > get_full_date(const char *s, bool is_ref, Parser::ESource source)
void fta_StringCpy(char *dst, const char *src)
Char * StringIStr(const Char *where, const Char *what)
void get_auth_consortium(char *cons, CRef< CAuth_list > &auths)
CRef< CDate > get_date(const Char *year)
Int4 valid_pages_range(char *pages, const Char *title, Int4 er, bool inpress)
void get_auth(char *pt, Uint1 format, char *jour, CRef< CAuth_list > &auths)
CRef< CCit_gen > get_error(char *bptr, CRef< CAuth_list > &auth_list, CRef< CTitle::C_E > &title)
std::vector< CRef< objects::CGb_qual > > TQualVector
int XDateCheck(const CDate_std &date)