sel_srv->GetCurrentSelection(
objects);
70 const CObject* ptr = it->object.GetPointer();
71 constobjects::CSeq_feat* seqfeat =
dynamic_cast<constobjects::CSeq_feat*
>(ptr);
74 result.push_back(seqfeat);
81vector<const objects::CSeq_feat*> orig_vec;
85wxMessageBox(
wxT(
"No feature selected"),
wxT(
"Error"), wxOK | wxICON_ERROR);
88 boolcreate_general_only =
false;
95 ITERATE(vector<const objects::CSeq_feat*>, orig_it, orig_vec)
98 constobjects::CSeq_feat*
orig= *orig_it;
104 boolis_exon =
false;
106 if(
orig->IsSetData() &&
orig->GetData().IsImp() &&
orig->GetData().GetImp().IsSetKey() &&
107 orig->GetData().GetImp().GetKey() ==
"exon")
112 if((*qual)->IsSetQual() && (*qual)->GetQual() ==
"number"&& (*qual)->IsSetVal())
123 boolis_cds =
false;
124objects::CBioseq_Handle product;
125 if(
orig->IsSetData() &&
orig->GetData().IsCdregion())
138interval->
SetInt().SetFrom(feat_start);
139interval->
SetInt().SetTo(feat_stop);
141 id->Assign(*feat_loc.
GetId());
142interval->
SetInt().SetId(*
id);
143 if(loc_it.IsSetStrand())
144interval->
SetInt().SetStrand(loc_it.GetStrand());
146 if(loc_it.GetPos() == 0)
148 if(loc_it.GetPos() + 1 == loc_it.GetSize())
156 if(is_exon && exon_number > 0)
160 if((*qual)->IsSetQual() && (*qual)->GetQual() ==
"number"&& (*qual)->IsSetVal())
173objects::CFeat_CI prot_feat_ci(product, objects::SAnnotSelector(objects::CSeqFeatData::eSubtype_prot));
176prot_feat.
Reset(
newobjects::CSeq_feat());
177prot_feat->Assign(*(prot_feat_ci->GetSeq_feat()));
180new_feat->
SetData().SetCdregion().SetFrame(objects::CSeqTranslator::FindBestFrame(*new_feat,scope));
194 if(is_cds && product)
198cmd_processor->
Execute(composite);
205 "internal transcribed spacer 1",
206 "internal transcribed spacer 2",
211 "5.8S ribosomal RNA",
212 "16S ribosomal RNA",
213 "18S ribosomal RNA",
214 "28S ribosomal RNA",
221 while(!name.empty())
236 if(
str==
"5.8S"||
str==
"16S"||
str==
"18S"||
str==
"28S")
237 str+=
" ribosomal RNA";
240 for(
size_tj = 0; j < name.size(); j++)
264 boolmodified =
false;
266 for(
CFeat_CIfeat_ci(tse); feat_ci; ++feat_ci)
270 if(!feat_ci->GetOriginalFeature().IsSetData() || !feat_ci->GetOriginalFeature().GetData().IsRna())
279 if(name.empty() && feat_ci->GetOriginalFeature().IsSetData() && feat_ci->GetOriginalFeature().GetData().IsRna())
280name = feat_ci->GetOriginalFeature().GetData().GetRna().GetRnaProductName();
282vector<string>
names;
291interval->
SetInt().SetFrom(feat_start);
292interval->
SetInt().SetTo(feat_stop);
294 id->Assign(*feat_loc.
GetId());
295interval->
SetInt().SetId(*
id);
296 if(loc_it.IsSetStrand())
297interval->
SetInt().SetStrand(loc_it.GetStrand());
299 if(loc_it.GetPos() == 0)
301 if(loc_it.GetPos() + 1 == loc_it.GetSize())
305new_feat->
Assign(feat_ci->GetOriginalFeature());
309 if(num_locs <
names.size())
312new_feat->
SetData().SetRna().SetRnaProductName(
str, reminder);
@ eExtreme_Positional
numerical value
bool IsGeneralIdProtPresent(objects::CSeq_entry_Handle tse)
void AddCommand(IEditCommand &command)
static CRef< CCmdComposite > apply(objects::CSeq_entry_Handle tse)
static void RNAWordsFromString(string name, vector< string > &names)
static void apply(IWorkbench *wb, ICommandProccessor *cmd_processor, CScope &scope)
static void GetSeqFeats(IWorkbench *wb, vector< const objects::CSeq_feat * > &result)
namespace ncbi::objects::
Seq-loc iterator class â iterates all intervals from a seq-loc in the correct order.
Undo/Redo interface for editing operations.
virtual void Execute(IEditCommand *command, wxWindow *window=0)=0
IWorkbench is the central interface in the application framework.
static const struct name_t names[]
static const char * str(char *buf, int n)
unsigned int TSeqPos
Type for sequence locations and lengths.
#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.
CIRef< T > GetServiceByType()
retrieves a typed reference to a service, the name of C++ type is used as the name of the service.
vector< SConstScopedObject > TConstScopedObjects
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
bool IsPartialStart(ESeqLocExtremes ext) const
check start or stop of location for e_Lim fuzz
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)
void SetPartialStop(bool val, ESeqLocExtremes ext)
bool IsPartialStop(ESeqLocExtremes ext) const
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
void GetAllTSEs(TTSE_Handles &tses, enum ETSEKind kind=eManualTSEs)
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
vector< CSeq_entry_Handle > TTSE_Handles
bool IsSetComment(void) const
const CSeq_annot_Handle & GetAnnot(void) const
Get handle to seq-annot for this feature.
virtual const CSeq_loc & GetLocation(void) const
CSeq_entry_Handle GetParentEntry(void) const
Get parent Seq-entry handle.
const string & GetComment(void) const
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static void TruncateSpacesInPlace(string &str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string (in-place)
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static unsigned int StringToUInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to unsigned int.
static void TrimPrefixInPlace(string &str, const CTempString prefix, ECase use_case=eCase)
Trim prefix from a string (in-place)
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 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.
@ eTrunc_Begin
Truncate leading whitespace only.
TTo GetTo(void) const
Get the To member data.
TFrom GetFrom(void) const
Get the From member data.
void SetLocation(TLocation &value)
Assign a value to Location data member.
void SetPartial(TPartial value)
Assign a value to Partial data member.
const TLocation & GetLocation(void) const
Get the Location member data.
void SetData(TData &value)
Assign a value to Data data member.
USING_SCOPE(ncbi::objects)
static const char * RNA_words[]
where boath are integers</td > n< td ></td > n</tr > n< tr > n< td > tse</td > n< td > optional</td > n< td > String</td > n< td class=\"description\"> TSE option controls what blob is orig
Utility macros and typedefs for exploring NCBI objects from seqfeat.asn.
#define FOR_EACH_GBQUAL_ON_SEQFEAT(Itr, Var)
FOR_EACH_GBQUAL_ON_SEQFEAT EDIT_EACH_GBQUAL_ON_SEQFEAT.
#define EDIT_EACH_GBQUAL_ON_SEQFEAT(Itr, Var)
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