min_unknown,
71 const longmax_unknown,
72 const size_tmin_known,
74vector<pair<
int,
int>>& start_length_locs,
75vector<
bool> &vec_is_known)
80|| !inst.IsSetSeq_data()) {
86 switch(inst.GetSeq_data().Which()) {
88iupacna = inst.GetSeq_data().GetIupacna();
107 stringelement =
"";
110 ITERATE(
string, it, iupacna) {
118 boolis_unknown =
false;
119 boolis_known =
false;
121 if(n_len >= min_unknown && (max_unknown < 0 || (
int)n_len <= max_unknown)) {
124 else if(n_len >= min_known && (max_known < 0 || (
int)n_len <= max_known)) {
127 if(is_unknown || is_known) {
129 if(element.length() > n_len) {
130element = element.substr(0, element.length() - n_len);
131pos += element.length();
133start_length_locs.emplace_back((
int)pos, (
int)n_len);
135vec_is_known.push_back(is_known);
146 boolis_unknown =
false;
147 boolis_known =
false;
149 if(n_len >= min_unknown && (max_unknown < 0 || (
int)n_len <= max_unknown)) {
152 else if(n_len >= min_known && (max_known < 0 || (
int)n_len <= max_known)) {
155 if(is_unknown || is_known) {
157 if(element.length() > n_len) {
158element = element.substr(0, element.length() - n_len);
159pos += element.length();
161start_length_locs.emplace_back((
int)pos, (
int)n_len);
163vec_is_known.push_back(is_known);
167pos += element.length();
173 constvector<pair<int, int>>& start_length_locs,
174 constvector<bool> &vec_is_known,
179 boolfound_row =
false;
181 for(
int row= 0;
row< num_rows;
row++)
192 boolfound_overlap =
false;
196 for(
size_t i= 0;
i< start_length_locs.size();
i++)
198 if(!vec_is_known[
i])
202 size_tnum_segs = lens.size();
204 size_tstart = start_length_locs[
i].first;
205 size_tstop = start + start_length_locs[
i].second - 1;
207 for(
size_tj = 0; j<num_segs; j++)
218found_overlap =
true;
226 if(found_overlap && deleted_aligns.
find(&align) == deleted_aligns.
end())
230deleted_aligns.
insert(&align);
235pair<vector<pair<int, int>>, vector<bool>>>& map_gaps,
238 boolkeep_gap_length,
239 boolcreate_general_only,
242 boolcreate_xref_map)
245 for(
const auto&gap : map_gaps)
247 autobsh = gap.first;
248 const auto&start_length_locs = gap.second.first;
249 const auto&vec_is_known = gap.second.second;
251gaps.reserve(start_length_locs.size());
252 for(
size_t i= 0;
i< start_length_locs.size(); ++
i)
255gap.
start= start_length_locs[
i].first;
256gap.
length= start_length_locs[
i].second;
261new_map_gaps[bsh] = gaps;
265create_general_only, max_feat_id, old_to_new, create_xref_map);
274 if((*xit)->IsSetId() && (*xit)->GetId().IsLocal() && (*xit)->GetId().GetLocal().IsId())
276 autoit = old_to_new.
find((*xit)->GetId().GetLocal().GetId());
277 if(it != old_to_new.
end())
279(*xit)->SetId().SetLocal().SetId(it->second);
292 if((*it)->IsSetQual() && (*it)->IsSetVal() &&
295(id_label.empty() ||
NStr::Equal((*it)->GetVal(), id_label) ||
NStr::Equal((*it)->GetVal(), id_label +
"_1"))) {
296 if(id_label.empty()) {
297id_label = (*it)->GetVal();
309 boolkeep_gap_length)
315CCdregion::TCode_break::iterator cit = cdr.
SetCode_break().begin();
317 booldo_remove =
false;
318 if((*cit)->IsSetLoc()) {
319vector<CRef<CSeq_loc> > locations;
320 boolcomment =
false;
324 if(!locations.empty()) {
326 if(new_loc && !new_loc->
IsEmpty() && !new_loc->
IsNull()) {
327(*cit)->SetLoc().
Assign(*new_loc);
352vector<CRef<CSeq_loc> > locations;
353 boolcomment =
false;
357 if(!locations.empty()) {
359 if(new_loc && !new_loc->
IsEmpty() && !new_loc->
IsNull()) {
375 boolsplit_gene_locations,
377 boolkeep_gap_length,
378 boolcreate_general_only,
381 boolcreate_xref_map)
392vector<CRef<CSeq_loc>> locations;
393 boolcomment =
false;
401 id->Assign(*feat_loc.
GetId());
403 size_ttranscript_id_offset = 1;
404 stringtranscript_id_label;
405 size_tprotein_id_offset = 1;
406 stringprotein_id_label;
408 if(locations.empty() || locations.front()->IsNull())
442prot_seq->
SetInst().ResetExt();
444prot_seq->
SetInst().SetSeq_data().SetIupacaa().Set(
prot);
455prot_feat->
SetLocation().SetInt().SetId().Assign(*(prot_seq->
GetId().front()));
480 for(
size_tj = 1; j < locations.size(); j++)
481 if(!locations[j]->IsNull())
491add_feat->
SetId().SetLocal().SetId(max_feat_id);
493 if(!create_xref_map)
496 x_AdjustOrigLabel(*add_feat, transcript_id_offset, transcript_id_label,
"orig_transcript_id");
497 x_AdjustOrigLabel(*add_feat, protein_id_offset, protein_id_label,
"orig_protein_id");
506vector<CRef<CSeq_feat>> other_prot_feats;
507vector<CRef<CSeq_id>> new_prot_id;
518new_prot_id.push_back(
edit::GetNewProtId(bsh, id_offset, id_label, create_general_only));
520add_feat->
SetProduct().SetWhole().Assign(*new_prot_id.front());
523 for(
CFeat_CIprot_feat_ci(product); prot_feat_ci; ++prot_feat_ci)
528prot_feat->
Assign(*(prot_feat_ci->GetSeq_feat()));
534prot_feat->
SetId().SetLocal().SetId(max_feat_id);
536 if(!create_xref_map)
543 RemapOtherProtFeats(*feat.
GetSeq_feat(), *add_feat, prot_feat_ci->GetSeq_feat_Handle(), other_prot_feats, max_feat_id, old_to_new, create_xref_map);
555 for(
size_tj = 1; j < locations.size(); j++)
556 if(!locations[j]->IsNull())
566add_feat->
SetId().SetLocal().SetId(max_feat_id);
568 if(!create_xref_map)
571 x_AdjustOrigLabel(*add_feat, transcript_id_offset, transcript_id_label,
"orig_transcript_id");
572 x_AdjustOrigLabel(*add_feat, protein_id_offset, protein_id_label,
"orig_protein_id");
584 boolsplit_gene_locations,
586 boolkeep_gap_length,
587 boolcreate_general_only,
590 boolcreate_xref_map)
592 if(map_gaps.empty())
595 autoseh = map_gaps.cbegin()->first.GetTopLevelEntry();
596 CScope&scope = seh.GetScope();
597 for(
CFeat_CIfeat_it(seh); feat_it; ++feat_it) {
598 AdjustSingleFeature(*feat_it, scope, map_gaps, composite, split_gene_locations, break_features,
599keep_gap_length, create_general_only, max_feat_id, old_to_new, create_xref_map);
609 boolkeep_gap_length)
612new_loc->
Assign(feat_loc);
615vector<vector<CRef<CSeq_loc>>> all_locs;
616vector<vector<pair<bool, bool>>> all_partials;
617vector<CRef<CSeq_loc>> locs;
618vector<pair<bool, bool>> partials;
620 for(
CSeq_loc_Iloc_it(*new_loc); loc_it; ++loc_it)
622 if(loc_it.IsEmpty()) {
626 autostrand = loc_it.GetStrand();
629 id->Assign(loc_it.GetSeq_id());
635 autoit = map_gaps.find(bsh);
636 if(it != map_gaps.end()) {
648 boolpartial5 =
false;
650 for(
size_t i= 0;
i< gaps.size(); ++
i)
652 TSignedSeqPosnew_gap_length = (keep_gap_length ? gaps[
i].length : 100);
655 if(feat_stop < igap_start)
662locs.emplace_back(
new CSeq_loc(*
id, new_start, new_stop, strand));
663partials.emplace_back(partial5,
false);
669 else if(!gaps[
i].is_replace && igap_start <= feat_start)
671 if(gaps[
i].is_known)
677 else if(gaps[
i].is_replace && gaps[
i].is_known && igap_start + gaps[
i].length <= feat_start)
681 else if(gaps[
i].is_replace && !gaps[
i].is_known && igap_start + gaps[
i].length <= feat_start)
683 offset+= new_gap_length - gaps[
i].length;
686 else if(!gaps[
i].is_replace && gaps[
i].is_known && igap_start > feat_start && igap_start <= feat_stop)
688offset_middle += gaps[
i].length;
691 else if(!gaps[
i].is_replace && !gaps[
i].is_known && igap_start > feat_start && igap_start <= feat_stop)
693offset_middle += new_gap_length;
699 offset+= offset_middle + new_gap_length;
702locs.emplace_back(
new CSeq_loc(*
id, new_start, new_stop, strand));
703partials.emplace_back(partial5,
true);
707feat_start = gaps[
i].start;
709all_locs.push_back(locs);
710all_partials.push_back(partials);
716 else if(gaps[
i].is_replace && gaps[
i].is_known && igap_start >= feat_start && igap_start + gaps[
i].length - 1 <= feat_stop)
720 else if(gaps[
i].is_replace && !gaps[
i].is_known && igap_start <= feat_start && igap_start + gaps[
i].length - 1 >= feat_start && igap_start + gaps[
i].length - 1 < feat_stop)
722 offset+= offset_middle + new_gap_length - gaps[
i].length;
725feat_start = gaps[
i].start + gaps[
i].length;
727 if(break_features && !locs.empty())
730all_locs.push_back(locs);
731all_partials.push_back(partials);
737 else if(gaps[
i].is_replace && !gaps[
i].is_known && igap_start <= feat_start && igap_start + gaps[
i].length - 1 >= feat_stop)
739 if(break_features && !locs.empty())
742all_locs.push_back(locs);
743all_partials.push_back(partials);
750 else if(gaps[
i].is_replace && !gaps[
i].is_known && igap_start > feat_start && igap_start <= feat_stop && igap_start + gaps[
i].length - 1 > feat_stop)
755locs.emplace_back(
new CSeq_loc(*
id, new_start, new_stop, strand));
756partials.emplace_back(partial5,
true);
763all_locs.push_back(locs);
764all_partials.push_back(partials);
772 else if(gaps[
i].is_replace && !gaps[
i].is_known && igap_start > feat_start && igap_start <= feat_stop && igap_start + gaps[
i].length - 1 <= feat_stop)
778 offset+= offset_middle + new_gap_length - gaps[
i].length;
781locs.emplace_back(
new CSeq_loc(*
id, new_start, new_stop, strand));
782partials.emplace_back(partial5,
true);
786feat_start = gaps[
i].start + gaps[
i].length;
788all_locs.push_back(locs);
789all_partials.push_back(partials);
795offset_middle += new_gap_length - gaps[
i].length;
807locs.emplace_back(
new CSeq_loc(*
id, new_start, new_stop, strand));
808partials.emplace_back(partial5,
false);
815all_locs.push_back(locs);
816all_partials.push_back(partials);
821 if(!all_partials.empty())
823 if(!all_partials.front().empty())
825 if(!all_partials.back().empty())
829 for(
size_tj = 0; j < all_locs.size(); j++)
832 if(all_locs[j].
empty())
838 for(
size_t i= 0;
i< all_locs[j].size();
i++)
844 if(!all_partials[j].
empty())
850locations.push_back(changed_loc);
856 const char*cds_gap_comment =
"coding region disrupted by sequencing gap";
864comment = comment +
"; "+ cds_gap_comment;
896 for(
CFeat_CIfeat_ci(bh); feat_ci; ++feat_ci)
902 const CSeq_loc&loc = feat_ci->GetLocation();
926new_feat->
Assign(feat_ci->GetOriginalFeature());
943 boolcreate_xref_map)
956 if(!prot_loc->
IsNull())
980new_feat->
SetId().SetLocal().SetId(max_feat_id);
982 if(!create_xref_map)
989other_prot_feats.push_back(new_feat);
996 bool& remove_alignments,
999 boolcreate_xref_map)
1011vector<pair<int, int>> start_length_locs;
1012vector<bool> vec_is_known;
1017start_length_locs, vec_is_known);
1019 if(start_length_locs.empty())
1039 for(; align_ci; ++align_ci) {
1048map_gaps[bsh] = make_pair(start_length_locs, vec_is_known);
1059create_general_only, max_feat_id,
1060old_to_new, create_xref_map);
1063remove_alignments = (!deleted_aligns.
empty());
1072 boolcreate_xref_map =
true;
1076create_xref_map =
false;
1084 bool& remove_alignments,
1087 boolcreate_xref_map)
1099vector<pair<int, int>> start_length_locs;
1100vector<bool> vec_is_known;
1105start_length_locs, vec_is_known);
1107 if(start_length_locs.empty())
1127 for(; align_ci; ++align_ci) {
1136map_gaps[bsh] = make_pair(start_length_locs, vec_is_known);
1145create_general_only, max_feat_id,
1146old_to_new, create_xref_map);
1149remove_alignments = (!deleted_aligns.
empty());
1157 boolcreate_xref_map =
true;
1161create_xref_map =
false;
User-defined methods of the data storage class.
@ eExtreme_Positional
numerical value
bool AdjustProteinFeaturePartialsToMatchCDS(CSeq_feat &new_prot, const CSeq_feat &cds)
AdjustProteinFeaturePartialsToMatchCDS A function to change an existing MolInfo to match a coding reg...
CRef< objects::CSeq_id > GetNewProtId(objects::CBioseq_Handle bsh, int &offset, string &id_label, bool general_only)
vector< CRef< objects::CSeq_id > > GetNewProtIdFromExistingProt(objects::CBioseq_Handle bsh, int &offset, string &id_label)
bool IsGeneralIdProtPresent(objects::CSeq_entry_Handle tse)
TSeqPos GetLength(void) const
void AddCommand(IEditCommand &command)
virtual void Unexecute()
Undo (opposite to Execute())
virtual void Execute()
Do the editing action.
static TId s_FindHighestFeatureId(const objects::CSeq_entry_Handle &entry)
static SIZE_TYPE Convert(const CTempString &src, TCoding src_coding, TSeqPos pos, TSeqPos length, string &dst, TCoding dst_coding)
SeqVector related exceptions.
TDim CheckNumRows(void) const
Validatiors.
const CSeq_id & GetSeq_id(TDim row) const
Get seq-id (the first one if segments have different ids).
namespace ncbi::objects::
Seq-loc iterator class â iterates all intervals from a seq-loc in the correct order.
const_iterator end() const
const_iterator find(const key_type &key) const
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
const_iterator end() const
void RemapOtherProtFeats(const CSeq_feat &old_cds, CSeq_feat &cds, CBioseq_Handle bh, CRef< CCmdComposite > composite, bool &any_actions)
void FindNewLocations(const CSeq_loc &feat_loc, CScope &scope, const map< CBioseq_Handle, vector< SGap >> &map_gaps, vector< CRef< CSeq_loc >> &locations, bool &comment, bool break_features, bool keep_gap_length)
static CRef< CCmdComposite > ConvertRawToDeltaByNsHugeFileCmd_impl(const CSeq_entry_Handle &seh, const SGapRequestInfo &request, CObject_id::TId &max_feat_id, bool &remove_alignments, int &count, map< CObject_id::TId, CObject_id::TId > &old_to_new, bool create_xref_map)
static CRef< CCmdComposite > ConvertRawToDeltaByNsCommand_impl(const CSeq_entry_Handle &seh, const SGapRequestInfo &request, bool &remove_alignments, int &count, map< CObject_id::TId, CObject_id::TId > &old_to_new, bool create_xref_map)
CRef< CCmdComposite > ConvertRawToDeltaByNsCommand(const CSeq_entry_Handle &seh, const SGapRequestInfo &request, bool &remove_alignments, int &count)
static void AdjustSingleFeature(const CMappedFeat &feat, CScope &scope, const map< CBioseq_Handle, vector< SGap >> &gaps, CRef< CCmdComposite > composite, bool split_gene_locations, bool break_features, bool keep_gap_length, bool create_general_only, CObject_id::TId &max_feat_id, map< CObject_id::TId, CObject_id::TId > &old_to_new, bool create_xref_map)
CRef< CCmdComposite > ConvertRawToDeltaByNsHugeFileCmd(const CSeq_entry_Handle &seh, const SGapRequestInfo &request, CObject_id::TId &max_feat_id, bool &remove_alignments, int &count)
static void UpdateFeaturesForGaps(const map< CBioseq_Handle, pair< vector< pair< int, int >>, vector< bool >>> &map_gaps, CRef< CCmdComposite > composite, bool break_features, bool keep_gap_length, bool create_general_only, CObject_id::TId &max_feat_id, map< CObject_id::TId, CObject_id::TId > &old_to_new, bool create_xref_map)
void GapLocationsFromNs(const CSeq_inst &inst, const size_t min_unknown, const long max_unknown, const size_t min_known, const long max_known, vector< pair< int, int >> &start_length_locs, vector< bool > &vec_is_known)
CRef< CSeq_feat > UpdateFeat(CRef< CSeq_loc > changed_loc, const CSeq_feat &feat, bool comment, CScope &scope)
static void s_ReplaceFeatureIdXref(CSeq_feat &f, map< CObject_id::TId, CObject_id::TId > &old_to_new)
void UpdateDensegAlignment(CSeq_align_Handle ah, CBioseq_Handle bsh, CRef< CCmdComposite > composite, const vector< pair< int, int >> &start_length_locs, const vector< bool > &vec_is_known, set< const CSeq_align * > &deleted_aligns)
static void x_AdjustOrigLabel(CSeq_feat &feat, size_t &id_offset, string &id_label, const string &qual)
void AdjustFeatureLocations(const map< CBioseq_Handle, vector< SGap >> &map_gaps, CRef< CCmdComposite > composite, bool split_gene_locations, bool break_features, bool keep_gap_length, bool create_general_only, CObject_id::TId &max_feat_id, map< CObject_id::TId, CObject_id::TId > &old_to_new, bool create_xref_map)
static void s_UpdateCodeBreaksAndAnticodons(CSeq_feat &feat, CScope &scope, const map< CBioseq_Handle, vector< SGap >> &gaps, bool break_features, bool keep_gap_length)
static void s_AddComment(CRef< CSeq_feat > new_feat)
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
int TSignedSeqPos
Type for signed sequence position.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
CRef< CSeq_loc > MakeSeq_loc(EMakeType make_type=eMake_CompactType) const
return constructed CSeq_loc with all changes
bool IsPartialStart(ESeqLocExtremes ext) const
check start or stop of location for e_Lim fuzz
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Override Assign() to incorporate cache invalidation.
TSeqPos GetStart(ESeqLocExtremes ext) const
Return start and stop positions of the seq-loc.
CSeq_loc_I InsertInterval(const CSeq_id_Handle &id, const TRange &range, ENa_strand strand=eNa_strand_unknown)
Insert new element before the current one (.
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
void SetPartialStart(bool val, ESeqLocExtremes ext)
set / remove e_Lim fuzz on start or stop (lt/gt - indicating partial interval)
CRef< CSeq_loc > Intersect(const CSeq_loc &other, TOpFlags flags, ISynonymMapper *syn_mapper) const
Find the intersection with the seq-loc, merge/sort resulting ranges depending on flags.
void SetPartialStop(bool val, ESeqLocExtremes ext)
bool IsPartialStop(ESeqLocExtremes ext) const
CSeq_loc_I InsertNull(void)
Set of Insert*() methods.
TSeqPos GetStop(ESeqLocExtremes ext) const
const CSeq_id & GetId(const CSeq_loc &loc, CScope *scope)
If all CSeq_ids embedded in CSeq_loc refer to the same CBioseq, returns the first CSeq_id found,...
static CCdregion::EFrame FindBestFrame(const CSeq_feat &cds, CScope &scope)
Find "best" frame for a coding region.
static void Translate(const string &seq, string &prot, const CGenetic_code *code, bool include_stop=true, bool remove_trailing_X=false, bool *alt_start=NULL, bool is_5prime_complete=true, bool is_3prime_complete=true)
Translate a string using a specified genetic code.
CRef< CSeq_loc > Map(const CSeq_loc &src_loc)
Map seq-loc.
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
CSeq_loc_Mapper_Base & SetMergeAbutting(void)
Merge only abutting intervals, keep overlapping.
@ eProductToLocation
Map from the feature's product to location.
@ eLocationToProduct
Map from the feature's location to product.
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
const CSeq_annot_Handle & GetAnnot(void) const
Get handle to seq-annot for this feature.
CConstRef< CSeq_align > GetSeq_align(void) const
Get const reference to current seq-align.
virtual const CSeq_loc & GetLocation(void) const
CSeq_entry_Handle GetParentEntry(void) const
Get parent Seq-entry handle.
CScope & GetScope(void) const
Get scope this handle belongs to.
CScope & GetScope(void) const
Get scope this handle belongs to.
CConstRef< CSeq_feat > GetOriginalSeq_feat(void) const
CSeqFeatData::ESubtype GetFeatSubtype(void) const
CRef< CSeq_loc > GetRangeSeq_loc(TSeqPos start, TSeqPos stop, ENa_strand strand=eNa_strand_unknown) const
Return CSeq_loc referencing the given range and strand on the bioseq If start == 0,...
bool IsPlainFeat(void) const
Check if this is plain feature.
bool IsSynonym(const CSeq_id &id) const
Check if this id can be used to obtain this bioseq handle.
const CSeq_loc & GetLocation(void) const
const CSeq_feat & GetOriginalFeature(void) const
Get original feature with unmapped location/product.
const CSeq_feat_Handle & GetSeq_feat_Handle(void) const
Get original feature handle.
CSeq_align_Handle GetSeq_align_Handle(void) const
Get original alignment handle.
CConstRef< CSeq_feat > GetSeq_feat(void) const
Get current seq-feat.
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 bool EndsWith(const CTempString str, const CTempString end, ECase use_case=eCase)
Check if a string ends with a specified suffix value.
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
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 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.
TTo GetTo(void) const
Get the To member data.
TFrom GetFrom(void) const
Get the From member data.
bool IsId(void) const
Check if variant Id is selected.
TId GetId(void) const
Get the variant data.
const TAnticodon & GetAnticodon(void) const
Get the Anticodon member data.
bool IsTRNA(void) const
Check if variant TRNA is selected.
bool IsSetAnticodon(void) const
location of anticodon Check if a value has been assigned to Anticodon data member.
void SetAnticodon(TAnticodon &value)
Assign a value to Anticodon data member.
bool IsSetExt(void) const
generic fields for ncRNA, tmRNA, miscRNA Check if a value has been assigned to Ext data member.
void ResetAnticodon(void)
Reset Anticodon data member.
const TExt & GetExt(void) const
Get the Ext member data.
const TDenseg & GetDenseg(void) const
Get the variant data.
const TStarts & GetStarts(void) const
Get the Starts member data.
const TLens & GetLens(void) const
Get the Lens member data.
bool IsSetSegs(void) const
Check if a value has been assigned to Segs data member.
const TSegs & GetSegs(void) const
Get the Segs member data.
bool IsDenseg(void) const
Check if variant Denseg is selected.
bool IsSetComment(void) const
Check if a value has been assigned to Comment data member.
bool IsSetData(void) const
the specific data Check if a value has been assigned to Data data member.
bool IsSetQual(void) const
qualifiers Check if a value has been assigned to Qual data member.
void SetLocation(TLocation &value)
Assign a value to Location data member.
bool IsCdregion(void) const
Check if variant Cdregion is selected.
void SetComment(const TComment &value)
Assign a value to Comment data member.
void ResetCode_break(void)
Reset Code_break data member.
void SetPartial(TPartial value)
Assign a value to Partial data member.
void SetProduct(TProduct &value)
Assign a value to Product data member.
const TId & GetId(void) const
Get the Id member data.
const TLocal & GetLocal(void) const
Get the variant data.
const TLocation & GetLocation(void) const
Get the Location member data.
bool IsLocal(void) const
Check if variant Local is selected.
const TData & GetData(void) const
Get the Data member data.
const TExcept_text & GetExcept_text(void) const
Get the Except_text member data.
void SetId(TId &value)
Assign a value to Id data member.
bool IsSetExcept_text(void) const
explain if except=TRUE Check if a value has been assigned to Except_text data member.
void SetData(TData &value)
Assign a value to Data data member.
TCode_break & SetCode_break(void)
Assign a value to Code_break data member.
const TCdregion & GetCdregion(void) const
Get the variant data.
bool IsSetId(void) const
Check if a value has been assigned to Id data member.
const TProduct & GetProduct(void) const
Get the Product member data.
const TComment & GetComment(void) const
Get the Comment member data.
void ResetLocation(void)
Reset Location data member.
vector< CRef< CSeqFeatXref > > TXref
vector< CRef< CGb_qual > > TQual
const TRna & GetRna(void) const
Get the variant data.
TQual & SetQual(void)
Assign a value to Qual data member.
const TCode_break & GetCode_break(void) const
Get the Code_break member data.
bool IsSetProduct(void) const
product of process Check if a value has been assigned to Product data member.
bool IsRna(void) const
Check if variant Rna is selected.
bool IsSetCode_break(void) const
individual exceptions Check if a value has been assigned to Code_break data member.
bool IsEmpty(void) const
Check if variant Empty is selected.
bool IsNull(void) const
Check if variant Null is selected.
const TInst & GetInst(void) const
Get the Inst member data.
const TId & GetId(void) const
Get the Id member data.
void SetInst(TInst &value)
Assign a value to Inst data member.
@ eRepr_raw
continuous sequence
@ 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
@ eMol_na
just a nucleic acid
constexpr auto front(list< Head, As... >, T=T()) noexcept -> Head
constexpr bool empty(list< Ts... >) noexcept
TLocAdjustmentVector NormalizeUnknownLengthGaps(CSeq_inst &inst, TSeqPos unknown_length=100)
NormalizeUnknownLengthGaps A function to adjust the length of unknown-length gaps to a specific lengt...
void ConvertRawToDeltaByNs(CSeq_inst &inst, size_t min_unknown, int max_unknown, size_t min_known, int max_known, bool is_assembly_gap=false, int gap_type=CSeq_gap::eType_unknown, int linkage=-1, int linkage_evidence=-1)
ConvertRawToDeltaByNs A function to convert a raw sequence to a delta sequence, using runs of Ns to d...
#define row(bind, expected)
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