69 string separators(
"( \t\r\n" );
70 const string& legal_path_chars = kLegalPathChars.Get();
75 if ( sentence ==
"" || pos > sentence.length() - 1 ) {
78 if ( string::npos != separators.find( sentence[ pos ] ) ) {
88 if ( (pos < 1) || (sentence[ pos-1 ] !=
'/') ) {
96 string::size_type left_edge = sentence.find_last_of( separators, pos-1 );
97 if ( left_edge == string::npos ) {
107 static const char* sc_ProtocolSpecifiers[] = {
113 size_t colon = sentence.find(
':', left_edge );
114 if ( colon == string::npos ) {
117 string strMaybeUrl = sentence.substr( left_edge, colon - left_edge + 1 );
118 if ( vProtocolSpecifiers.find( strMaybeUrl ) == vProtocolSpecifiers.end() ) {
123 if ( string::npos == legal_path_chars.find( sentence[ pos ] ) ) {
127 for ( ++pos; sentence[ pos ] != 0; ++pos ) {
128 if ( string::npos == legal_path_chars.find( sentence[ pos ] ) ) {
129 return ( sentence[ pos ] ==
'/' );
158 SIZE_TYPE start = 0, tilde, length = s.length();
160 tilde = s.find(
'~', start);
167 while ( (start < length) && (tilde = s.find(
'~', start)) !=
NPOS ) {
168 result.append(s, start, tilde - start);
169 char next = (tilde + 1) < length ? s[tilde + 1] : 0;
172 if ( (tilde + 1 < length &&
isdigit((
unsigned char)
next) ) ||
173 (tilde + 2 < length && (
next ==
' ' ||
next ==
'(') &&
174 isdigit((
unsigned char) s[tilde + 2]))) {
183 if ( tilde + 1 < length && s[tilde + 1] ==
'~' ) {
193 if ( tilde + 1 < length && s[tilde + 1] ==
'~' ) {
199 char prevChar = ( tilde >= 1 ? s[tilde - 1] :
'\0' );
201 if(
' ' == prevChar ||
';' == prevChar ) {
211 if (tilde > 0 && s[tilde - 1] ==
'`') {
221 if (s[start] ==
' ' &&
s_RunOfStars(s, start+1, length)) {
233 if (start < length) {
242 replace(
str.begin(),
str.end(),
'\"',
'\'');
261 auto orig_len =
str.length();
264 auto this_len =
str.length();
266 while (
str.length() != this_len) {
267 this_len =
str.length();
276 string::iterator end =
str.end();
277 string::iterator it =
str.begin();
278 string::iterator new_str = it;
281 if ( (*it ==
' ') || (*it ==
'\t') || (*it ==
'(') ) {
282 for (++it; it != end && (*it ==
' ' || *it ==
'\t'); ++it)
284 if (it != end && (*it ==
')' || *it ==
',')) {
285 if( *(new_str - 1) !=
'(' ) {
293 str.erase(new_str,
str.end());
295 return (orig_len !=
str.length());
316 const string::size_type
len =
str.length();
318 if( keep_ellipsis ) {
343 if (str.length() - pos2 > 3) {
351 else if (pos2 < pos) {
354 } else if (pos2 < pos) {
357 if (pos < str.size() - 1) {
379 size_t pos =
str.find_last_not_of(
" \t~.\n");
391 size_t end =
str.length() - 1;
407 return isgraph((
unsigned char)c) != 0;
424 string::iterator start_iter =
str.begin();
425 if( trim_beginning ) {
428 if(
str.end() == start_iter ) {
433 string::iterator end_iter =
str.end();
435 string::reverse_iterator rev_iter = find_if(
str.rbegin(),
str.rend(),
CIsGraph() );
436 end_iter =
str.begin() + (
str.rend() - rev_iter );
438 if(
str.begin() == end_iter ) {
445 newstr.reserve( end_iter - start_iter );
452 char last_ch_was_printable =
true;
453 for( string::iterator iter = start_iter; iter < end_iter; ++iter ) {
454 const char ch = *iter;
458 last_ch_was_printable =
true;
462 if( last_ch_was_printable ) {
465 last_ch_was_printable =
false;
548 bool isPeriod =
false;
549 bool isTilde =
false;
550 int start_of_junk_pos = (
int)
str.length() - 1;
551 for( ; start_of_junk_pos >= 0 ; --start_of_junk_pos ) {
552 const char ch =
str[start_of_junk_pos];
553 if (ch <=
' ' || ch ==
'.' || ch ==
',' || ch ==
'~' || ch ==
';') {
557 isPeriod = (isPeriod || ch ==
'.');
558 isTilde = (isTilde || ch ==
'~');
566 if( start_of_junk_pos < 0 ) {
567 start_of_junk_pos = 0;
572 if( start_of_junk_pos < (
int)
str.length() &&
str[start_of_junk_pos] ==
';' ) {
574 static const int kMaxCharsToLookAt = 20;
577 int amp_iter = (start_of_junk_pos - 1);
578 for( ; amp_iter >= 0 && ((start_of_junk_pos - amp_iter) < kMaxCharsToLookAt); --amp_iter ) {
579 const char ch =
str[amp_iter];
580 if(
isalnum(ch) || ch ==
'#' ) {
582 }
else if( ch ==
'&' ) {
593 bool changed =
false;
596 if ( start_of_junk_pos < (
int)
str.length() ) {
599 const char * suffix =
"";
601 const int chars_in_junk = ( (
int)
str.length() - start_of_junk_pos );
607 const bool putEllipsis = ( allow_ellipsis && (chars_in_junk >= 3) &&
608 str[start_of_junk_pos+1] ==
'.' &&
str[start_of_junk_pos+2] ==
'.' );
610 suffix = ( putEllipsis ?
"..." :
"." );
611 }
else if (isTilde ) {
616 if (
str[start_of_junk_pos] ==
'~' ) {
617 const bool doubleTilde = ( (chars_in_junk >= 2) &&
str[start_of_junk_pos+1] ==
'~' );
618 suffix = ( doubleTilde ?
"~~" :
"~" );
621 if( suffix[0] !=
'\0' ) {
622 if( 0 !=
str.compare( start_of_junk_pos, INT_MAX, suffix) ) {
623 str.erase( start_of_junk_pos );
627 }
else if ( start_of_junk_pos < (
int)
str.length() ) {
628 str.erase( start_of_junk_pos );
634 string::iterator input_iter =
str.begin();
635 while ( input_iter !=
str.end() && *input_iter <=
' ') {
638 if( input_iter !=
str.begin() ) {
639 str.erase(
str.begin(), input_iter );
721 bool isPeriod =
false;
722 bool isTilde =
false;
723 size_t start_of_junk_pos = 0;
724 for (
size_t len =
str.length();
len && start_of_junk_pos == 0;
len--)
727 if (ch <=
' ') ch =
' ';
742 start_of_junk_pos =
len;
749 if (start_of_junk_pos <
str.length() &&
str[start_of_junk_pos] ==
';') {
751 static const int kMaxCharsToLookAt = 20;
754 int amp_iter = ((
int)start_of_junk_pos - 1);
755 for (; amp_iter >= 0 && ((start_of_junk_pos - amp_iter) < kMaxCharsToLookAt); --amp_iter) {
756 const unsigned char ch =
str[amp_iter];
757 if (
isalnum(ch) || ch ==
'#') {
760 else if (ch ==
'&') {
776 if (start_of_junk_pos <
str.length()) {
778 const int chars_in_junk = (
int)(
str.length() - start_of_junk_pos);
784 const bool putEllipsis = (allow_ellipsis && (chars_in_junk >= 3) &&
785 str[start_of_junk_pos + 1] ==
'.' &&
str[start_of_junk_pos + 2] ==
'.');
787 suffix = (putEllipsis ?
"..." :
".");
794 if (
str[start_of_junk_pos] ==
'~') {
795 const bool doubleTilde = ((chars_in_junk >= 2) &&
str[start_of_junk_pos + 1] ==
'~');
796 suffix = (doubleTilde ?
"~~" :
"~");
800 const char* ptr =
str.data();
801 size_t len = start_of_junk_pos;
802 while (
len && *ptr <=
' ')
812 #define twochars(a,b) Uint2((a) << 8 | (b))
813 #define twocommas twochars(',',',')
814 #define twospaces twochars(' ',' ')
815 #define twosemicolons twochars(';',';')
816 #define space_comma twochars(' ',',')
817 #define space_bracket twochars(' ',')')
818 #define bracket_space twochars('(',' ')
819 #define space_semicolon twochars(' ',';')
820 #define comma_space twochars(',',' ')
821 #define semicolon_space twochars(';',' ')
825 size_t left = instr.
size();
827 const char*
in = instr.
data();
830 while (left && *
in ==
' ')
836 while (left &&
in[left - 1] ==
' ')
843 if (left < 1)
return;
846 char*
out = (
char*)dest.c_str();
852 Uint2 two_chars = curr;
857 two_chars =
Uint2((two_chars << 8) |
next);
879 while ((
next ==
' ' ||
next ==
',') && left > 0) {
890 while ((
next ==
' ' ||
next ==
';') && left > 0) {
900 while ((
next ==
' ' ||
next ==
',') && left > 0) {
910 while ((
next ==
' ' ||
next ==
';') && left > 0) {
928 if (curr > 0 && curr !=
' ') {
932 dest.resize(
out - dest.c_str());
936 struct CleanAndCompress_unit_test
938 CleanAndCompress_unit_test()
954 cout << s <<
"--->" <<
str <<
'.' << endl;
958 CleanAndCompress_unit_test
t;
1018 struct CJunkUnitTest
1029 test(
" aaa bbb.....",
true);
1030 test(
" aaa bbb.....",
false);
1031 test(
" aaa bbb~~~~~",
true);
1032 test(
" aaa bbb,,,,,",
true);
1033 test(
" aaa bbb;;;;;;",
true);
1037 static CJunkUnitTest c;
1045 return (pos > 0 && pos <=
str.size()) ?
1050 void JoinString(
string& to,
const string& prefix,
const string&
str,
bool noRedundancy)
1052 if (
str.empty() ) {
1075 to += prefix.substr(1);
1083 string JoinString(
const list<string>&
l,
const string& delim,
bool noRedundancy)
1104 list<string>::const_iterator it =
l.begin();
1105 while ( ++it !=
l.end() ) {
1210 size_t pos = accn.find(
'.');
1214 size_t num_digis = 0;
1215 for (++pos; pos < accn.size(); ++pos) {
1216 if (
isdigit((
unsigned char) accn[pos])) {
1223 return (num_digis >= 1);
1242 static const char* regular_format =
"%{%2D%|01%}-%{%3N%|JUN%}-%Y";
1243 static const char* cit_sub_format =
"%{%2D%|??%}-%{%3N%|???%}-%{%4Y%|/???%}";
1244 static const char* patent_format =
"%{%2D%|01%}-%{%3N%|JAN%}-%Y";
1253 str.append(date_str);
1277 CDelta_ext::Tdata::const_iterator curr = segs.begin();
1278 CDelta_ext::Tdata::const_iterator end = segs.end();
1279 CDelta_ext::Tdata::const_iterator
next;
1280 for ( ; curr != end; curr =
next ) {
1285 size_t from =
len + 1;
1286 switch ( (*curr)->Which() ) {
1292 text <<
"* " << from <<
' ' <<
len
1293 <<
" gap of unknown length~";
1298 text <<
"* " << setw(8) << from <<
' ' << setw(8) <<
len
1299 <<
": contig of " << tlen <<
" bp in length~";
1310 while (
next != end && (*next)->IsLiteral() &&
1311 (*next)->GetLiteral().CanGetSeq_data() &&
1316 lit_len += next_len;
1321 text <<
"* " << setw(8) << from <<
' ' << setw(8) <<
len
1322 <<
": contig of " << lit_len <<
" bp in length~";
1328 if ( fuzz.
IsLim() &&
1333 text <<
"* gap of unknown length~";
1335 text <<
"* " << setw(8) << from <<
' ' << setw(8) <<
len
1336 <<
": gap of unknown length~";
1341 text <<
"* " << setw(8) << from <<
" " << setw(8) <<
len
1342 <<
": gap of " << lit_len <<
" bp~";
1369 return kTS_concept_trans.Get();
1372 return kTS_seq_pept.Get();
1375 return kTS_both.Get();
1378 return kTS_seq_pept_overlap.Get();
1381 return kTS_seq_pept_homol.Get();
1384 return kTS_concept_trans_a.Get();
1415 switch (
data.Which() ) {
1451 if( moduop->
HasField(
"Contig Name") ) {
1452 ufp = &(moduop->
GetField(
"Contig Name"));
1457 if( moduop->
HasField(
"Assembly") ) {
1458 ufp = &(moduop->
GetField(
"Assembly"));
1466 if (
label !=
"accession")
continue;
1469 const string& accn =
data.GetStr();
1476 if ( moduop->
HasField(
"Method") ) {
1477 ufp = &(moduop->
GetField(
"Method"));
1482 if ( moduop->
HasField(
"Counts") ) {
1483 ufp = &(moduop->
GetField(
"Counts"));
1497 if( moduop->
HasField(
"Contig Gi") ) {
1498 ufp = &(moduop->
GetField(
"Contig Gi"));
1503 if( moduop->
HasField(
"Contig Span") ) {
1504 ufp = &(moduop->
GetField(
"Contig Span"));
1509 me.
span.first = int_list[0];
1510 me.
span.second = int_list[1];
1517 if( me.
gi >
ZERO_GI && me.
name.find(
'.') == string::npos ) {
1521 if( accver_seq_id ) {
1553 "---",
"Ala",
"Asx",
"Cys",
"Asp",
"Glu",
"Phe",
"Gly",
"His",
"Ile",
1554 "Lys",
"Leu",
"Met",
"Asn",
"Pro",
"Gln",
"Arg",
"Ser",
"Thr",
"Val",
1555 "Trp",
"OTHER",
"Tyr",
"Glx",
"Sec",
"TERM",
"Pyl",
"Xle"
1562 aa = (
unsigned char)
1585 if (possible_mrna) {
1589 if (possible_mrna && possible_prot) {
1600 if (possible_prot) {
1605 if (possible_mrna && possible_prot) {
1637 "https://www.ncbi.nlm.nih.gov/nuccore/";
1639 "https://www.ncbi.nlm.nih.gov/protein/";
1642 "https://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?val=";
1645 "https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?";
1647 "https://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi?mode=c#SG";
1649 "https://www.ncbi.nlm.nih.gov/pubmed/";
1651 "https://enzyme.expasy.org/EC/";
1653 "https://www.ncbi.nlm.nih.gov/sites/entrez?db=Nucleotide&cmd=Search&term=";
1655 "https://www.ncbi.nlm.nih.gov/bioproject/";
1657 "https://www.ncbi.nlm.nih.gov/projects/Sequin/latlonview.html";
1659 "http://amigo.geneontology.org/amigo/term/GO:";
1661 "http://www.geneontology.org/cgi-bin/references.cgi#GO_REF:";
1663 "https://ppubs.uspto.gov/pubwebapp/external.html?q=";
1665 "https://www.uniprot.org/uniprot/";
1668 "https://www.ncbi.nlm.nih.gov/genome/annotation_euk/process/";
1674 template<
typename _T>
1675 bool s_ShouldWeEscapeAmpersand(
1677 const _T &str_iter_end)
1687 if (str_iter != str_iter_end) {
1688 switch (*str_iter) {
1692 if (str_iter != str_iter_end && *str_iter ==
't') {
1694 if (str_iter != str_iter_end && *str_iter ==
';') {
1701 if (str_iter != str_iter_end && *str_iter ==
'm') {
1703 if (str_iter != str_iter_end && *str_iter ==
'p') {
1705 if (str_iter != str_iter_end && *str_iter ==
';') {
1713 if (str_iter != str_iter_end && *str_iter ==
'u') {
1715 if (str_iter != str_iter_end && *str_iter ==
'o') {
1717 if (str_iter != str_iter_end && *str_iter ==
't') {
1719 if (str_iter != str_iter_end && *str_iter ==
';') {
1736 template<
typename _T>
1739 const _T &str_iter_end)
1742 static const char* possible_tag_starts[] = {
1748 static const size_t num_possible_tag_starts =
1749 (
sizeof(possible_tag_starts) /
sizeof(possible_tag_starts[0]));
1752 for (
int possible_str_idx = 0; possible_str_idx < num_possible_tag_starts; ++possible_str_idx) {
1753 const string expected_str = possible_tag_starts[possible_str_idx];
1755 string::size_type idx = 0;
1756 _T check_str_iter = str_iter;
1757 for (; check_str_iter != str_iter_end && idx < expected_str.length(); ++idx, ++check_str_iter) {
1758 if (*check_str_iter != expected_str[idx]) {
1763 if (idx == expected_str.length()) {
1776 bool changes_made =
false;
1778 bool in_tag =
false;
1780 for (; idx <
str.length(); ++idx) {
1792 changes_made =
true;
1798 return changes_made;
1808 result.reserve(1 + (
int)((
double)
str.length() * 1.1));
1821 bool in_html_tag =
false;
1824 if (!in_html_tag && *str_iter ==
'<' && s_IsTagStart(str_iter,
str.end())) {
1831 switch (*str_iter) {
1835 if (s_ShouldWeEscapeAmpersand(str_iter,
str.end())) {
1848 switch (*str_iter) {
1862 if (in_html_tag && *str_iter ==
'>') {
1865 in_html_tag =
false;
1882 static const char* bad_html_strings[] = {
1883 "<script",
"<object",
"<applet",
"<embed",
"<form",
1884 "javascript:",
"vbscript:"
1889 if( ! fsa->IsPrimed() ) {
1890 for(
size_t ii = 0; ii <
ArraySize(bad_html_strings); ++ii ) {
1891 fsa->AddWord( bad_html_strings[ii] );
1897 int current_state = 0;
1898 for (
SIZE_TYPE str_idx = 0 ; str_idx <
str.length(); ++str_idx) {
1899 const char ch =
str[str_idx];
1900 int next_state = fsa->GetNextState (current_state, ch);
1901 if (fsa->IsMatchFound (next_state)) {
1904 current_state = next_state;
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.
void GetDate(string *label, bool year_only=false) const
Append a standardized string representation of the date to the label.
bool operator()(const char c)
CNcbiOstrstreamToString class helps convert CNcbiOstrstream to a string Sample usage:
static TIndex GetMapToIndex(CSeq_data::E_Choice from_type, CSeq_data::E_Choice to_type, TIndex from_idx)
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
bool HasField(const string &str, const string &delim=".", NStr::ECase use_case=NStr::eCase) const
Verify that a named field exists.
bool HasField(const string &str, const string &delim=".", NStr::ECase use_case=NStr::eCase) const
Verify that a named field exists.
const CUser_field & GetField(const string &str, const string &delim=".", NStr::ECase use_case=NStr::eCase) const
Access a named field in this user object.
Include a standard set of the NCBI C++ Toolkit most basic headers.
std::ofstream out("events_result.xml")
main entry point for tests
#define test(a, b, c, d, e)
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
static const char * str(char *buf, int n)
Utility macros and typedefs for exploring NCBI objects from general.asn.
#define GI_FROM(T, value)
constexpr size_t ArraySize(const Element(&)[Size])
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
static EAccessionInfo IdentifyAccession(const CTempString &accession, TParseFlags flags=fParse_AnyRaw)
Deduces information from a bare accession a la WHICH_db_accession; may report false negatives on prop...
CConstRef< CSeq_id > GetSeqIdOrNull(void) const
static CSeq_id_Handle GetGiHandle(TGi gi)
Faster way to create a handle for a gi.
const CTextseq_id * GetTextseq_Id(void) const
Return embedded CTextseq_id, if any.
TSeqPos GetLength(const CSeq_id &id, CScope *scope)
Get sequence length if scope not null, else return max possible TSeqPos.
const CBioseq * GetNucleotideParent(const CBioseq &product, CScope *scope)
Get the encoding nucleotide sequnce of a protein.
CSeq_id_Handle GetAccVer(const CSeq_id_Handle &idh, TGetFlags flags=0)
Get accession.version Seq-id Returns null CSeq_id_Handle if the sequence is not found or if it doesn'...
static CRef< CObjectManager > GetInstance(void)
Return the existing object manager or create one.
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.
const TInst_Ext & GetInst_Ext(void) const
bool IsSetInst_Ext(void) const
TInst_Mol GetInst_Mol(void) const
CBioseq_Handle GetBioseqHandle(const CSeq_id &id) const
Get Bioseq handle from the TSE of this Seq-entry.
bool IsSetInst(void) const
bool IsSetInst_Repr(void) const
TInst_Repr GetInst_Repr(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
void Reset(void)
Reset reference object.
bool NotEmpty(void) const THROWS_NONE
Check if CConstRef is not empty – pointing to an object and has a non-null value.
uint16_t Uint2
2-byte (16-bit) unsigned integer
#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.
NCBI_NS_STD::string::size_type SIZE_TYPE
static bool EndsWith(const CTempString str, const CTempString end, ECase use_case=eCase)
Check if a string ends with a specified suffix value.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static 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.
const char * data(void) const
Return a pointer to the array represented.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
size_type length(void) const
Return the length of the represented array.
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.
static string & ToUpper(string &str)
Convert string to upper case – string& version.
size_type size(void) const
Return the length of the represented array.
#define NCBI_XOBJEDIT_EXPORT
static const char label[]
const TStr & GetStr(void) const
Get the variant data.
bool IsStr(void) const
Check if variant Str is selected.
bool CanGetType(void) const
Check if it is safe to call GetType method.
bool IsLim(void) const
Check if variant Lim is selected.
const TData & GetData(void) const
Get the Data member data.
bool CanGetData(void) const
Check if it is safe to call GetData method.
const TFields & GetFields(void) const
Get the variant data.
vector< CRef< CUser_field > > TFields
TLim GetLim(void) const
Get the variant data.
bool IsFields(void) const
Check if variant Fields is selected.
bool IsInt(void) const
Check if variant Int is selected.
bool IsStr(void) const
Check if variant Str is selected.
vector< CRef< CUser_object > > TObjects
bool IsSetLabel(void) const
field label Check if a value has been assigned to Label data member.
const TStr & GetStr(void) const
Get the variant data.
bool IsSetNum(void) const
required for strs, ints, reals, oss Check if a value has been assigned to Num data member.
TInt GetInt(void) const
Get the variant data.
bool IsInts(void) const
Check if variant Ints is selected.
const TData & GetData(void) const
Get the Data member data.
const TLabel & GetLabel(void) const
Get the Label member data.
const TType & GetType(void) const
Get the Type member data.
bool IsSetData(void) const
Check if a value has been assigned to Data data member.
vector< CRef< CUser_field > > TData
const TInts & GetInts(void) const
Get the variant data.
TNum GetNum(void) const
Get the Num member data.
@ e_Object
for using other definitions
bool IsSetAccession(void) const
Check if a value has been assigned to Accession data member.
TVersion GetVersion(void) const
Get the Version member data.
bool IsNull(void) const
Check if variant Null is selected.
bool IsSetVersion(void) const
Check if a value has been assigned to Version data member.
const TAccession & GetAccession(void) const
Get the Accession member data.
TLength GetLength(void) const
Get the Length member data.
bool CanGetLength(void) const
Check if it is safe to call GetLength method.
const TFuzz & GetFuzz(void) const
Get the Fuzz member data.
bool IsDelta(void) const
Check if variant Delta is selected.
const TDelta & GetDelta(void) const
Get the variant data.
bool CanGetFuzz(void) const
Check if it is safe to call GetFuzz method.
bool CanGetSeq_data(void) const
Check if it is safe to call GetSeq_data method.
const Tdata & Get(void) const
Get the member data.
list< CRef< CDelta_seq > > Tdata
const TSeq_data & GetSeq_data(void) const
Get the Seq_data member data.
E_Choice Which(void) const
Which variant is currently selected.
@ eRepr_delta
sequence made by changes (delta) to others
@ eTech_both
concept transl. w/ partial pept. seq.
@ eTech_seq_pept_homol
sequenced peptide, ordered by homology
@ eTech_seq_pept_overlap
sequenced peptide, ordered by overlap
@ eTech_concept_trans
conceptual translation
@ eTech_seq_pept
peptide was sequenced
@ eTech_concept_trans_a
conceptual transl. supplied by author
@ e_Ncbieaa
extended ASCII 1 letter aa codes
@ e_Ncbistdaa
consecutive codes for std aas
@ e_User
user defined object
@ e_Literal
a piece of sequence
@ e_Loc
point to a sequence
unsigned int
A callback function used to compare two keys in a database.
static void text(MDB_val *v)
std::istream & in(std::istream &in_, double &x_)
const char * strLinkBaseGeneOntologyRef
bool s_IsModelEvidanceUop(const CUser_object &uo)
const char * strLinkBaseGenomePrj
const char * strLinkBaseProt
bool StripSpaces(string &str)
const char * strLinkBaseNucSearch
void TryToSanitizeHtml(string &str)
bool RemovePeriodFromEnd(string &str, bool keep_ellipsis)
SAFE_CONST_STATIC_STRING(kLegalPathChars, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-.")
const char * strLinkBaseNuc
const char * strLinkBaseEntrezViewer
const char * strLinkBaseTaxonomy
const char * strLinkBaseGeneOntology
void TryToSanitizeHtmlList(std::list< std::string > &strs)
const CUser_object * s_FindModelEvidanceUop(const CUser_object &uo)
static bool s_IsWholeWord(const string &str, size_t pos)
void ExpandTildes(string &s, ETildeStyle style)
void DateToString(const CDate &date, string &str, EDateToString format_choice)
void TrimSpaces(string &str, size_t indent)
void JoinString(string &to, const string &prefix, const string &str, bool noRedundancy)
const char * strLinkBaseLatLon
const char * strLinkBaseTransTable
void GetDeltaSeqSummary(const CBioseq_Handle &seq, SDeltaSeqSummary &summary)
bool TrimSpacesAndJunkFromEnds(string &str, bool allow_ellipsis)
bool IsPartOfUrl(const string &sentence, size_t pos)
bool ConvertQuotesNotInHTMLTags(string &str)
bool IsValidAccession(const string &accn, EAccValFlag flag)
const char * GetAAName(unsigned char aa, bool is_ascii)
const char * strLinkBasePubmed
const char * strLinkBaseUniProt
bool CommentHasSuspiciousHtml(const string &str)
void AddPeriod(string &str)
static const char * kAANames[]
string & CompressSpaces(string &str, const bool trim_beginning, const bool trim_end)
bool s_GetModelEvidance(const CBioseq_Handle &bsh, SModelEvidance &me)
const string & GetTechString(int tech)
void CleanAndCompress(string &dest, const CTempString &instr)
EResolveOrder GetResolveOrder(CScope &scope, const CSeq_id_Handle &mrna, const CSeq_id_Handle &prot, CBioseq_Handle &mrna_bsh, CBioseq_Handle &prot_bsh)
const char * strLinkBaseUSPTO
static bool s_IsValidDotVersion(const string &accn)
bool GetModelEvidance(const CBioseq_Handle &bsh, SModelEvidance &me)
static bool s_RunOfStars(string &s, SIZE_TYPE start, SIZE_TYPE length)
void ConvertQuotes(string &str)
const char * strLinkBaseExpasy
static SLJIT_INLINE sljit_ins l(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
#define DEFINE_STATIC_ARRAY_MAP_WITH_COPY(Type, Var, Array)