NCBI C++ ToolKit
Macros | Enumerations | Functions | Variables
xgbfeat.cpp File Reference
#include <ncbi_pch.hpp>
#include <objects/seqfeat/SeqFeatData.hpp>
#include <objtools/cleanup/cleanup.hpp>
#include "ftacpp.hpp"
#include "ftaerr.hpp"
#include "xgbfeat.h"
+ Include dependency graph for xgbfeat.cpp:

Go to the source code of this file.

Go to the SVN repository for this file.

Macros

#define THIS_FILE   "xgbfeat.cpp"
 
#define THIS_MODULE   this_module
 
#define ERR_FEATURE   1, 0
 
#define ERR_FEATURE_UnknownFeatureKey   1, 1
 
#define ERR_FEATURE_MissManQual   1, 2
 
#define ERR_FEATURE_QualWrongThisFeat   1, 3
 
#define ERR_FEATURE_FeatureKeyReplaced   1, 4
 
#define ERR_FEATURE_LocationParsing   1, 5
 
#define ERR_FEATURE_IllegalFormat   1, 6
 
#define ERR_QUALIFIER   2, 0
 
#define ERR_QUALIFIER_InvalidDataFormat   2, 1
 
#define ERR_QUALIFIER_Too_many_tokens   2, 2
 
#define ERR_QUALIFIER_MultiValue   2, 3
 
#define ERR_QUALIFIER_UnknownSpelling   2, 4
 
#define ERR_QUALIFIER_Xtratext   2, 5
 
#define ERR_QUALIFIER_SeqPosComma   2, 6
 
#define ERR_QUALIFIER_Pos   2, 7
 
#define ERR_QUALIFIER_EmptyNote   2, 8
 
#define ERR_QUALIFIER_NoteEmbeddedQual   2, 9
 
#define ERR_QUALIFIER_EmbeddedQual   2, 10
 
#define ERR_QUALIFIER_AA   2, 11
 
#define ERR_QUALIFIER_Seq   2, 12
 
#define ERR_QUALIFIER_BadECnum   2, 13
 
#define ERR_QUALIFIER_Cons_splice   2, 14
 
#define ParFlat_Stoken_type   1
 
#define ParFlat_BracketInt_type   2
 
#define ParFlat_Integer_type   3
 
#define ParFlat_Number_type   4
 
#define ParFlat_SPLIT_IGNORE   4
 

Enumerations

enum  ETokenClass {
  eClass_pos_aa = 1 , eClass_text , eClass_bracket_int , eClass_seq_aa ,
  eClass_int_or , eClass_site , eClass_L_R_B , eClass_ecnum ,
  eClass_exper , eClass_none , eClass_token , eClass_int ,
  eClass_rpt , eClass_flabel_base , eClass_flabel_dbname , eClass_note ,
  eClass_number , eClass_unknown
}
 

Functions

 USING_SCOPE (objects)
 
static int SplitMultiValQual (TQualVector &quals)
 
static int GBQualSemanticValid (TQualVector &quals, bool error_msgs, bool perform_corrections)
 
static int CkQualPosaa (CGb_qual &cur, bool error_msgs)
 
static int CkQualNote (CGb_qual &cur, bool error_msgs, bool perform_corrections)
 
static int CkQualText (CGb_qual &cur, bool *has_embedded, bool from_note, bool error_msgs, bool perform_corrections)
 
static int CkQualTokenType (CGb_qual &cur, bool error_msgs, Uint1 type)
 
static int CkQualSeqaa (CGb_qual &cur, bool error_msgs)
 
static int CkQualMatchToken (CGb_qual &cur, bool error_msgs, const Char *array_string[], Int2 totalstr)
 
static int CkQualSite (CGb_qual &cur, bool error_msgs)
 
static int CkQualEcnum (CGb_qual &cur, bool error_msgs, bool perform_corrections)
 
static const CharCkBracketType (const Char *str)
 
static const CharCkNumberType (const Char *str)
 
static const CharCkLabelType (const Char *str)
 
static Int2 GBQualSplit (const Char *qual)
 
int XGBFeatKeyQualValid (CSeqFeatData::ESubtype subtype, TQualVector &quals, bool error_msgs, bool perform_corrections)
 
static ETokenClass GetQualifierClass (CSeqFeatData::EQualifier qual_type)
 
static int CkQualPosSeqaa (CGb_qual &cur, bool error_msgs, string &aa, const Char *eptr)
 
static bool ScanEmbedQual (const Char *value)
 

Variables

static const Charthis_module = "validatr"
 
const CharGBQual_names_split_ignore [4]
 
const CharParFlat_IntOrString [] = { "1", "2", "3" }
 
const CharParFlat_LRBString [] = { "LEFT", "RIGHT", "BOTH" }
 
const CharParFlat_ExpString []
 
const CharParFlat_RptString []
 

Macro Definition Documentation

◆ ERR_FEATURE

#define ERR_FEATURE   1, 0

Definition at line 36 of file xgbfeat.cpp.

◆ ERR_FEATURE_FeatureKeyReplaced

#define ERR_FEATURE_FeatureKeyReplaced   1, 4

Definition at line 40 of file xgbfeat.cpp.

◆ ERR_FEATURE_IllegalFormat

#define ERR_FEATURE_IllegalFormat   1, 6

Definition at line 42 of file xgbfeat.cpp.

◆ ERR_FEATURE_LocationParsing

#define ERR_FEATURE_LocationParsing   1, 5

Definition at line 41 of file xgbfeat.cpp.

◆ ERR_FEATURE_MissManQual

#define ERR_FEATURE_MissManQual   1, 2

Definition at line 38 of file xgbfeat.cpp.

◆ ERR_FEATURE_QualWrongThisFeat

#define ERR_FEATURE_QualWrongThisFeat   1, 3

Definition at line 39 of file xgbfeat.cpp.

◆ ERR_FEATURE_UnknownFeatureKey

#define ERR_FEATURE_UnknownFeatureKey   1, 1

Definition at line 37 of file xgbfeat.cpp.

◆ ERR_QUALIFIER

#define ERR_QUALIFIER   2, 0

Definition at line 43 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_AA

#define ERR_QUALIFIER_AA   2, 11

Definition at line 54 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_BadECnum

#define ERR_QUALIFIER_BadECnum   2, 13

Definition at line 56 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_Cons_splice

#define ERR_QUALIFIER_Cons_splice   2, 14

Definition at line 57 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_EmbeddedQual

#define ERR_QUALIFIER_EmbeddedQual   2, 10

Definition at line 53 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_EmptyNote

#define ERR_QUALIFIER_EmptyNote   2, 8

Definition at line 51 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_InvalidDataFormat

#define ERR_QUALIFIER_InvalidDataFormat   2, 1

Definition at line 44 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_MultiValue

#define ERR_QUALIFIER_MultiValue   2, 3

Definition at line 46 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_NoteEmbeddedQual

#define ERR_QUALIFIER_NoteEmbeddedQual   2, 9

Definition at line 52 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_Pos

#define ERR_QUALIFIER_Pos   2, 7

Definition at line 50 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_Seq

#define ERR_QUALIFIER_Seq   2, 12

Definition at line 55 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_SeqPosComma

#define ERR_QUALIFIER_SeqPosComma   2, 6

Definition at line 49 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_Too_many_tokens

#define ERR_QUALIFIER_Too_many_tokens   2, 2

Definition at line 45 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_UnknownSpelling

#define ERR_QUALIFIER_UnknownSpelling   2, 4

Definition at line 47 of file xgbfeat.cpp.

◆ ERR_QUALIFIER_Xtratext

#define ERR_QUALIFIER_Xtratext   2, 5

Definition at line 48 of file xgbfeat.cpp.

◆ ParFlat_BracketInt_type

#define ParFlat_BracketInt_type   2

Definition at line 60 of file xgbfeat.cpp.

◆ ParFlat_Integer_type

#define ParFlat_Integer_type   3

Definition at line 61 of file xgbfeat.cpp.

◆ ParFlat_Number_type

#define ParFlat_Number_type   4

Definition at line 62 of file xgbfeat.cpp.

◆ ParFlat_SPLIT_IGNORE

#define ParFlat_SPLIT_IGNORE   4

Definition at line 93 of file xgbfeat.cpp.

◆ ParFlat_Stoken_type

#define ParFlat_Stoken_type   1

Definition at line 59 of file xgbfeat.cpp.

◆ THIS_FILE

#define THIS_FILE   "xgbfeat.cpp"

Definition at line 22 of file xgbfeat.cpp.

◆ THIS_MODULE

#define THIS_MODULE   this_module

Definition at line 32 of file xgbfeat.cpp.

Enumeration Type Documentation

◆ ETokenClass

Enumerator
eClass_pos_aa 
eClass_text 
eClass_bracket_int 
eClass_seq_aa 
eClass_int_or 
eClass_site 
eClass_L_R_B 
eClass_ecnum 
eClass_exper 
eClass_none 
eClass_token 
eClass_int 
eClass_rpt 
eClass_flabel_base 
eClass_flabel_dbname 
eClass_note 
eClass_number 
eClass_unknown 

Definition at line 272 of file xgbfeat.cpp.

Function Documentation

◆ CkBracketType()

static const Char * CkBracketType ( const Char str)
static

Definition at line 1257 of file xgbfeat.cpp.

References isdigit(), and str().

Referenced by CkQualTokenType().

◆ CkLabelType()

static const Char * CkLabelType ( const Char str)
static

Definition at line 1306 of file xgbfeat.cpp.

References isalpha(), isdigit(), label, compile_time_bits::range(), and str().

Referenced by CkQualTokenType().

◆ CkNumberType()

static const Char * CkNumberType ( const Char str)
static

Definition at line 1290 of file xgbfeat.cpp.

References isalnum(), and str().

Referenced by CkQualTokenType().

◆ CkQualEcnum()

static int CkQualEcnum ( CGb_qual cur,
bool  error_msgs,
bool  perform_corrections 
)
static

◆ CkQualMatchToken()

static int CkQualMatchToken ( CGb_qual cur,
bool  error_msgs,
const Char array_string[],
Int2  totalstr 
)
static

◆ CkQualNote()

static int CkQualNote ( CGb_qual cur,
bool  error_msgs,
bool  perform_corrections 
)
static

Definition at line 768 of file xgbfeat.cpp.

References CkQualText(), CGb_qual_Base::GetVal(), and CGb_qual_Base::SetVal().

Referenced by GBQualSemanticValid().

◆ CkQualPosaa()

static int CkQualPosaa ( CGb_qual cur,
bool  error_msgs 
)
static

◆ CkQualPosSeqaa()

static int CkQualPosSeqaa ( CGb_qual cur,
bool  error_msgs,
string aa,
const Char eptr 
)
static

◆ CkQualSeqaa()

static int CkQualSeqaa ( CGb_qual cur,
bool  error_msgs 
)
static

◆ CkQualSite()

static int CkQualSite ( CGb_qual cur,
bool  error_msgs 
)
static

◆ CkQualText()

static int CkQualText ( CGb_qual cur,
bool has_embedded,
bool  from_note,
bool  error_msgs,
bool  perform_corrections 
)
static

◆ CkQualTokenType()

static int CkQualTokenType ( CGb_qual cur,
bool  error_msgs,
Uint1  type 
)
static

◆ GBQualSemanticValid()

static int GBQualSemanticValid ( TQualVector quals,
bool  error_msgs,
bool  perform_corrections 
)
static

◆ GBQualSplit()

static Int2 GBQualSplit ( const Char qual)
static

Definition at line 106 of file xgbfeat.cpp.

References NStr::CompareNocase(), GBQual_names_split_ignore, i, and ParFlat_SPLIT_IGNORE.

Referenced by SplitMultiValQual().

◆ GetQualifierClass()

static ETokenClass GetQualifierClass ( CSeqFeatData::EQualifier  qual_type)
static

Definition at line 293 of file xgbfeat.cpp.

References eClass_bracket_int, eClass_ecnum, eClass_exper, eClass_int, eClass_int_or, eClass_L_R_B, eClass_none, eClass_note, eClass_number, eClass_pos_aa, eClass_rpt, eClass_seq_aa, eClass_site, eClass_text, eClass_token, eClass_unknown, map_checker< Container >::end(), CSeqFeatData::eQual_allele, CSeqFeatData::eQual_altitude, CSeqFeatData::eQual_anticodon, CSeqFeatData::eQual_artificial_location, CSeqFeatData::eQual_bad, CSeqFeatData::eQual_bio_material, CSeqFeatData::eQual_bond_type, CSeqFeatData::eQual_bound_moiety, CSeqFeatData::eQual_calculated_mol_wt, CSeqFeatData::eQual_cell_line, CSeqFeatData::eQual_cell_type, CSeqFeatData::eQual_chloroplast, CSeqFeatData::eQual_chromoplast, CSeqFeatData::eQual_chromosome, CSeqFeatData::eQual_citation, CSeqFeatData::eQual_clone, CSeqFeatData::eQual_clone_lib, CSeqFeatData::eQual_coded_by, CSeqFeatData::eQual_codon, CSeqFeatData::eQual_codon_start, CSeqFeatData::eQual_collected_by, CSeqFeatData::eQual_collection_date, CSeqFeatData::eQual_compare, CSeqFeatData::eQual_cons_splice, CSeqFeatData::eQual_country, CSeqFeatData::eQual_cultivar, CSeqFeatData::eQual_culture_collection, CSeqFeatData::eQual_cyanelle, CSeqFeatData::eQual_db_xref, CSeqFeatData::eQual_derived_from, CSeqFeatData::eQual_dev_stage, CSeqFeatData::eQual_direction, CSeqFeatData::eQual_EC_number, CSeqFeatData::eQual_ecotype, CSeqFeatData::eQual_environmental_sample, CSeqFeatData::eQual_estimated_length, CSeqFeatData::eQual_evidence, CSeqFeatData::eQual_exception, CSeqFeatData::eQual_experiment, CSeqFeatData::eQual_focus, CSeqFeatData::eQual_frequency, CSeqFeatData::eQual_function, CSeqFeatData::eQual_gap_type, CSeqFeatData::eQual_gdb_xref, CSeqFeatData::eQual_gene, CSeqFeatData::eQual_gene_synonym, CSeqFeatData::eQual_germline, CSeqFeatData::eQual_haplogroup, CSeqFeatData::eQual_haplotype, CSeqFeatData::eQual_heterogen, CSeqFeatData::eQual_host, CSeqFeatData::eQual_identified_by, CSeqFeatData::eQual_inference, CSeqFeatData::eQual_insertion_seq, CSeqFeatData::eQual_isolate, CSeqFeatData::eQual_isolation_source, CSeqFeatData::eQual_kinetoplast, CSeqFeatData::eQual_lab_host, CSeqFeatData::eQual_label, CSeqFeatData::eQual_lat_lon, CSeqFeatData::eQual_linkage_evidence, CSeqFeatData::eQual_linkage_group, CSeqFeatData::eQual_locus_tag, CSeqFeatData::eQual_macronuclear, CSeqFeatData::eQual_map, CSeqFeatData::eQual_mating_type, CSeqFeatData::eQual_metagenome_source, CSeqFeatData::eQual_metagenomic, CSeqFeatData::eQual_mitochondrion, CSeqFeatData::eQual_mobile_element, CSeqFeatData::eQual_mobile_element_type, CSeqFeatData::eQual_mod_base, CSeqFeatData::eQual_mol_type, CSeqFeatData::eQual_name, CSeqFeatData::eQual_ncRNA_class, CSeqFeatData::eQual_nomenclature, CSeqFeatData::eQual_note, CSeqFeatData::eQual_number, CSeqFeatData::eQual_old_locus_tag, CSeqFeatData::eQual_operon, CSeqFeatData::eQual_organelle, CSeqFeatData::eQual_organism, CSeqFeatData::eQual_partial, CSeqFeatData::eQual_PCR_conditions, CSeqFeatData::eQual_PCR_primers, CSeqFeatData::eQual_phenotype, CSeqFeatData::eQual_plasmid, CSeqFeatData::eQual_pop_variant, CSeqFeatData::eQual_product, CSeqFeatData::eQual_protein_id, CSeqFeatData::eQual_proviral, CSeqFeatData::eQual_pseudo, CSeqFeatData::eQual_pseudogene, CSeqFeatData::eQual_rearranged, CSeqFeatData::eQual_recombination_class, CSeqFeatData::eQual_region_name, CSeqFeatData::eQual_regulatory_class, CSeqFeatData::eQual_replace, CSeqFeatData::eQual_ribosomal_slippage, CSeqFeatData::eQual_rpt_family, CSeqFeatData::eQual_rpt_type, CSeqFeatData::eQual_rpt_unit, CSeqFeatData::eQual_rpt_unit_range, CSeqFeatData::eQual_rpt_unit_seq, CSeqFeatData::eQual_satellite, CSeqFeatData::eQual_sec_str_type, CSeqFeatData::eQual_segment, CSeqFeatData::eQual_sequenced_mol, CSeqFeatData::eQual_serotype, CSeqFeatData::eQual_serovar, CSeqFeatData::eQual_sex, CSeqFeatData::eQual_site_type, CSeqFeatData::eQual_specimen_voucher, CSeqFeatData::eQual_standard_name, CSeqFeatData::eQual_strain, CSeqFeatData::eQual_sub_clone, CSeqFeatData::eQual_sub_species, CSeqFeatData::eQual_sub_strain, CSeqFeatData::eQual_submitter_seqid, CSeqFeatData::eQual_tag_peptide, CSeqFeatData::eQual_tissue_lib, CSeqFeatData::eQual_tissue_type, CSeqFeatData::eQual_trans_splicing, CSeqFeatData::eQual_transcript_id, CSeqFeatData::eQual_transgenic, CSeqFeatData::eQual_transl_except, CSeqFeatData::eQual_transl_table, CSeqFeatData::eQual_translation, CSeqFeatData::eQual_transposon, CSeqFeatData::eQual_type_material, CSeqFeatData::eQual_UniProtKB_evidence, CSeqFeatData::eQual_usedin, CSeqFeatData::eQual_variety, CSeqFeatData::eQual_virion, CSeqFeatData::eQual_whole_replicon, and map_checker< Container >::find().

Referenced by GBQualSemanticValid().

◆ ScanEmbedQual()

static bool ScanEmbedQual ( const Char value)
static

◆ SplitMultiValQual()

static int SplitMultiValQual ( TQualVector quals)
static

◆ USING_SCOPE()

USING_SCOPE ( objects  )

◆ XGBFeatKeyQualValid()

int XGBFeatKeyQualValid ( CSeqFeatData::ESubtype  subtype,
TQualVector quals,
bool  error_msgs,
bool  perform_corrections 
)

Variable Documentation

◆ GBQual_names_split_ignore

const Char* GBQual_names_split_ignore[4]
Initial value:
= {
"citation", "EC_number", "rpt_type", "usedin"
}

Definition at line 94 of file xgbfeat.cpp.

Referenced by GBQualSplit().

◆ ParFlat_ExpString

const Char* ParFlat_ExpString[]
Initial value:
= {
"EXPERIMENTAL", "NOT_EXPERIMENTAL"
}

Definition at line 446 of file xgbfeat.cpp.

Referenced by GBQualSemanticValid().

◆ ParFlat_IntOrString

const Char* ParFlat_IntOrString[] = { "1", "2", "3" }

Definition at line 442 of file xgbfeat.cpp.

Referenced by GBQualSemanticValid().

◆ ParFlat_LRBString

const Char* ParFlat_LRBString[] = { "LEFT", "RIGHT", "BOTH" }

Definition at line 444 of file xgbfeat.cpp.

Referenced by GBQualSemanticValid().

◆ ParFlat_RptString

const Char* ParFlat_RptString[]
Initial value:
= {
"tandem",
"inverted",
"flanking",
"terminal",
"direct",
"dispersed",
"long_terminal_repeat",
"non_LTR_retrotransposon_polymeric_tract",
"X_element_combinatorial_repeat",
"Y_prime_element",
"telomeric_repeat",
"centromeric_repeat",
"engineered_foreign_repetitive_element",
"other"
}

Definition at line 450 of file xgbfeat.cpp.

Referenced by GBQualSemanticValid().

◆ this_module

const Char* this_module = "validatr"
static

Definition at line 27 of file xgbfeat.cpp.

Modified on Thu May 09 18:40:11 2024 by modify_doxy.py rev. 669887