sequence;
84 "Empty publication descriptor", obj,
ctx);
88 boolconflicting_pmids =
false, redundant_pmids =
false, conflicting_muids =
false, redundant_muids =
false;
90ValidatePubHasAuthor(pubdesc, obj,
ctx);
94 const CPub& pub = **pub_iter;
96 switch( pub.
Which() ) {
100}
else if( muid != pub.
GetMuid() ) {
101conflicting_muids =
true;
103redundant_muids =
true;
113}
else if( pmid != pub.
GetPmid() ) {
114conflicting_pmids =
true;
116redundant_pmids =
true;
128 if( conflicting_pmids ) {
130 "Multiple conflicting pmids in a single publication", obj,
ctx);
132 if( redundant_pmids ) {
134 "Multiple redundant pmids in a single publication", obj,
ctx);
136 if( conflicting_muids ) {
138 "Multiple conflicting muids in a single publication", obj,
ctx);
140 if( redundant_muids ) {
142 "Multiple redundant muids in a single publication", obj,
ctx);
147 const CPub& pub = **pub_iter;
149 switch( pub.
Which() ) {
151ValidatePubGen(pub.
GetGen(), obj,
ctx);
155ValidateCitSub(pub.
GetSub(), obj,
ctx);
160 "Publication is medline entry", obj,
ctx);
184 const string& comment = pubdesc.
GetComment();
188&& (
NStr::Find(comment,
"Publication Status") != string::npos
189||
NStr::Find(comment,
"Publication-Status") != string::npos
190||
NStr::Find(comment,
"Publication_Status") != string::npos)) {
200 "Publication has unexpected internal Pub-equiv", obj,
ctx);
208ValidateAuthorsInPubequiv (pubdesc.
GetPub(), obj,
ctx);
217&& !
gen.IsSetJournal()
218&& !
gen.IsSetDate()
219&& !
gen.IsSetSerial_number()) {
232 boolis_unpub =
false;
233 if(
gen.IsSetCit() && !
gen.GetCit().empty() ) {
234 const string& cit =
gen.GetCit();
248 "Unpublished citation text invalid", obj,
ctx);
253 "Unpublished citation has embedded Title", obj,
ctx);
257 "Unpublished citation has embedded Journal", obj,
ctx);
261 if(
gen.IsSetSerial_number()) {
262m_PubSerialNumbers.push_back(
gen.GetSerial_number());
264 if(!
gen.IsSetCit() && !
gen.IsSetJournal() && !
gen.IsSetDate()) {
268 if(!
gen.IsSetDate()) {
272}
else if(
gen.GetDate().IsStr()) {
276}
else if(
gen.GetDate().IsStd() && (!
gen.GetDate().GetStd().IsSetYear() ||
gen.GetDate().GetStd().GetYear() == 0)) {
281PostBadDateError (
eDiag_Error,
"Publication date has error", rval, obj,
ctx);
289 boolis_electronic_journal =
false;
294is_electronic_journal =
true;
302is_electronic_journal =
true;
305 returnis_electronic_journal;
329 "Publication has no title", obj,
ctx);
335 boolhas_iso_jta = HasIsoJTA(jour.
GetTitle());
340 "Journal title missing", obj,
ctx);
344ValidatePubArticleNoPMID(art, obj,
ctx);
347 if( !has_iso_jta && !is_electronic_journal &&
350 "ISO journal title abbreviation missing", obj,
ctx);
369 boolin_press =
false;
380 "In-press is not expected to have page numbers", obj,
ctx);
385 "In-press is missing the date", obj,
ctx);
398 if(is_electronic_journal) {
400 "Electronic journal volume missing", obj,
ctx);
403 "Journal volume missing", obj,
ctx);
407 if(is_electronic_journal) {
409 "Electronic journal pages missing", obj,
ctx);
412 "Journal pages missing", obj,
ctx);
416 if(!no_pages && !is_electronic_journal) {
422 "Publication date marked as '?'", obj,
ctx);
426 "Publication date missing", obj,
ctx);
429 "Publication date not set", obj,
ctx);
433PostBadDateError(
eDiag_Error,
"Publication date has error", rval, obj,
ctx);
439 "Publication date missing", obj,
ctx);
448 if(!noVol && !noPages) {
450 "Ahead-of-print without in-press", obj,
ctx);
456 "Electronic-only publication should not also be in-press", obj,
ctx);
464string::size_type pos = 0;
465string::size_type
len= pages.length();
470 while(pos <
len&& !
isdigit((
unsigned char) pages[pos])) {
474 while(pos <
len&&
isdigit((
unsigned char) pages[pos])) {
475digits += pages[pos];
482 if(
isdigit((
unsigned char) pages[pos])) {
494 const string& pages,
498 static const stringkRoman =
"IVXLCDM";
507 if(!
NStr::SplitInTwo(pages,
"-", start, stop) || start.empty() || stop.empty()) {
508 if(!
isdigit(pages.c_str()[0])) {
518 boolstart_good =
false, stop_good =
false;
519 size_tnum_digits = 0, num_chars = 0;
521 if(start.c_str()[0] ==
'-') {
524 while(
isdigit(start.c_str()[num_chars])) {
528 if(num_digits == 0) {
529 if(!
isalpha(start.c_str()[0])) {
538 if(stop.c_str()[0] ==
'-') {
541 while(
isdigit(stop.c_str()[num_chars])) {
545 if(num_digits == 0) {
552 if((start_good && p1 == 0) || (stop_good && p2 == 0)) {
554}
else if((start_good && p1 < 0) || (stop_good && p2 < 0)) {
556}
else if(start_good && stop_good && p1 > p2) {
558}
else if(start_good && stop_good && p2 > p1 + 50) {
568 const string*
str=
nullptr;
569 switch( (*item)->Which() ) {
571 str= &(*item)->GetName();
575 str= &(*item)->GetTsub();
579 str= &(*item)->GetTrans();
583 str= &(*item)->GetJta();
587 str= &(*item)->GetIso_jta();
591 str= &(*item)->GetMl_jta();
595 str= &(*item)->GetCoden();
599 str= &(*item)->GetIssn();
603 str= &(*item)->GetAbr();
607 str= &(*item)->GetIsbn();
624 if( (*item)->IsIso_jta() ) {
626}
else if( (*item)->IsMl_jta() ) {
638 switch(
names.Which() ) {
646}
else if( pid.
IsMl() ) {
650}
else if( pid.
IsStr() ) {
684 boolhas_name =
false;
686 const CPub& pub = **pub_iter;
687 switch(pub.
Which() ) {
707 "Publication has no author names", obj,
ctx);
720 "Publication has no author names", obj,
ctx);
735 if(
names.IsStd()) {
736list<string> consortium_list;
739 boollast_is_bad =
false;
744 "Bad characters in author "+ badauthor, obj,
ctx);
746 if( (*name)->GetName().IsName() ) {
747 const CName_std& nstd = (*name)->GetName().GetName();
766CAuth_list::C_Names::TStd::const_iterator temp = name;
767 if( ++temp ==
names.GetStd().end() ) {
769 "Author list ends in et al.", obj,
ctx);
772 "Author list contains et al.", obj,
ctx);
782 ITERATE(TSuffixes, it, suffixes) {
790 "Bad author suffix "+ suffix,
794}
else if( (*name)->GetName().IsConsortium() ) {
795 const string& consortium = (*name)->GetName().GetConsortium();
800 ITERATE(list<string>, cons_str, consortium_list) {
808 "Duplicate consortium '"+ consortium +
"'", obj,
ctx);
810consortium_list.push_back(consortium);
815}
else if(
names.IsMl()) {
819 "Bad characters in author "+ *
str, obj,
ctx);
822}
else if(
names.IsStr()) {
827 "Bad characters in author "+ *
str, obj,
ctx);
841 const CPub& pub = **pub_iter;
848 const CPub& pub = **pub_iter;
850 boolis_sub =
false;
851 switch( pub.
Which() ) {
879ValidateAuthorsInPubequiv (pub.
GetEquiv(), obj,
ctx);
890ValidateAuthorList (
names, obj,
ctx);
892 if( is_sub &&
names.IsStd() ) {
894 if( (*name)->GetName().IsName() ) {
895 const CName_std& nstd = (*name)->GetName().GetName();
902 "Bad last name '"+
last+
"'", obj,
ctx);
909 "Bad first name '"+
first+
"'", obj,
ctx);
914 "Bad first and last name", obj,
ctx);
927 if((*id)->IsOther()) {
1004 "Submission citation affiliation has no country",
1009 "Submission citation affiliation has no state",
1024 if(IsINSDInSep() || IsRefSeq() || IsHtg() || IsPDB()) {
1029 "Submission citation affiliation has no country",
1034 "Submission citation affiliation has no state",
1040 "Submission citation affiliation has no institution",
1049IsHtg() || IsPDB()) {
1052 if(IsEmbl() || IsTPE()) {
1094 "Bad author first name: '"+
first+
"'", obj,
ctx);
1105 "Bad author last name: '"+
last+
"'", obj,
ctx);
1119 stringsub = astd.
GetSub();
1123 "Bad affiliation: '"+ sub +
"'", obj,
ctx);
1134 boolhas_name =
false,
1139has_name = HasName(authors);
1141 if( IsGenomeSubmission() && authors.
CanGetNames() ) {
1147ValidateBadNameStd( pid.
GetName(), obj,
ctx);
1156 switch( affil.
Which() ) {
1166 #define HAS_VALUE(x) (std.CanGet##x() && ! NStr::IsBlank(std.Get##x())) 1173ValidateSubAffil(std, obj,
ctx);
1174 if( IsGenomeSubmission() ) {
1175ValidateBadAffil(std, obj,
ctx);
1190 "Submission citation has no author names", obj,
ctx);
1195 "Submission citation has no affiliation", obj,
ctx);
1201time_t time_now = time(
NULL);
1206PostBadDateError (
eDiag_Error,
"Submission citation date has error", rval, obj,
ctx);
1210 "Submission citation has no date", obj,
ctx);
1227 if((*id_it)->IsOther()) {
1228 if((*id_it)->GetOther().IsSetAccession()) {
1229 stringaccession = (*id_it)->GetOther().GetAccession();
1241 if((*id_it)->IsOther()
1242&& (*id_it)->GetOther().IsSetAccession()) {
1243 const string& accession = (*id_it)->GetOther().GetAccession();
1260 if((!IsNoPubs() ||
GetContext().PostprocessHugeFile)
1261&& !IsSeqSubmit()) {
1268 if(!IsNoncuratedRefSeq (
nuc, sev)
1269&& !IsWGSIntermediate(
nuc)
1270&& !IsTSAIntermediate(
nuc)) {
1277 if(!IsNoncuratedRefSeq (seq, sev)
1278&& !IsWGSIntermediate(seq)
1279&& !IsTSAIntermediate(seq)) {
1288 boolis_gpipe =
false;
1291 if((*id_it)->IsGpipe()) {
1303 if((*id_it)->IsOther() && (*id_it)->GetOther().IsSetAccession()) {
1304 const string&
str= (*id_it)->GetOther().GetAccession();
1321 const CMolInfo& molinf = (*mi_ref).GetMolinfo();
1335 const CMolInfo& molinf = (*mi_ref).GetMolinfo();
1349 if( IsNoPubs() && !IsSeqSubmitParent() ) {
1350 if( !m_pEntryInfo->IsGPS() && !cs) {
1364 "No publications anywhere on this entire record.", se);
1369 if(IsNoCitSubPubs() && !cs && !IsSeqSubmitParent() ) {
1378 if(m_genomeSubmission) {
1382 "No submission citation anywhere on this entire record.", se);
1391 if(m_PubSerialNumbers.size() < 2) {
1394 sort(m_PubSerialNumbers.begin(), m_PubSerialNumbers.end());
1396vector<int>::iterator it1 = m_PubSerialNumbers.begin();
1397vector<int>::iterator it2 = it1;
1399 while(it2 != m_PubSerialNumbers.end()) {
1404 while(it2 != m_PubSerialNumbers.end() && *it2 == *it1) {
1407 if(it2 != m_PubSerialNumbers.end()) {
static CRef< CScope > m_Scope
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
@ eErr_GENERIC_BadFirstName
@ eErr_GENERIC_MissingPubRequirement
@ eErr_GENERIC_MissingVolume
@ eErr_GENERIC_AuthorListHasEtAl
@ eErr_GENERIC_UnnecessaryPubEquiv
@ eErr_GENERIC_MissingPagesEpub
@ eErr_GENERIC_MissingISOJTA
@ eErr_GENERIC_BadPageNumbering
@ eErr_GENERIC_MissingPages
@ eErr_GENERIC_MedlineEntryPub
@ eErr_SEQ_DESCR_NoPubFound
@ eErr_GENERIC_BadAffilState
@ eErr_GENERIC_StructuredCitGenCit
@ eErr_SEQ_FEAT_BadCharInAuthorName
@ eErr_SEQ_FEAT_BadAuthorSuffix
@ eErr_GENERIC_UnexpectedPubStatusComment
@ eErr_GENERIC_PublicationInconsistency
@ eErr_GENERIC_BadSubmissionAuthorName
@ eErr_GENERIC_CollidingSerialNumbers
@ eErr_GENERIC_MissingVolumeEpub
@ eErr_SEQ_DESCR_CollidingPublications
@ eErr_GENERIC_BadLastName
@ eErr_SEQ_FEAT_BadCharInAuthorLastName
@Affil.hpp User-defined methods of the data storage class.
@Auth_list.hpp User-defined methods of the data storage class.
@Name_std.hpp User-defined methods of the data storage class.
static const TSuffixes & GetStandardSuffixes(void)
Get a list of NCBI's standard suffixes.
@Pubdesc.hpp User-defined methods of the data storage class.
Base class for all serializable objects.
static bool IsCollectionDateAfterTime(const string &collection_date, time_t t, bool &bad_format)
static bool IsTSAAccession(const CSeq_id &id)
static bool IsWGSMaster(const CBioseq &seq, CScope &scope)
static bool IsWGSAccession(const CSeq_id &id)
void FindCollidingSerialNumbers(const CSerialObject &obj)
bool IsNoncuratedRefSeq(const CBioseq &seq, EDiagSev &sev)
bool x_DowngradeForMissingAffil(const CCit_sub &cs)
void ValidatePubGen(const CCit_gen &gen, const CSerialObject &obj, const CSeq_entry *ctx=nullptr)
void ValidateSubAffil(const CAffil::TStd &std, const CSerialObject &obj, const CSeq_entry *ctx)
void ValidateAuthorsInPubequiv(const CPub_equiv &pe, const CSerialObject &obj, const CSeq_entry *ctx=nullptr)
void ValidatePubArticleNoPMID(const CCit_art &art, const CSerialObject &obj, const CSeq_entry *ctx=nullptr)
bool HasIsoJTA(const CTitle &title)
void ValidateCitSub(const CCit_sub &cs, const CSerialObject &obj, const CSeq_entry *ctx=nullptr)
void ValidateAffil(const CAffil::TStd &std, const CSerialObject &obj, const CSeq_entry *ctx)
void ValidatePubArticle(const CCit_art &art, TEntrezId uid, const CSerialObject &obj, const CSeq_entry *ctx=nullptr)
void AddBioseqWithNoPub(const CBioseq &seq)
bool HasTitle(const CTitle &title)
void ValidatePubHasAuthor(const CPubdesc &pubdesc, const CSerialObject &obj, const CSeq_entry *ctx=nullptr)
void ReportMissingPubs(const CSeq_entry &se, const CCit_sub *cs)
void ValidateBadNameStd(const CName_std &nstd, const CSerialObject &obj, const CSeq_entry *ctx=nullptr)
void x_ValidatePages(const string &pages, const CSerialObject &obj, const CSeq_entry *ctx=nullptr)
void ValidateBadAffil(const CAffil::TStd &astd, const CSerialObject &obj, const CSeq_entry *ctx=nullptr)
void ValidateAuthorList(const CAuth_list::C_Names &names, const CSerialObject &obj, const CSeq_entry *ctx=nullptr)
bool HasName(const CAuth_list &authors)
void ValidatePubdesc(const CPubdesc &pub, const CSerialObject &obj, const CSeq_entry *ctx=nullptr)
static bool BadCharsInAuthorName(const string &str, bool allowcomma, bool allowperiod, bool last)
static string BadCharsInAuthor(const CName_std &author, bool &last_is_bad)
Include a standard set of the NCBI C++ Toolkit most basic headers.
The NCBI C++ standard methods for dealing with std::string.
static const struct name_t names[]
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
static DLIST_TYPE *DLIST_NAME() last(DLIST_LIST_TYPE *list)
static const char * str(char *buf, int n)
SStrictId_Entrez::TId TEntrezId
TEntrezId type for entrez ids which require the same strictness as TGi.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
EDiagSev
Severity level for the posted diagnostics.
@ eDiag_Info
Informational message.
@ eDiag_Error
Error message.
@ eDiag_Warning
Warning message.
@ eDiag_Fatal
Fatal error â guarantees exit(or abort)
@ eDiag_Critical
Critical error message.
CSeq_entry_Handle GetSeq_entryHandle(CDataLoader *loader, const TBlobId &blob_id, EMissing action=eMissing_Default)
Get Seq-entry handle by its blob-id, with possible loading.
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
static int CompareNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive compare of a substring with another string.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static SIZE_TYPE FindNoCase(const CTempString str, const CTempString pattern, SIZE_TYPE start, SIZE_TYPE end, EOccurrence which=eFirst)
Find the pattern in the specified range of a string using a case insensitive search.
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
static void TruncateSpacesInPlace(string &str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string (in-place)
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
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.
static bool EqualCase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-sensitive equality of a substring with another string.
static SIZE_TYPE FindCase(const CTempString str, const CTempString pattern, SIZE_TYPE start, SIZE_TYPE end, EOccurrence which=eFirst)
Find the pattern in the specified range of a string using a case sensitive search.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static bool SplitInTwo(const CTempString str, const CTempString delim, string &str1, string &str2, TSplitFlags flags=0)
Split a string into two pieces using the specified delimiters.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
static enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.
static bool Equal(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2, ECase use_case=eCase)
Test for equality of a substring with another string.
static string & ReplaceInPlace(string &src, const string &search, const string &replace, SIZE_TYPE start_pos=0, SIZE_TYPE max_replace=0, SIZE_TYPE *num_replace=0)
Replace occurrences of a substring within a string.
@ fConvErr_NoThrow
Do not throw an exception on error.
@ eNocase
Case insensitive compare.
const TKeywords & GetKeywords(void) const
Get the Keywords member data.
bool IsSetKeywords(void) const
Check if a value has been assigned to Keywords data member.
bool CanGetAffil(void) const
Check if it is safe to call GetAffil method.
bool IsSetVolume(void) const
Check if a value has been assigned to Volume data member.
const TDate & GetDate(void) const
Get the Date member data.
const TAuthors & GetAuthors(void) const
Get the Authors member data.
const TCit & GetCit(void) const
Get the Cit member data.
bool IsSetDate(void) const
Check if a value has been assigned to Date data member.
TSerial_number GetSerial_number(void) const
Get the Serial_number member data.
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.
const TJournal & GetJournal(void) const
Get the variant data.
const TVolume & GetVolume(void) const
Get the Volume member data.
const TPages & GetPages(void) const
Get the Pages member data.
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.
const TAuthors & GetAuthors(void) const
Get the Authors member data.
bool IsSetPhone(void) const
Check if a value has been assigned to Phone data member.
bool CanGetPubstatus(void) const
Check if it is safe to call GetPubstatus method.
bool IsSetSerial_number(void) const
for GenBank style references Check if a value has been assigned to Serial_number data member.
const TAffil & GetAffil(void) const
Get the Affil member data.
bool IsSetStreet(void) const
street address, not ANSI Check if a value has been assigned to Street data member.
const TStr & GetStr(void) const
Get the variant data.
bool IsSetTitle(void) const
title of paper (ANSI requires) Check if a value has been assigned to Title data member.
const TTitle & GetTitle(void) const
Get the Title member data.
const TAuthors & GetAuthors(void) const
Get the Authors member data.
bool IsSetCity(void) const
Author Affiliation, City Check if a value has been assigned to City data member.
const TEmail & GetEmail(void) const
Get the Email member data.
bool CanGetPrepub(void) const
Check if it is safe to call GetPrepub method.
bool IsSetFrom(void) const
Check if a value has been assigned to From data member.
bool IsSetImp(void) const
Check if a value has been assigned to Imp data member.
bool IsSetEmail(void) const
Check if a value has been assigned to Email data member.
TPrepub GetPrepub(void) const
Get the Prepub member data.
bool IsSetPubstatus(void) const
current status of this publication Check if a value has been assigned to Pubstatus data member.
const TStreet & GetStreet(void) const
Get the Street member data.
const TAffil & GetAffil(void) const
Get the Affil member data.
bool IsSetCit(void) const
anything, not parsable Check if a value has been assigned to Cit data member.
const TSub & GetSub(void) const
Get the Sub member data.
list< CRef< CAuthor > > TStd
list< CRef< C_E > > Tdata
bool CanGetAuthors(void) const
Check if it is safe to call GetAuthors method.
bool IsSetDate(void) const
replaces imp, will become required Check if a value has been assigned to Date data member.
E_Choice Which(void) const
Which variant is currently selected.
bool IsSetJournal(void) const
Check if a value has been assigned to Journal data member.
const TAuthors & GetAuthors(void) const
Get the Authors member data.
bool IsSetFax(void) const
Check if a value has been assigned to Fax data member.
bool CanGetNames(void) const
Check if it is safe to call GetNames method.
bool IsSetDiv(void) const
Author Affiliation, Division Check if a value has been assigned to Div data member.
const TCountry & GetCountry(void) const
Get the Country member data.
const TStd & GetStd(void) const
Get the variant data.
const TPostal_code & GetPostal_code(void) const
Get the Postal_code member data.
bool IsSetDate(void) const
date of publication Check if a value has been assigned to Date data member.
const TPhone & GetPhone(void) const
Get the Phone member data.
const TImp & GetImp(void) const
Get the Imp member data.
bool IsJournal(void) const
Check if variant Journal is selected.
const TNames & GetNames(void) const
Get the Names member data.
const TDate & GetDate(void) const
Get the Date member data.
const TFax & GetFax(void) const
Get the Fax member data.
const TAuthors & GetAuthors(void) const
Get the Authors member data.
const TTitle & GetTitle(void) const
Get the Title member data.
bool IsSetPostal_code(void) const
Check if a value has been assigned to Postal_code data member.
bool IsSetCountry(void) const
Author Affiliation, Country Check if a value has been assigned to Country data member.
bool IsSetPages(void) const
Check if a value has been assigned to Pages data member.
const TCity & GetCity(void) const
Get the City member data.
bool IsSetAffil(void) const
Author Affiliation, Name Check if a value has been assigned to Affil data member.
const Tdata & Get(void) const
Get the member data.
const TDiv & GetDiv(void) const
Get the Div member data.
TPubstatus GetPubstatus(void) const
Get the Pubstatus member data.
bool IsSetSub(void) const
Author Affiliation, County Sub Check if a value has been assigned to Sub data member.
@ e_Ml_jta
specifically MEDLINE jta J
@ e_Trans
Title, Translated AJB.
@ e_Abr
Title, Abbreviated B.
@ e_Jta
Title, Abbreviated J.
@ e_Tsub
Title, Subordinate A B.
@ e_Iso_jta
specifically ISO jta J
@ e_Name
Title, Anal,Coll,Mono AJB.
@ ePubStatus_ppublish
published in print by publisher
@ ePubStatus_aheadofprint
epublish, but will be followed by print
@ ePubStatus_epublish
published electronically by publisher
@ ePrepub_in_press
accepted, not published
@ e_Ml
MEDLINE, semi-structured.
const TStr & GetStr(void) const
Get the variant data.
bool IsConsortium(void) const
Check if variant Consortium is selected.
bool IsMl(void) const
Check if variant Ml is selected.
bool IsSetYear(void) const
full year (including 1900) Check if a value has been assigned to Year data member.
bool IsStd(void) const
Check if variant Std is selected.
bool IsSetSuffix(void) const
Jr, Sr, III Check if a value has been assigned to Suffix data member.
const TInitials & GetInitials(void) const
Get the Initials member data.
bool IsName(void) const
Check if variant Name is selected.
bool IsSetInitials(void) const
first + middle initials Check if a value has been assigned to Initials data member.
const TMl & GetMl(void) const
Get the variant data.
bool IsSetLast(void) const
Check if a value has been assigned to Last data member.
const TConsortium & GetConsortium(void) const
Get the variant data.
bool IsStr(void) const
Check if variant Str is selected.
const TStr & GetStr(void) const
Get the variant data.
const TSuffix & GetSuffix(void) const
Get the Suffix member data.
TYear GetYear(void) const
Get the Year member data.
const TFirst & GetFirst(void) const
Get the First member data.
const TLast & GetLast(void) const
Get the Last member data.
E_Choice Which(void) const
Which variant is currently selected.
const TName & GetName(void) const
Get the variant data.
bool IsSetFirst(void) const
Check if a value has been assigned to First data member.
const TStd & GetStd(void) const
Get the variant data.
bool IsStr(void) const
Check if variant Str is selected.
@ e_not_set
No variant selected.
bool IsPmid(void) const
Check if variant Pmid is selected.
const TMan & GetMan(void) const
Get the variant data.
const TPmid & GetPmid(void) const
Get the variant data.
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.
E_Choice Which(void) const
Which variant is currently selected.
const TGen & GetGen(void) const
Get the variant data.
TMuid GetMuid(void) const
Get the variant data.
const TBook & GetBook(void) const
Get the variant data.
@ e_Gen
general or generic unparsed
@ e_Proc
proceedings of a meeting
@ e_Equiv
to cite a variety of ways
@ e_Man
manuscript, thesis, or letter
bool IsSetAccession(void) const
Check if a value has been assigned to Accession data member.
const TSet & GetSet(void) const
Get the variant data.
bool IsSet(void) const
Check if variant Set is selected.
bool IsSetComment(void) const
any comment on this pub in context Check if a value has been assigned to Comment data member.
TRepr GetRepr(void) const
Get the Repr member data.
ERepr
representation class
const TInst & GetInst(void) const
Get the Inst member data.
const TComment & GetComment(void) const
Get the Comment member data.
TTech GetTech(void) const
Get the Tech member data.
const TEmbl & GetEmbl(void) const
Get the variant data.
bool IsSetPub(void) const
the citation(s) Check if a value has been assigned to Pub data member.
const TPub & GetPub(void) const
Get the Pub member data.
@ eRepr_virtual
no seq data
@ eTech_htgs_2
ordered High Throughput sequence contig
@ eTech_htgs_3
finished High Throughput sequence
@ eTech_htgs_1
unordered High Throughput sequence contig
@ eTech_htgs_0
single genomic reads for coordination
@ e_Embl
EMBL specific information.
@ e_Molinfo
info on the molecule and techniques
@ eMol_na
just a nucleic acid
constexpr auto sort(_Init &&init)
static wxString GetContext(const wxString &str, int pos)
#define FOR_EACH_PUB_ON_PUBEQUIV(Itr, Var)
#define FOR_EACH_PUB_ON_PUBDESC(Itr, Var)
FOR_EACH_PUB_ON_PUBDESC EDIT_EACH_PUB_ON_PUBDESC.
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)
#define IF_EXISTS_CLOSEST_MOLINFO(Cref, Var, Lvl)
IF_EXISTS_CLOSEST_MOLINFO.
#define FOR_EACH_SEQID_ON_BIOSEQ(Itr, Var)
FOR_EACH_SEQID_ON_BIOSEQ EDIT_EACH_SEQID_ON_BIOSEQ.
#define FOR_EACH_SEQENTRY_ON_SEQSET(Itr, Var)
FOR_EACH_SEQENTRY_ON_SEQSET EDIT_EACH_SEQENTRY_ON_SEQSET.
#define FOR_EACH_DESCRIPTOR_ON_SEQENTRY
bool s_GetDigits(const string &pages, string &digits)
static bool s_IsHtgInSep(const CSeq_entry &se)
static bool s_CitGenIsJustBackBoneIDNumber(const CCit_gen &gen)
static bool s_IsTSA_Contig(const CBioseq &seq)
static bool s_CuratedRefSeq(const string &accession)
static bool s_IsWgs_Contig(const CBioseq &seq)
static bool s_CuratedRefSeqLowerToWarning(const CBioseq &seq)
static bool s_IsRefSeqInSep(const CSeq_entry &se, CScope &scope)
bool IsElectronicJournal(const CCit_jour &journal)
static bool s_IsNoncuratedRefSeq(const CBioseq &seq)
static bool s_IsGpipe(const CBioseq &seq)
static bool IsInpress(const CCit_jour &jour)
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