;
95 if(default_gap_type) {
96 return*default_gap_type;
98 throwruntime_error(
"couldn't get gap type");
111 if(default_linkage) {
112 return*default_linkage;
114 throwruntime_error(
"couldn't get linkage");
124 stringlinkage_evidence_str;
126linkage_evidence_str,
128os << linkage_evidence_str;
143 const string& object_id,
144 const string* default_gap_type,
145 const bool* default_linkage,
147 constvector<char>& component_types,
151 unsigned int count= 0;
153 if(!component_types.empty()
155 stringerror_str =
"length of component_types (" 157+
") is inconsistent with number of segments (" 163 TSeqPosseg_pos = iter.GetPosition();
164 TSeqPosseg_end = iter.GetPosition() + iter.GetLength();
165 if(start_pos > seg_end) {
170 if(start_pos > seg_pos) {
171start_offs = start_pos - seg_pos;
174 if(stop_pos < seg_pos) {
180 if(seg_end > stop_pos) {
181end_offs = seg_end - stop_pos;
188os <<
'\t'<< seg_pos + start_offs + 1;
191os <<
'\t'<< seg_end - end_offs;
194os <<
'\t'<<
count+ 1;
196 switch(iter.GetType()) {
200 if(component_types.empty()) {
203os << component_types[
count];
206os <<
'\t'<< iter.GetLength();
208os <<
'\t'<<
GetGapType(iter, default_gap_type);
210os <<
'\t'<< (
GetLinkage(iter, default_linkage) ?
"yes":
"no");
214 if(agp_version >= 2) {
225 if(component_types.empty()) {
229os << component_types[
count];
243 if(comp_id_mapper) {
244comp_id_mapper->
do_map( id_str );
257os <<
'\t'<< iter.GetRefPosition() + start_offs + 1;
259os <<
'\t'<< iter.GetRefEndPosition() - end_offs;
261 if(iter.GetRefMinusStrand()) {
282treat_as_raw =
true;
285treat_as_raw =
true;
289 if((*iter)->IsLoc() || !(*iter)->GetLiteral().IsSetSeq_data()) {
290treat_as_raw =
false;
295treat_as_raw =
false;
301loc->
SetInt().SetFrom(0);
313 const string& object_id,
315 constvector<char>& component_types,
320object_id,
nullptr,
nullptr, scope, component_types,
321comp_id_mapper, agp_version);
326 const string& object_id,
327 constvector<char>& component_types,
332object_id,
nullptr,
nullptr,
333handle.
GetScope(), component_types, comp_id_mapper, agp_version);
340 const string& object_id,
341 constvector<char>& component_types,
346object_id,
nullptr,
nullptr,
347handle.
GetScope(), component_types, comp_id_mapper, agp_version);
353 const string& object_id,
354 const string& default_gap_type,
355 booldefault_linkage,
357 constvector<char>& component_types,
362object_id, &default_gap_type, &default_linkage,
363scope, component_types, comp_id_mapper, agp_version);
368 const string& object_id,
369 const string& default_gap_type,
370 booldefault_linkage,
371 constvector<char>& component_types,
376object_id, &default_gap_type, &default_linkage,
377handle.
GetScope(), component_types, comp_id_mapper, agp_version);
384 const string& object_id,
385 const string& default_gap_type,
386 booldefault_linkage,
387 constvector<char>& component_types,
392object_id, &default_gap_type, &default_linkage,
393handle.
GetScope(), component_types, comp_id_mapper, agp_version);
432 for( ; desc_iter; ++desc_iter) {
433 switch(desc_iter->
Which()) {
455 if(*kw ==
"HTGS_DRAFT"|| *kw ==
"HTGS_FULLTOP") {
458 if(*kw ==
"HTGS_ACTIVEFIN") {
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
static void WriteLinkageEvidence(CNcbiOstream &os, const CSeqMap_CI &iter)
static char s_DetermineComponentType(const CSeq_id &id, CScope &scope)
void AgpWrite(CNcbiOstream &os, const CSeqMap &seq_map, const string &object_id, CScope &scope, const vector< char > &component_types, CAgpWriteComponentIdMapper *comp_id_mapper, int agp_version)
static bool GetLinkage(const CSeqMap_CI &iter, const bool *default_linkage)
static CConstRef< CSeqMap > s_SeqMapForHandle(const CBioseq_Handle &handle)
static string_view GetGapType(const CSeqMap_CI &iter, const string *default_gap_type)
static void s_AgpWrite(CNcbiOstream &os, const CSeqMap &seq_map, TSeqPos start_pos, TSeqPos stop_pos, const string &object_id, const string *default_gap_type, const bool *default_linkage, CScope &scope, const vector< char > &component_types, CAgpWriteComponentIdMapper *comp_id_mapper, int agp_version)
Write to stream in agp format.
virtual void do_map(string &in_out_component_id)=0
static bool VecToString(string &output_result, const TLinkage_evidence &linkage_evidence)
SeqMap related exceptions.
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
void GetLabel(string *label, ELabelType type=eDefault, TLabelFlags flags=fLabel_Default) const
Append a label for this Seq-id to the supplied string.
CConstRef< CSeq_id > GetSeqId(void) const
@ eContent
Untagged human-readable accession or the like.
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,...
@ eGetId_Best
return the "best" gi (uses FindBestScore(), with CSeq_id::CalculateScore() as the score function
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
const TInst_Ext & GetInst_Ext(void) const
TSeqPos GetBioseqLength(void) const
const CSeq_id_Handle & GetSeq_id_Handle(void) const
Get handle of id used to obtain this bioseq handle.
TInst_Repr GetInst_Repr(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
const CSeqMap & GetSeqMap(void) const
Get sequence map.
const CSeq_data & GetData(void) const
will allow only regular data segments (whole, plus strand)
vector< CSeqdesc::E_Choice > TDescChoices
static CRef< CSeqMap > CreateSeqMapForSeq_loc(const CSeq_loc &loc, CScope *scope)
CSeqMap_CI Begin(CScope *scope) const
NCBI style methods.
TSeqPos GetLength(CScope *scope) const
size_t GetSegmentsCount(void) const
@ eSeqRef
reference to Bioseq
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
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.
const TKeywords & GetKeywords(void) const
Get the Keywords member data.
bool CanGetKeywords(void) const
Check if it is safe to call GetKeywords method.
TLinkage GetLinkage(void) const
Get the Linkage member data.
const TGap & GetGap(void) const
Get the variant data.
TTech GetTech(void) const
Get the Tech member data.
const TGenbank & GetGenbank(void) const
Get the variant data.
const TLinkage_evidence & GetLinkage_evidence(void) const
Get the Linkage_evidence member data.
const TDelta & GetDelta(void) const
Get the variant data.
const Tdata & Get(void) const
Get the member data.
E_Choice Which(void) const
Which variant is currently selected.
list< CRef< CDelta_seq > > Tdata
const TMolinfo & GetMolinfo(void) const
Get the variant data.
bool IsSetLinkage_evidence(void) const
Check if a value has been assigned to Linkage_evidence data member.
@ eRepr_delta
sequence made by changes (delta) to others
@ eRepr_raw
continuous sequence
@ eTech_htgs_2
ordered High Throughput sequence contig
@ eTech_htgs_3
finished High Throughput sequence
@ eTech_htgs_1
unordered High Throughput sequence contig
@ eTech_wgs
whole genome shotgun sequencing
@ eTech_htgs_0
single genomic reads for coordination
@ e_Genbank
GenBank specific info.
@ e_Molinfo
info on the molecule and techniques
@ eType_clone
Deprecated. Used only for AGP 1.1.
@ eType_fragment
Deprecated. Used only for AGP 1.1.
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