*m_CurrentNode->m_BioseqSummary;
95 if(
NStr::Equal(taxname,
"uncultured organism") ||
96 NStr::Equal(taxname,
"uncultured microorganism") ||
167 returnbiosrc ?
HasLineage(biosrc,
"Bacteria") :
false;
173 returnbiosrc ?
HasLineage(biosrc,
"Viruses") :
false;
179 if(
Stats.empty()) {
195 if(sum.
_Ns>= 10) {
204 size_tq = sum.
_QS;
211 if(q > sum.
MinQ) {
268 switch(seq_data.
Which()) {
272vector<char>::const_iterator it = seq_data.
GetNcbi2na().
Get().begin();
273 unsigned char mask= 0xc0;
274 unsigned charshift = 6;
275 for(
size_t n= 0;
n<
len;
n++, sum.
_Pos++) {
276 unsigned charc = ((*it) &
mask) >> shift;
308vector<char>::const_iterator it = seq_data.
GetNcbi4na().
Get().begin();
309 unsigned char mask= 0xf0;
310 unsigned charshift = 4;
311 for(
size_t n= 0;
n<
len;
n++, sum.
_Pos++) {
312 unsigned charc = ((*it) &
mask) >> shift;
349 for(
size_t n= 0;
n<
len;
n++, sum.
_Pos++) {
384 for(
size_t n= 0;
n<
len;
n++, sum.
_Pos++) {
426 for(
auto id: bs.
GetId()) {
432 if(best_score > id->BaseBestRankScore()) {
445 switch(seq_iter.GetType()) {
447 CountNucleotides(seq_iter.GetData(), seq_iter.GetPosition(), seq_iter.GetLength(), summary);
451 if(summary.
First) {
452summary.
First=
false;
454summary.
Gaps+= seq_iter.GetLength();
458summary.
First=
false;
473 staticvector<string>
G;
478 G[
i] = (
str==
"unknown") ?
kEmptyStr: ((
str==
"extrachrom") ?
"extrachromosomal":
str);
489 size_t n= aa.find_last_of(
'-');
490 if(
n!= string::npos) {
491aa = aa.substr(
n+ 1);
501constexpr
ctll::fixed_stringlocus_tag_re =
"^[A-Za-z][0-9A-Za-z]{2,}_[0-9A-Za-z]+$";
505 return!ctre::match<locus_tag_re>(locus_tag);
513 for(
auto&
id: bioseq.
GetId()) {
542 for(; !IsBGPipe_is_bgpipe && user_desc_ci; ++user_desc_ci) {
556IsBGPipe_is_bgpipe =
true;
557 returnIsBGPipe_is_bgpipe;
559 returnIsBGPipe_is_bgpipe;
567 returngene ?
dynamic_cast<const CSeq_feat*
>(&*gene->m_Obj) :
nullptr;
620 for(
auto& it : feat.
GetQual()) {
635 for(
auto& it : feat.
GetXref()) {
636 if(it->IsSetData() && it->GetData().IsGene() && it->GetData().GetGene().IsSetPseudo() && it->GetData().GetGene().GetPseudo()) {
713 if(
r1.GetFrom() >=
r2.GetToOpen() ||
r2.GetFrom() >=
r1.GetToOpen()) {
759 for(
autonode =
m_CurrentNode; node; node = node->m_Parent) {
760 if(&*node->m_Obj == obj) {
778 for(
autonode =
m_CurrentNode; node; node = node->m_Parent) {
780 if(it != node->m_FeatureMap.end()) {
784 for(
auto& child : node->m_Children) {
798 for(
autonode =
m_CurrentNode; node; node = node->m_Parent) {
800 if(it != node->m_DescriptorMap.end()) {
819 returnret ? ret : ref.
m_Parent.GetPointer();
860 if(node->m_Ref->m_Text.empty()) {
865fixref = &*node->m_Ref;
884 if(node->m_Ref->m_Text.empty()) {
898 if(node->m_Ref->m_Text.empty()) {
910 for(
autonode =
m_CurrentNode; node; node = node->m_Parent) {
911 autoit = node->m_BiosourceMap.find(&biosrc);
912 if(it != node->m_BiosourceMap.end()) {
913 if(it->second->m_Ref->m_Text.empty()) {
914 if(it->second->m_Type ==
eSeqFeat) {
934 if(it->second->m_Ref->m_Text.empty()) {
935 if(it->second->m_Type ==
eSeqFeat) {
938 else if(it->second->m_Type ==
eSeqDesc) {
952 if(it->second->m_Ref->m_Text.empty()) {
953 if(it->second->m_Type ==
eSeqFeat) {
956 else if(it->second->m_Type ==
eSeqDesc) {
978 for(
auto n: testnames)
981 Parse(
object, filename);
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.
User-defined methods of the data storage class.
ncbi::TMaskedQueryRegions mask
@Auth_list.hpp User-defined methods of the data storage class.
const string & GetLineage(void) const
bool IsSetLineage(void) const
const CParseNode * GeneForFeature(const CParseNode &node)
string GetProdForFeature(const CSeq_feat &feat)
CSeqdesc_run GetAllSeqdesc()
void AddTest(eTestNames name) override
vector< const CSeq_feat * > m_Feat_RNAs
static bool HasLineage(const CBioSource &biosrc, const string &def_lineage, const string &type)
bool IsViral(const CBioSource *biosrc) const
CRef< CDiscrepancyObject > BiosourceObjRef(const CBioSource &biosrc, bool fix=false, const CObject *more=nullptr)
CRef< objects::CScope > m_Scope
CParseNode * FindNode(const CRefNode &obj)
CRef< CDiscrepancyObject > AuthorsObjRef(const CAuth_list &authors, bool fix=false, const CObject *more=nullptr)
TDiscrepancyCoreMap m_Tests
void Push(const CSerialObject &root, const string &fname) override
CRef< CParseNode > m_RootNode
CRef< CDiscrepancyObject > BioseqObjRef(EFixType fix=eFixNone, const CObject *more=nullptr)
const CPerson_id * GetPerson_id() const
CRef< CDiscrepancyObject > SeqFeatObjRef(const CSeq_feat &feat, EFixType fix=eFixNone, const CObject *more=nullptr)
static string GetGenomeName(unsigned n)
CConstRef< CSuspect_rule_set > GetOrganelleProductRules()
CRef< CParseNode > m_CurrentNode
vector< const CSeq_feat * > m_FeatAll
CRefNode * ContainingSet(CRefNode &ref)
static bool IsBadLocusTagFormat(string_view locus_tag)
vector< const CSeq_feat * > m_FeatRRNAs
objects::CScope & GetScope() const
vector< const CSeq_feat * > m_FeatCDS
CParseNode * FindLocalNode(const CParseNode &node, const CSeq_feat &feat) const
CRef< CDiscrepancyObject > StringObjRef(const CObject *fix=nullptr, const CObject *more=nullptr)
const CSeq_feat * GetGeneForFeature(const CSeq_feat &feat)
bool IsEukaryotic(const CBioSource *biosrc) const
const CBioseq & CurrentBioseq() const
vector< const CSeq_feat * > m_FeatGenes
const CSubmit_block * GetSubmit_block() const
void BuildSeqSummary(const CBioseq &bs, CSeqSummary &summary)
bool IsBacterial(const CBioSource *biosrc) const
vector< const CSeq_feat * > m_FeatMRNAs
void CollectFeature(const CSeq_feat &feat)
static bool IsOrganelle(const CBioSource *biosrc)
void SetSuspectRules(const string &name, bool read=true) override
CRef< CDiscrepancyObject > SubmitBlockObjRef(bool fix=false, const CObject *more=nullptr)
bool IsProkaryotic(const CBioSource *biosrc) const
friend class CDiscrepancyObject
CConstRef< CSuspect_rule_set > m_OrganelleProductRules
CRef< CDiscrepancyObject > SeqdescObjRef(const CSeqdesc &desc, const CObject *fix=nullptr, const CObject *more=nullptr)
CConstRef< CSuspect_rule_set > GetProductRules()
vector< const CSeq_feat * > m_FeatTRNAs
bool IsPseudo(const CSeq_feat &feat)
vector< const CSeq_feat * > m_FeatExons
void ParseAll(CParseNode &node)
CRef< CDiscrepancyObject > BioseqSetObjRef(bool fix=false, const CObject *more=nullptr)
CRef< CDiscrepancyProduct > GetProduct() override
CConstRef< CSuspect_rule_set > m_ProductRules
static bool IsUnculturedNonOrganelleName(const string &taxname)
vector< const CSeq_feat * > m_FeatIntrons
sequence::ECompare Compare(const CSeq_loc &loc1, const CSeq_loc &loc2) const
vector< const CSeq_feat * > m_FeatPseudo
static string GetAminoacidName(const CSeq_feat &feat)
string ProdForFeature(const CParseNode &node)
static bool IsSeqSet(EObjType n)
CRef< CDiscrepancyObject > PubdescObjRef(const CPubdesc &pubdesc, bool fix=false, const CObject *more=nullptr)
vector< const CSeq_feat * > m_FeatMisc
static string GetTextObjectDescription(const CSeq_feat &seq_feat, CScope &scope)
const string & GetLineage() const
@Pubdesc.hpp User-defined methods of the data storage class.
ESubtype GetSubtype(void) const
namespace ncbi::objects::
static TSeqPos Convert(const CSeq_data &in_seq, CSeq_data *out_seq, CSeq_data::E_Choice to_code, TSeqPos uBeginIdx=0, TSeqPos uLength=0, bool bAmbig=false, Uint4 seed=17734276)
Base class for all serializable objects.
CConstRef< CUser_field > GetFieldRef(const string &str, const string &delim=".", NStr::ECase use_case=NStr::eCase) const
CConstRef< objects::CSuspect_rule_set > GetProductRules(const string &name="")
CConstRef< objects::CSuspect_rule_set > GetOrganelleProductRules(const string &name="")
static void _QualityScore(CSeqSummary &sum)
static void sA(CSeqSummary &sum)
static void sN(CSeqSummary &sum)
static void sG(CSeqSummary &sum)
static void sT(CSeqSummary &sum)
static void CountNucleotides(const CSeq_data &seq_data, TSeqPos pos, TSeqPos len, CSeqSummary &sum)
static void sC(CSeqSummary &sum)
static void sZ(CSeqSummary &sum)
static void _notN(CSeqSummary &sum)
static const char * str(char *buf, int n)
unsigned int TSeqPos
Type for sequence locations and lengths.
const TPrim & Get(void) const
#define ENUM_METHOD_NAME(EnumName)
void GetLabel(string *label, ELabelType type=eDefault, TLabelFlags flags=fLabel_Default) const
Append a label for this Seq-id to the supplied string.
int BaseBestRankScore(void) const
string GetLabel(const CSeq_id &id)
@ eContent
Untagged human-readable accession or the like.
TRange GetTotalRange(void) const
@ fFGL_Content
Include its content if there is any.
sequence::ECompare Compare(const CSeq_loc &loc1, const CSeq_loc &loc2, CScope *scope)
Returns the sequence::ECompare containment relationship between CSeq_locs.
@ fCompareOverlapping
Check if seq-locs are overlapping.
@ eNoOverlap
CSeq_locs do not overlap or abut.
CConstRef< CSeq_feat > GetGeneForFeature(const CSeq_feat &feat, CScope &scope)
Finds gene for feature, but obeys SeqFeatXref directives.
SSeqMapSelector & SetFlags(TFlags flags)
Select segment type(s)
static CRef< CSeqMap > CreateSeqMapForBioseq(const CBioseq &seq)
@ eSeqData
real sequence data
@ eSeqRef
reference to Bioseq
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
void Reset(void)
Reset reference object.
#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 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 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.
@ eNocase
Case insensitive compare.
const TName & GetName(void) const
Get the Name member data.
bool IsSetName(void) const
Author, Primary or Secondary Check if a value has been assigned to Name data member.
TGenome GetGenome(void) const
Get the Genome member data.
bool IsSetGenome(void) const
Check if a value has been assigned to Genome data member.
bool IsSetPseudo(void) const
pseudogene Check if a value has been assigned to Pseudo data member.
TPseudo GetPseudo(void) const
Get the Pseudo member data.
const TStr & GetStr(void) const
Get the variant data.
const TData & GetData(void) const
Get the Data member data.
const TStr & GetStr(void) const
Get the variant data.
const TType & GetType(void) const
Get the Type member data.
ESource_location
Access to ESource_location's attributes (values, names) as defined in spec.
@ eSource_location_unknown
@ eSource_location_chromatophore
bool IsSetQual(void) const
qualifiers Check if a value has been assigned to Qual data member.
const TQual & GetQual(void) const
Get the Qual member data.
bool IsSetXref(void) const
cite other relevant features Check if a value has been assigned to Xref data member.
bool IsGene(void) const
Check if variant Gene is selected.
const TData & GetData(void) const
Get the Data member data.
TPseudo GetPseudo(void) const
Get the Pseudo member data.
bool IsSetPseudo(void) const
annotated on pseudogene? Check if a value has been assigned to Pseudo data member.
const TGene & GetGene(void) const
Get the variant data.
const TXref & GetXref(void) const
Get the Xref member data.
bool IsRna(void) const
Check if variant Rna is selected.
@ e_Other
for historical reasons, 'other' = 'refseq'
const TUser & GetUser(void) const
Get the variant data.
const TInst & GetInst(void) const
Get the Inst member data.
const TIupacna & GetIupacna(void) const
Get the variant data.
const TId & GetId(void) const
Get the Id member data.
TLength GetLength(void) const
Get the Length member data.
const TNcbi4na & GetNcbi4na(void) const
Get the variant data.
const TNcbi2na & GetNcbi2na(void) const
Get the variant data.
bool IsSetId(void) const
equivalent identifiers Check if a value has been assigned to Id data member.
E_Choice Which(void) const
Which variant is currently selected.
@ e_Ncbipna
nucleic acid probabilities
@ e_Ncbi2na
2 bit nucleic acid code
@ e_Iupacna
IUPAC 1 letter nuc acid code.
@ e_Ncbi8na
8 bit extended nucleic acid code
@ e_Ncbi4na
4 bit nucleic acid code
@ e_User
user defined object
const TContact & GetContact(void) const
Get the Contact member data.
const TSub & GetSub(void) const
Get the Sub member data.
bool IsSetSub(void) const
Check if a value has been assigned to Sub data member.
const TContact & GetContact(void) const
Get the Contact member data.
bool IsSetContact(void) const
who to contact Check if a value has been assigned to Contact data member.
bool IsSetContact(void) const
WARNING: this will replace the above Check if a value has been assigned to Contact data member.
static string GetProductName(const CProt_ref &prot)
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
Utility macros and typedefs for exploring NCBI objects from seq.asn.
#define FIELD_IS_SET_AND_IS(Var, Fld, Chs)
FIELD_IS_SET_AND_IS base macro.
static const sljit_gpr r1
static const sljit_gpr r2
CConstRef< CSerialObject > m_Obj
map< const CSeq_feat *, CParseNode * > m_FeatureMap
const CParseNode * m_Gene
map< const CSeqdesc *, CParseNode * > m_DescriptorMap
CRef< CRefNode > m_Parent
vector< pair< size_t, size_t > > NRuns
size_t _CBposition[WINDOW_SIZE]
static const size_t WINDOW_SIZE
size_t _CBscore[WINDOW_SIZE]
Selector used in CSeqMap methods returning iterators.
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