(ival.GetFrom() > 3) {
40ival.SetFrom(ival.GetFrom() - 3);
45 if(ival.GetTo() <
len- 4) {
46ival.SetTo(ival.GetTo() + 3);
60 boolmodified =
false;
64 const CSeq_feat& cds = fi->GetOriginalFeature();
84 catch(
constexception&)
90 boolfound_start_codon =
false;
91 boolfound_stop_codon =
false;
92 if(alignment && alignment->IsSetSegs() && alignment->GetSegs().IsSpliced())
95seq_id->Assign(*match_loc->GetId());
96 ITERATE(objects::CSpliced_seg::TExons, exon_it, alignment->GetSegs().GetSpliced().GetExons())
98 CRef<objects::CSeq_loc>exon(
newobjects::CSeq_loc(*seq_id, (*exon_it)->GetGenomic_start(), (*exon_it)->GetGenomic_end()));
99 if((*exon_it)->IsSetGenomic_strand())
101exon->SetStrand((*exon_it)->GetGenomic_strand());
103cds_loc->SetMix().Set().push_back(exon);
105 ITERATE(objects::CSpliced_seg::TModifiers, mod_it, alignment->GetSegs().GetSpliced().GetModifiers())
107 if((*mod_it)->IsStart_codon_found())
109found_start_codon = (*mod_it)->GetStart_codon_found();
111 if((*mod_it)->IsStop_codon_found())
113found_stop_codon = (*mod_it)->GetStop_codon_found();
118 if(!cds_loc->IsMix())
124 if(cds_loc->GetMix().Get().size() == 1)
127cds_loc->Assign(*exon);
131 if(!found_start_codon)
135 if(found_stop_codon)
139 if(cds_loc->IsMix())
167new_gene->Assign(*gene);
171 id->Assign(*(cds_loc->GetId()));
173new_gene_loc->SetInt(*new_int);
176new_gene->SetLocation().Assign(*new_gene_loc);
@ eExtreme_Positional
numerical value
@ eExtreme_Biological
5' and 3'
CLocalRange< TOffset > TRange
define for the fundamental building block of sequence ranges
Output filtering parameters.
@ ePassThrough
all zeroes - no filtering
spliced protein to genomic alignment
CRef< objects::CSeq_align > FindAlignment(objects::CScope &scope, const objects::CSeq_id &protein, const objects::CSeq_loc &genomic, CProSplignOutputOptions output_options=CProSplignOutputOptions())
Aligns protein to a region on genomic sequence.
static void ExtendIntervalToEnd(objects::CSeq_interval &ival, size_t len)
static CRef< CCmdComposite > apply(CSeq_entry_Handle tse, bool update_genes)
namespace ncbi::objects::
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
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
bool IsPartialStop(ESeqLocExtremes ext) const
sequence::ECompare Compare(const CSeq_loc &loc1, const CSeq_loc &loc2, CScope *scope)
Returns the sequence::ECompare containment relationship between CSeq_locs.
@ eSame
CSeq_locs contain each other.
CConstRef< CSeq_feat > GetOverlappingGene(const CSeq_loc &loc, CScope &scope, ETransSplicing eTransSplicing=eTransSplicing_Auto)
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
TSeqPos GetBioseqLength(void) const
CConstRef< CSeq_id > GetSeqId(void) const
Get id which can be used to access this bioseq handle Throws an exception if none is available.
TInst_Length GetInst_Length(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
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.
const TProduct & GetProduct(void) const
Get the Product member data.
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