49 const string& rhs)
const
52 string::const_iterator pLhs = lhs.begin();
53 string::const_iterator pRhs = rhs.begin();
54 while (pLhs != lhs.end() && pRhs != rhs.end() &&
59 if (pLhs == lhs.end()) {
60 return (pRhs != rhs.end());
62 if (pRhs == rhs.end()) {
71 const string& qualName)
75 const auto& quals = feature.
GetQual();
76 for (
const auto& qual: quals) {
77 if (!qual->CanGetQual() || !qual->CanGetVal()) {
80 if (qual->GetQual() != qualName) {
83 if (namedQual.empty()) {
84 namedQual = qual->GetVal();
87 if (namedQual != qual->GetVal()) {
101 {
"SO:0000001",
"region"},
102 {
"SO:0000002",
"sequece_secondary_structure"},
103 {
"SO:0000005",
"satellite_DNA"},
104 {
"SO:0000013",
"scRNA"},
105 {
"SO:0000035",
"riboswitch"},
106 {
"SO:0000036",
"matrix_attachment_site"},
107 {
"SO:0000037",
"locus_control_region"},
108 {
"SO:0000104",
"polypeptide"},
109 {
"SO:0000110",
"sequence_feature"},
110 {
"SO:0000139",
"ribosome_entry_site"},
111 {
"SO:0000140",
"attenuator"},
112 {
"SO:0000141",
"terminator"},
113 {
"SO:0000147",
"exon"},
114 {
"SO:0000165",
"enhancer"},
115 {
"SO:0000167",
"promoter"},
116 {
"SO:0000172",
"CAAT_signal"},
117 {
"SO:0000173",
"GC_rich_promoter_region"},
118 {
"SO:0000174",
"TATA_box"},
119 {
"SO:0000175",
"minus_10_signal"},
120 {
"SO:0000176",
"minus_35_signal"},
121 {
"SO:0000178",
"operon"},
122 {
"SO:0000185",
"primary_transcript"},
123 {
"SO:0000188",
"intron"},
124 {
"SO:0000204",
"five_prime_UTR"},
125 {
"SO:0000205",
"three_prime_UTR"},
126 {
"SO:0000234",
"mRNA"},
127 {
"SO:0000252",
"rRNA"},
128 {
"SO:0000253",
"tRNA"},
129 {
"SO:0000274",
"snRNA"},
130 {
"SO:0000275",
"snoRNA"},
131 {
"SO:0000276",
"miRNA"},
132 {
"SO:0000286",
"long_terminal_repeat"},
133 {
"SO:0000289",
"microsatellite"},
134 {
"SO:0000294",
"inverted_repeat"},
135 {
"SO:0000296",
"origin_of_replication"},
136 {
"SO:0000297",
"D_loop"},
137 {
"SO:0000298",
"recombination_feature"},
138 {
"SO:0000305",
"modified_DNA_base"},
139 {
"SO:0000313",
"stem_loop"},
140 {
"SO:0000314",
"direct_repeat"},
141 {
"SO:0000315",
"TSS"},
142 {
"SO:0000316",
"CDS"},
143 {
"SO:0000330",
"conserved_region"},
144 {
"SO:0000331",
"STS"},
145 {
"SO:0000336",
"pseudogene"},
146 {
"SO:0000374",
"ribozyme"},
147 {
"SO:0000380",
"hammerhead_ribozyme"},
148 {
"SO:0000385",
"RNase_MRP_RNA"},
149 {
"SO:0000386",
"RNase_P_RNA"},
150 {
"SO:0000404",
"vault_RNA"},
151 {
"SO:0000405",
"Y_RNA"},
152 {
"SO:0000409",
"binding_site"},
153 {
"SO:0000410",
"protein_binding_site"},
154 {
"SO:0000413",
"sequence_difference"},
155 {
"SO:0000418",
"signal_peptide"},
156 {
"SO:0000419",
"mature_protein_region"},
157 {
"SO:0000433",
"non_LTR_retrotransposon_polymeric_tract"},
158 {
"SO:0000454",
"rasiRNA"},
159 {
"SO:0000458",
"D_gene_segment"},
160 {
"SO:0000466",
"V_gene_segment"},
161 {
"SO:0000470",
"J_gene_segment"},
162 {
"SO:0000478",
"C_gene_segment"},
163 {
"SO:0000507",
"pseudogenic_exon"},
164 {
"SO:0000516",
"pseudogenic_transcript"},
165 {
"SO:0000551",
"polyA_signal_sequence"},
166 {
"SO:0000553",
"polyA_site"},
167 {
"SO:0000577",
"centromere"},
168 {
"SO:0000584",
"tmRNA"},
169 {
"SO:0000588",
"autocatalytically_spliced_intron"},
170 {
"SO:0000590",
"SRP_RNA"},
171 {
"SO:0000602",
"guide_RNA"},
172 {
"SO:0000624",
"telomere"},
173 {
"SO:0000625",
"silencer"},
174 {
"SO:0000627",
"insulator"},
175 {
"SO:0000644",
"antisense_RNA"},
176 {
"SO:0000646",
"siRNA"},
177 {
"SO:0000655",
"ncRNA"},
178 {
"SO:0000657",
"repeat_region"},
179 {
"SO:0000658",
"dispersed_repeat"},
180 {
"SO:0000673",
"transcript"},
181 {
"SO:0000685",
"DNAsel_hypersensitive_site"},
182 {
"SO:0000704",
"gene"},
183 {
"SO:0000705",
"tandem_repeat"},
184 {
"SO:0000714",
"nucleotide_motif"},
185 {
"SO:0000723",
"iDNA"},
186 {
"SO:0000724",
"oriT"},
187 {
"SO:0000725",
"transit_peptide"},
188 {
"SO:0000730",
"gap"},
189 {
"SO:0000777",
"pseudogenic_rRNA"},
190 {
"SO:0000778",
"pseudogenic_tRNA"},
191 {
"SO:0001021",
"chromosome_preakpoint"},
192 {
"SO:0001035",
"piRNA"},
193 {
"SO:0001037",
"mobile_genetic_element"},
194 {
"SO:0001055",
"transcriptional_cis_regulatory_region"},
195 {
"SO:0001059",
"sequence_alteration"},
196 {
"SO:0001062",
"propeptide"},
197 {
"SO:0001086",
"sequence_uncertainty"},
198 {
"SO:0001087",
"cross_link"},
199 {
"SO:0001088",
"disulfide_bond"},
200 {
"SO:0001268",
"recoding_stimulatory_region"},
201 {
"SO:0001411",
"biological_region"},
202 {
"SO:0001484",
"X_element_combinatorical_repeat"},
203 {
"SO:0001485",
"Y_prime_element"},
204 {
"SO:0001496",
"telomeric_repeat"},
205 {
"SO:0001649",
"nested_repeat"},
206 {
"SO:0001682",
"replication_regulatory_region"},
207 {
"SO:0001720",
"epigenetically_modified_region"},
208 {
"SO:0001797",
"centromeric_repeat"},
209 {
"SO:0001833",
"V_region"},
210 {
"SO:0001835",
"N_region"},
211 {
"SO:0001836",
"S_region"},
212 {
"SO:0001877",
"lnc_RNA"},
213 {
"SO:0001917",
"CAGE_cluster"},
214 {
"SO:0002020",
"boundary_element"},
215 {
"SO:0002072",
"sequence_comparison"},
216 {
"SO:0002087",
"pseudogenic_CDS"},
217 {
"SO:0002094",
"non_allelic_homologous_recombination_region"},
218 {
"SO:0002154",
"mitotic_recombination_region"},
219 {
"SO:0002155",
"meiotic_recombination_region"},
220 {
"SO:0002190",
"enhancer_blocking_element"},
221 {
"SO:0002191",
"imprinting_control_region"},
222 {
"SO:0002205",
"response_element"},
223 {
"SO:0005836",
"regulatory_region"},
224 {
"SO:0005850",
"primary_binding_site"},
368 vector<string>& supported_terms)
371 supported_terms.clear();
373 supported_terms.push_back(term.first);
375 std::sort(supported_terms.begin(), supported_terms.end());
381 const string& sofa_id)
388 return type_it->second;
393 const string& so_type)
407 return id_it->second;
412 const string& so_type,
414 bool invalidToRegion)
420 return (it->second)(resolved_so_type, feature);
422 if (invalidToRegion) {
430 const string& so_type,
435 if (so_type ==
"pseudogene") {
443 const string& so_type,
455 auto it = mTypeToRna.
find(so_type);
456 feature.
SetData().SetRna().SetType(it->second);
465 const string& so_type,
469 static const TYPEMAP mTypeToClass = {
473 auto normalizedType = so_type;
474 auto it = mTypeToClass.
find(so_type);
475 if (it != mTypeToClass.
end()) {
476 normalizedType = it->second;
478 feature.
SetData().SetRna().SetExt().SetGen().SetClass(normalizedType);
484 const string& so_type,
488 feature.
SetData().SetCdregion();
489 if (so_type==
"pseudogenic_CDS") {
497 const string& so_type,
506 auto cit = mTypeToProcessed.
find(so_type);
507 if (cit == mTypeToProcessed.
end()) {
510 feature.
SetData().SetProt().SetProcessed(cit->second);
516 const string& so_type,
520 static const TYPEMAP mapTypeToQual = {
521 {
"TSS",
"transcription_start_site"},
523 feature.
SetData().SetImp().SetKey(
"misc_feature");
524 if (so_type ==
"sequence_feature") {
528 feat_class->
SetQual(
"feat_class");
529 auto cit = mapTypeToQual.
find(so_type);
530 if (cit == mapTypeToQual.
end()) {
531 feat_class->
SetVal(so_type);
534 feat_class->
SetVal(cit->second);
536 feature.
SetQual().push_back(feat_class);
542 const string& so_type,
546 static const TYPEMAP mapTypeToQual = {
547 {
"meiotic_recombination_region",
"meiotic"},
548 {
"mitotic_recombination_region",
"mitotic"},
549 {
"non_allelic_homologous_recombination",
"non_allelic_homologous"},
550 {
"recombination_feature",
"other"},
552 feature.
SetData().SetImp().SetKey(
"misc_recomb");
554 recombination_class->
SetQual(
"recombination_class");
555 auto cit = mapTypeToQual.
find(so_type);
556 if (cit == mapTypeToQual.
end()) {
557 recombination_class->
SetVal(so_type);
560 recombination_class->
SetVal(cit->second);
562 feature.
SetQual().push_back(recombination_class);
568 const string& so_type,
572 feature.
SetData().SetImp().SetKey(
"misc_RNA");
573 if (so_type==
"pseudogenic_transcript") {
581 const string& so_type,
585 static const TYPEMAP mapTypeToKey = {
586 {
"C_gene_segment",
"C_region"},
587 {
"D_gene_segment",
"D_segment"},
588 {
"D_loop",
"D-loop"},
589 {
"J_gene_segment",
"J_segment"},
590 {
"V_gene_segment",
"V_segment"},
591 {
"binding_site",
"misc_binding"},
592 {
"five_prime_UTR",
"5\'UTR"},
593 {
"long_terminal_repeat",
"LTR"},
594 {
"mature_protein_region",
"mat_peptide"},
595 {
"mobile_genetic_element",
"mobile_element"},
596 {
"modified_DNA_base",
"modified_base"},
597 {
"origin_of_replication",
"rep_origin"},
598 {
"primary_transcript",
"prim_transcript"},
599 {
"primer_binding_site",
"primer_bind"},
600 {
"protein_binding_site",
"protein_bind"},
601 {
"pseudogenic_exon",
"exon"},
602 {
"region",
"source"},
603 {
"sequence_alteration",
"variation"},
604 {
"sequence_difference",
"misc_difference"},
605 {
"sequence_secondary_structure",
"misc_structure"},
606 {
"sequence_uncertainty",
"unsure"},
607 {
"signal_peptide",
"sig_peptide"},
608 {
"three_prime_UTR",
"3\'UTR"},
610 auto cit = mapTypeToKey.
find(so_type);
611 if (cit == mapTypeToKey.
end()) {
612 feature.
SetData().SetImp().SetKey(so_type);
615 feature.
SetData().SetImp().SetKey(cit->second);
625 const string& so_type,
631 feature.
SetQual().push_back(qual);
637 const string& so_type,
641 static const TYPEMAP mapTypeToQual = {
642 {
"DNAsel_hypersensitive_site",
"DNase_I_hypersensitive_site"},
643 {
"GC_rich_promoter_region",
"GC_signal"},
644 {
"boundary_element",
"insulator"},
645 {
"regulatory_region",
"other"},
646 {
"ribosome_entry_site",
"ribosome_binding_site"},
648 feature.
SetData().SetImp().SetKey(
"regulatory");
650 regulatory_class->
SetQual(
"regulatory_class");
651 auto cit = mapTypeToQual.
find(so_type);
652 if (cit == mapTypeToQual.
end()) {
653 regulatory_class->
SetVal(so_type);
656 regulatory_class->
SetVal(cit->second);
658 feature.
SetQual().push_back(regulatory_class);
664 const string& so_type,
668 static const TYPEMAP mapTypeToSatellite = {
669 {
"microsatellite",
"microsatellite"},
670 {
"minisatellite",
"minisatellite"},
671 {
"satellite_DNA",
"satellite"},
673 static const TYPEMAP mapTypeToRptType = {
674 {
"tandem_repeat",
"tandem"},
675 {
"inverted_repeat",
"inverted"},
676 {
"direct_repeat",
"direct"},
677 {
"nested_repeat",
"nested"},
678 {
"non_LTR_retrotransposon_polymeric_tract",
"non_ltr_retrotransposon_polymeric_tract"},
679 {
"X_element_combinatorial_repeat",
"x_element_combinatorial_repeat"},
680 {
"Y_prime_element",
"y_prime_element"},
681 {
"repeat_region",
"other"},
683 feature.
SetData().SetImp().SetKey(
"repeat_region");
686 auto cit = mapTypeToSatellite.
find(so_type);
687 if (cit != mapTypeToSatellite.
end()) {
689 qual->
SetVal(cit->second);
693 cit = mapTypeToRptType.
find(so_type);
694 if (cit == mapTypeToRptType.
end()) {
698 qual->
SetVal(cit->second);
701 feature.
SetQual().push_back(qual);
789 if (!original_type.empty()) {
790 so_type = original_type;
798 return (cit->second)(feature, so_type);
864 auto cit = mapSubtypeToSoType.
find(subtype);
865 if (cit != mapSubtypeToSoType.
end()) {
866 so_type = cit->second;
878 so_type =
"biological_region";
889 so_type =
"pseudogenic_CDS";
892 for (
auto qual: feature.
GetQual()) {
893 if (qual->GetQual() ==
"pseudo" || qual->GetQual() ==
"pseudogene") {
894 so_type =
"pseudogenic_CDS";
909 so_type =
"pseudogene";
912 for (
auto qual: feature.
GetQual()) {
913 if (qual->GetQual() ==
"pseudo" || qual->GetQual() ==
"pseudogene") {
914 so_type =
"pseudogene";
941 auto cit = mapSubtypePseudo.
find(subtype);
942 if (cit == mapSubtypePseudo.
end()) {
945 so_type = cit->second;
949 auto cit = mapSubtypeStraight.
find(subtype);
950 if (cit == mapSubtypeStraight.
end()) {
953 so_type = cit->second;
957 for (
auto qual: feature.
GetQual()) {
958 if (qual->GetQual() ==
"pseudo" || qual->GetQual() ==
"pseudogene") {
959 auto cit = mapSubtypePseudo.
find(subtype);
960 if (cit == mapSubtypePseudo.
end()) {
963 so_type = cit->second;
967 auto cit = mapSubtypeStraight.
find(subtype);
968 if (cit == mapSubtypeStraight.
end()) {
971 so_type = cit->second;
981 static const TYPEMAP mapFeatClassToSoType = {
982 {
"transcription_start_site",
"TSS"},
983 {
"other",
"sequence_feature"},
986 if (feat_class.empty()) {
987 so_type =
"sequence_feature";
990 auto cit = mapFeatClassToSoType.
find(feat_class);
991 if (cit == mapFeatClassToSoType.
end()) {
992 so_type = feat_class;
995 so_type = cit->second;
1005 static const TYPEMAP mapRecombClassToSoType = {
1006 {
"meiotic",
"meiotic_recombination_region"},
1007 {
"mitotic",
"mitotic_recombination_region"},
1008 {
"non_allelic_homologous",
"non_allelic_homologous_recombination_region"},
1009 {
"meiotic_recombination",
"meiotic_recombination_region"},
1010 {
"mitotic_recombination",
"mitotic_recombination_region"},
1011 {
"non_allelic_homologous_recombination",
"non_allelic_homologous_recombination_region"},
1012 {
"other",
"recombination_feature"},
1015 if (recomb_class.empty()) {
1016 so_type =
"recombination_feature";
1019 auto cit = mapRecombClassToSoType.
find(recomb_class);
1020 if (cit == mapRecombClassToSoType.
end()) {
1022 auto valid = std::find(validClasses.begin(), validClasses.end(), recomb_class);
1023 if (valid == validClasses.end()) {
1024 so_type =
"recombination_feature";
1027 so_type = recomb_class;
1031 so_type = cit->second;
1041 so_type =
"transcript";
1051 static const TYPEMAP mapNcRnaClassToSoType = {
1052 {
"antisense_RNA",
"antisense_RNA"},
1053 {
"autocatalytically_spliced_intron",
"autocatalytically_spliced_intron"},
1054 {
"guide_RNA",
"guide_RNA"},
1055 {
"hammerhead_ribozyme",
"hammerhead_ribozyme"},
1056 {
"lncRNA",
"lnc_RNA"},
1060 {
"rasiRNA",
"rasiRNA"},
1061 {
"ribozyme",
"ribozyme"},
1062 {
"RNase_MRP_RNA",
"RNase_MRP_RNA"},
1063 {
"RNase_P_RNA",
"RNase_P_RNA"},
1067 {
"snoRNA",
"snoRNA"},
1068 {
"SRP_RNA",
"SRP_RNA"},
1069 {
"telomerase_RNA",
"telomerase_RNA"},
1070 {
"vault_RNA",
"vault_RNA"},
1074 if (ncrna_class.empty()) {
1081 if (ncrna_class ==
"classRNA") {
1082 ncrna_class =
"ncRNA";
1086 if (ncrna_class.empty()) {
1094 if (ncrna_class.empty()) {
1095 ncrna_class =
"ncRNA";
1098 auto cit = mapNcRnaClassToSoType.
find(ncrna_class);
1099 if (cit == mapNcRnaClassToSoType.
end()) {
1103 so_type = cit->second;
1113 static const TYPEMAP mapRegulatoryClassToSoType = {
1114 {
"DNase_I_hypersensitive_site",
"DNaseI_hypersensitive_site"},
1115 {
"GC_signal",
"GC_rich_promoter_region"},
1116 {
"enhancer_blocking_element",
"enhancer_blocking_element"},
1117 {
"epigenetically_modified_region",
"epigenetically_modified_region"},
1118 {
"imprinting_control_region",
"imprinting_control_region"},
1119 {
"matrix_attachment_region",
"matrix_attachment_site"},
1120 {
"other",
"regulatory_region"},
1121 {
"response_element",
"response_element"},
1122 {
"ribosome_binding_site",
"ribosome_entry_site"},
1126 if (regulatory_class.empty()) {
1127 so_type =
"regulatory_region";
1130 auto cit = mapRegulatoryClassToSoType.
find(regulatory_class);
1131 if (cit == mapRegulatoryClassToSoType.
end()) {
1133 auto valid = std::find(
1134 validClasses.begin(), validClasses.end(), regulatory_class);
1135 if (valid == validClasses.end()) {
1136 so_type =
"regulatory_region";
1139 so_type = regulatory_class;
1143 so_type = cit->second;
1153 static const TYPEMAP mapBondTypeToSoType = {
1154 {
"disulfide",
"disulfide_bond"},
1155 {
"xlink",
"cross_link"},
1158 if (bond_type.empty()) {
1161 auto cit = mapBondTypeToSoType.
find(bond_type);
1162 if (cit == mapBondTypeToSoType.
end()) {
1163 so_type = bond_type;
1166 so_type = cit->second;
1177 static const TYPEMAP mapSatelliteToSoType = {
1178 {
"satellite",
"satellite_DNA"},
1179 {
"microsatellite",
"microsatellite"},
1180 {
"minisatellite",
"minisatellite"},
1183 if (!satellite.empty()) {
1184 auto cit = mapSatelliteToSoType.
find(satellite);
1185 if (cit == mapSatelliteToSoType.
end()) {
1188 so_type = cit->second;
1192 static const TYPEMAP mapRptTypeToSoType = {
1193 {
"tandem",
"tandem_repeat"},
1194 {
"inverted",
"inverted_repeat"},
1195 {
"flanking",
"repeat_region"},
1196 {
"terminal",
"repeat_region"},
1197 {
"direct",
"direct_repeat"},
1198 {
"dispersed",
"dispersed_repeat"},
1199 {
"nested",
"nested_repeat"},
1200 {
"non_ltr_retrotransposon_polymeric_tract",
"non_LTR_retrotransposon_polymeric_tract"},
1201 {
"x_element_combinatorical_repeat",
"X_element_combinatorical_repeat"},
1202 {
"y_prime_element",
"Y_prime_element"},
1203 {
"other",
"repeat_region"},
1206 if (rpt_type.empty()) {
1207 so_type =
"repeat_region";
1210 auto cit = mapRptTypeToSoType.
find(rpt_type);
1211 if (cit == mapRptTypeToSoType.
end()) {
1215 so_type = cit->second;
1222 {
"-10_signal",
"minus_10_signal"},
1223 {
"-35_signal",
"minus_35_signal"},
1224 {
"3'UTR",
"three_prime_UTR"},
1225 {
"3'clip",
"three_prime_clip"},
1226 {
"5'UTR",
"five_prime_UTR"},
1227 {
"5'clip",
"five_prime_clip"},
1228 {
"C_region",
"C_gene_segment"},
1229 {
"D-loop",
"D_loop"},
1230 {
"D_segment",
"D_gene_segment"},
1231 {
"GC_signal",
"GC_rich_promoter_region"},
1232 {
"J_segment",
"J_gene_segment"},
1233 {
"LTR",
"long_terminal_repeat"},
1234 {
"RBS",
"ribosome_entry_site"},
1235 {
"TATA_signal",
"TATA_box"},
1236 {
"V_segment",
"V_gene_segment"},
1237 {
"assembly_gap",
"gap"},
1238 {
"Comment",
"remark"},
1239 {
"conflict",
"sequence_conflict"},
1240 {
"mat_peptide_nt",
"mature_protein_region"},
1241 {
"mat_peptide",
"mature_protein_region"},
1242 {
"misc_binding",
"binding_site"},
1243 {
"misc_difference",
"sequence_difference"},
1244 {
"misc_feature",
"sequence_feature"},
1245 {
"misc_recomb",
"recombination_feature"},
1246 {
"misc_signal",
"regulatory_region"},
1247 {
"misc_structure",
"sequence_secondary_structure"},
1248 {
"mobile_element",
"mobile_genetic_element"},
1249 {
"modified_base",
"modified_DNA_base"},
1250 {
"misc_RNA",
"transcript"},
1251 {
"polyA_signal",
"polyA_signal_sequence"},
1252 {
"pre_RNA",
"primary_transcript"},
1253 {
"precursor_RNA",
"primary_transcript"},
1254 {
"proprotein",
"immature_peptide_region"},
1255 {
"prim_transcript",
"primary_transcript"},
1256 {
"primer_bind",
"primer_binding_site"},
1257 {
"Protein",
"polypeptide"},
1258 {
"protein_bind",
"protein_binding_site"},
1259 {
"SecStr",
"sequence_secondary_structure"},
1260 {
"regulatory",
"regulatory_region"},
1261 {
"rep_origin",
"origin_of_replication"},
1262 {
"Rsite",
"restriction_enzyme_cut_site"},
1263 {
"satellite",
"satellite_DNA"},
1264 {
"Shine_Dalgarno_sequence",
"ribosome_entry_site"},
1265 {
"sig_peptide_nt",
"signal_peptide"},
1266 {
"sig_peptide",
"signal_peptide"},
1268 {
"Site-ref",
"site"},
1269 {
"transit_peptide_nt",
"transit_peptide"},
1270 {
"unsure",
"sequence_uncertainty"},
1271 {
"variation",
"sequence_alteration"},
1272 {
"VariationRef",
"sequence_alteration"},
1273 {
"virion",
"viral_sequence"},
1278 const string& alias)
User-defined methods of the data storage class.
User-defined methods of the data storage class.
@Gb_qual.hpp User-defined methods of the data storage class.
static string GetRnaTypeName(const CRNA_ref::EType rna_type)
ESubtype GetSubtype(void) const
static const vector< string > & GetRecombinationClassList()
@ eSubtype_transit_peptide
@ eSubtype_misc_difference
@ eSubtype_misc_structure
@ eSubtype_mobile_element
@ eSubtype_prim_transcript
@ eSubtype_transit_peptide_aa
@ eSubtype_sig_peptide_aa
@ eSubtype_mat_peptide_aa
static const vector< string > & GetRegulatoryClassList()
namespace ncbi::objects::
const string & GetNamedQual(const CTempString &qual_name) const
Return a named qualifier.
static TYPEFUNCMAP mMapTypeFunc
static bool xMapRegion(const CSeq_feat &, string &)
static bool xFeatureMakeCds(const string &, CSeq_feat &)
static bool xMapRna(const CSeq_feat &, string &)
static bool xFeatureMakeRepeatRegion(const string &, CSeq_feat &)
static bool SoTypeToFeature(const string &, CSeq_feat &, bool=false)
static FEATFUNCMAP mMapFeatFunc
static bool xMapRegulatory(const CSeq_feat &, string &)
static bool xMapMiscRecomb(const CSeq_feat &, string &)
static bool xFeatureMakeRegulatory(const string &, CSeq_feat &)
static bool xFeatureMakeRegion(const string &, CSeq_feat &)
static bool xFeatureMakeProt(const string &, CSeq_feat &)
static bool FeatureToSoType(const CSeq_feat &, string &)
static string ResolveSoAlias(const string &)
static bool xFeatureMakeMiscRna(const string &, CSeq_feat &)
static TYPEMAP mMapSoIdToType
static bool xFeatureMakeMiscRecomb(const string &, CSeq_feat &)
static bool xFeatureMakeGene(const string &, CSeq_feat &)
static bool xMapMiscFeature(const CSeq_feat &, string &)
static std::string SoTypeToId(const std::string &)
static bool xMapGene(const CSeq_feat &, string &)
static TYPEMAP mMapSoTypeToId
TYPEFUNCMAP::const_iterator TYPEFUNCENTRY
FEATFUNCMAP::const_iterator FEATFUNCENTRY
static bool xMapNcRna(const CSeq_feat &, string &)
SOALIASMAP::const_iterator ALIASENTRY
static SOALIASMAP mMapSoAliases
static bool xFeatureMakeMiscFeature(const string &, CSeq_feat &)
static bool xMapOtherRna(const CSeq_feat &, string &)
static bool xMapBond(const CSeq_feat &, string &)
static bool xFeatureMakeRna(const string &, CSeq_feat &)
static bool xMapGeneric(const CSeq_feat &, string &)
static bool xMapCds(const CSeq_feat &, string &)
static bool xFeatureMakeNcRna(const string &, CSeq_feat &)
static bool GetSupportedSoTerms(vector< string > &)
static bool xFeatureMakeImp(const string &, CSeq_feat &)
TYPEMAP::const_iterator TYPEENTRY
static std::string SoIdToType(const std::string &)
static bool xMapRepeatRegion(const CSeq_feat &, string &)
bool operator()(const string &x, const string &y) const
const_iterator end() const
const_iterator find(const key_type &key) const
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
TType GetType(void) const
Get the Type member data.
bool IsSetExt(void) const
generic fields for ncRNA, tmRNA, miscRNA Check if a value has been assigned to Ext data member.
bool IsGen(void) const
Check if variant Gen is selected.
const TGen & GetGen(void) const
Get the variant data.
bool IsSetType(void) const
Check if a value has been assigned to Type data member.
bool IsSetClass(void) const
for ncRNAs, the class of non-coding RNA: examples: antisense_RNA, guide_RNA, snRNA Check if a value h...
const TExt & GetExt(void) const
Get the Ext member data.
const TClass & GetClass(void) const
Get the Class member data.
@ eType_ncRNA
non-coding RNA; subsumes snRNA, scRNA, snoRNA
void SetQual(const TQual &value)
Assign a value to Qual data member.
bool IsSetData(void) const
the specific data Check if a value has been assigned to Data data member.
const TQual & GetQual(void) const
Get the Qual member data.
const TData & GetData(void) const
Get the Data member data.
void SetData(TData &value)
Assign a value to Data data member.
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.
void SetVal(const TVal &value)
Assign a value to Val data member.
void SetPseudo(TPseudo value)
Assign a value to Pseudo data member.
const TRna & GetRna(void) const
Get the variant data.
TQual & SetQual(void)
Assign a value to Qual data member.
bool IsRna(void) const
Check if variant Rna is selected.
constexpr auto sort(_Init &&init)
constexpr bool empty(list< Ts... >) noexcept
string GetUnambiguousNamedQual(const CSeq_feat &feature, const string &qualName)