75 m_TotalRange(total_range),
77 m_SeparateTypes(separate_types),
78 m_LinkGenes(link_genes),
103 TMap subtype_to_feats;
113 for ( ; feat_it && !
IsCanceled(); ++feat_it) {
124 if(subtype != prev_subtype) {
125 TMap::iterator it = subtype_to_feats.find(subtype);
126 if(it == subtype_to_feats.end()) {
127 it = subtype_to_feats.insert(
131 prev_subtype = subtype;
151 if( ! locs.empty()) {
173 static const size_t kHistThreshold = 1000;
176 size_t n_feat = feat_locs.size();
177 if(n_feat > kHistThreshold) {
190 }
else if(n_feat > 0) {
235 m_RowHandle(row_handle),
238 m_isDataReadSync(isDataReadSync),
288 bool include_snp =
false;
295 bool found = (filter.
find(subtype) != filter.
end());
306 if( ! final_set.
empty()) {
320 x_StartJob(sel, total_range, map_ranges, descr, separate_types, link_genes, order);
338 start < 0.0 || start > stop) {
392 gl.
BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
394 gl.
Enable(GL_LINE_SMOOTH);
395 glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
408 gl.
Color4d(0.8, 0.8, 0.8, alpha);
412 gl.
Color4d(0.2, 0.2, 0.2, alpha);
436 if( ! m_StatusText.empty()) {
463 rc_vp.
SetVert(vp_bottom, vp_top);
469 rc_vis.
SetVert(m_bottom, m_top);
490 TSignedRange total_r;
494 unique_ptr<IAlnSegmentIterator>
509 for( ; *it; ++(*it)) {
522 aln_idh, aln_range.GetFrom(),
533 TMapRanges& map_ranges,
544 descr, separate_types, link_genes, order));
555 CAppJobError errorNotification(
"Synchronous feature loading job failed.");
569 disp.
StartJob(*job,
"ObjManagerEngine", *
this, -1,
true);
574 ERR_POST(
"CFeatureGraph::x_StartJob - Failed");
587 TJobID job_id = it->first;
606 switch(e.GetErrCode()) {
613 ERR_POST(
"CFeatureGraph::x_CancelJob() " <<
"Error canceling job");
621 ERR_POST(
"CFeatureGraph::x_CancelJob - invalid job id" << job_id);
670 for (
size_t i = 0;
i <
n; ++
i) {
695 size_t n = graphs.size();
701 ERR_POST(
"CFeatureGraph::x_OnJobCompleted() notification for job "
702 << notify.
GetJobID() <<
" does not contain results.");
713 ERR_POST(
"CFeatureGraph::x_OnJobFailed() notification for job "
714 << notify.
GetJobID() <<
" does not have an error object");
757 x_StartJob(load_set, gene_set,
true, total_range, *map_ranges,
"Gene, CDS, mRNA",
false,
true, 10);
759 x_StartJob(load_set, sts_set,
true, total_range, *map_ranges,
"STS",
false,
false, 20);
760 x_StartJob(load_set, others_set,
false, total_range, *map_ranges,
"Other feature types",
false,
false, 30);
797 m_LinkGenes(link_genes),
814 size_t n = feat_locs.size();
816 for(
size_t i = 0;
i <
n;
i++) {
817 SFeatRec s(feat_locs[
i]);
839 SFeatRec s(*feat_glyph);
865 gl.
BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
889 for(
size_t j = 0; j < recs.size(); j++ ) {
905 int angle = i_color * 131;
914 static TTypeToColor s_map;
921 TTypeToColor::iterator it = s_map.find(subtype);
922 if(it == s_map.end()) {
923 size_t i = s_map.size();
945 if(
r.GetFrom() > rc_vis.
Right() ||
r.GetToOpen() < rc_vis.
Left()) {
962 y2 = bottom + ((layer == cluster.
m_LastLayer) ? -2 : 0);
966 gl.
Rectd(x1 - cl_off, y1, x2 + cl_off, y2);
984 x1 =
r.GetFrom() - off_x;
985 x2 =
r.GetToOpen() - off_x;
987 if((x2 - x1) / scale_x < 1.0) {
989 x1 = (x1 + x2 - scale_x) / 2;
1012 if(layer >= 0 && layer < (
int)
m_Layers.size()) {
1030 if(pos <
r.GetFrom()) {
1031 dist =
r.GetFrom() - pos;
1033 if(pos >
r.GetToOpen()) {
1034 dist = pos -
r.GetToOpen();
1040 if(min_dist < 0 || dist < min_dist) {
1095 }
else if (
data.IsGene() &&
data.GetGene().IsSetDesc()) {
1096 feat_title =
data.GetGene().GetDesc();
1100 if (feat_title !=
label) {
1102 title +=
"\nTitle: " + feat_title;
1109 title +=
"\nTotal length: ";
1115 title +=
"; Processed length: ";
1125 string prod_len_str;
1127 prod_len_str +=
"; Product length: ";
1130 title += prod_len_str;
1141 title +=
"\nPosition in alignment: start ";
1163 return p1.second > p2.second;
1173 vector<TIndexLenPair> feat_lens;
1174 feat_lens.reserve(feat_n);
1176 for(
size_t i = 0;
i < feat_n;
i++ ) {
1183 int len =
r.GetLength();
1189 std::stable_sort(feat_lens.begin(), feat_lens.end(),
s_ILPLonger);
1193 for(
size_t i = 0;
i < feat_n;
i++ ) {
1194 size_t index = feat_lens[
i].first;
1218 size_t n = feat_recs.size();
1219 for(
size_t i = 0;
i <
n;
i++ ) {
1230 size_t feat_n = feat_recs.size();
1233 for(
size_t i = 0;
i < feat_n;
i++ ) {
1241 m_FeatToRecFlag[feat] = TFeatToRecFlag::mapped_type(&feat_rec,
false);
1247 for(
size_t i = 0;
i < feat_n;
i++ ) {
1260 for(
size_t i = 0;
i < feat_n;
i++ ) {
1275 for(
size_t i = 0;
i < feat_n;
i++ ) {
1286 for(
size_t i = 0;
i < feat_n;
i++ ) {
1315 cluster.push_back(&feat_rec);
1325 vector<TFeatRecPtrLenPair> pairs;
1328 ITERATE(vector<TFeatRecPtrLenPair>, it_mrna, pairs) {
1329 SFeatRec* mrna_feat_rec = it_mrna->first;
1346 ITERATE(vector<TFeatRecPtrLenPair>, it_cds, pairs) {
1347 SFeatRec* cds_feat_rec = it_cds->first;
1353 TFeatRecPtrs::const_iterator it =
1354 std::find(cluster.begin(), cluster.end(), cds_feat_rec);
1363 cluster.push_back(&feat_rec);
1374 SFeatRec* cds_feat_rec = it->second.first;
1380 cluster.push_back(&feat_rec);
1392 return p1.second > p2.second;
1398 vector<TFeatRecPtrLenPair>& pairs)
1411 int len =
r.GetLength();
1416 std::stable_sort(pairs.begin(), pairs.end(),
s_FRPLPLonger);
1426 return (found && ! it->second.second);
1433 size_t cl_n = cluster.size();
1437 vector<TFeatRange> cluster_ranges(cl_n);
1439 for(
size_t i = 0;
i < cluster.size();
i++ ) {
1445 cluster_ranges[
i] =
r;
1455 static const TSeqPos kMinOffset = 500;
1459 for(
size_t i = 0;
i < cluster.size();
i++ ) {
1467 size_t layer_index =
m_Layers.size();
1471 for(
size_t j = 0; j < occ_n; j++ ) {
1474 size_t k_end =
min(cl_n, occ_n - j);
1475 for(
size_t k = 0; ! clash && k < k_end; k++ ) {
1490 if(layer_index + cl_n >
m_Layers.size()) {
1492 size_t k_end = layer_index + cl_n;
1493 for(
size_t k =
m_Layers.size(); k < k_end; k++ ) {
1501 size_t cluster_index =
m_Clusters.size() - 1;
1504 for(
size_t k = 0; k < cl_n; k++ ) {
1505 size_t index = size_t(layer_index + k);
1508 m_Layers[index]->m_FeatRecPtrs.push_back(rec);
1521 it->second.second =
true;
1538 it->second.second =
true;
1551 if (
r.GetFrom() > 0)
r.SetFrom(
r.GetFrom() - 1);
1552 r.SetTo(
r.GetTo() + 1);
1555 size_t layer_index =
m_Layers.size();
1558 for(
size_t j = 0; j <
m_Occupied.size(); j++ ) {
1566 if(layer_index ==
m_Layers.size()) {
1573 m_Layers[layer_index]->m_FeatRecPtrs.push_back(&rec);
1585 m_FeatLocs(feat_locs)
1588 const CSeq_loc& loc= *it->m_MappedLoc;
1608 return m_Map->GetStart();
1613 return m_Map->GetStop();
1619 return m_Map->GetWindow();
1625 return m_Map->GetBins();
1631 return (*
m_Map)[index];
1637 return m_Map->GetMax();
1657 if(
m_Map.get() ==
NULL || pos_start !=
m_Map->GetStart() || pos_stop !=
m_Map->GetStop()) {
1658 float window = float(pos_stop - start) / float(
kBins);
1659 m_Map.reset(
new TMap(pos_start, pos_stop, window));
1662 const CSeq_loc& loc= *it->m_MappedLoc;
1663 m_Map->AddLocation(loc);
static CRef< CScope > m_Scope
vector< TColl * > TCollVector
virtual void x_Init(TMappedFeatLocs &feat_locs, objects::CScope &scope, const string &label, bool link_genes)
void x_GetRecsSortedByLength(const TFeatList &input, vector< TFeatRecPtrLenPair > &pairs)
void x_GatherCluster(SFeatRec &feat_rec, TFeatRecPtrs &cluster)
virtual ~CAlignedFeatureGraph()
list< CConstRef< objects::CSeq_feat > > TFeatList
virtual bool NeedTooltip(CGlPane &pane, int vp_x, int vp_y)
virtual TVPPoint PreferredSize()
void x_RenderFeature(CGlPane &pane, const SFeatRec &rec, int layer, TModelUnit top, TModelUnit bottom)
virtual void Render(CGlPane &pane)
void x_PlaceCluster(TFeatRecPtrs &cluster)
pair< SFeatRec *, TSeqPos > TFeatRecPtrLenPair
virtual string x_GetTooltip(const SFeatRec &rec)
bool x_mRNA_CDS_ToBePlaced(const objects::CSeq_feat &feat)
CRef< objects::CScope > m_Scope
TFeatToRecFlag m_FeatToRecFlag
void x_SimpleLayout(TFeatRecPtrs &feat_recs)
void x_PlaceFeature(SFeatRec &rec)
void x_TryPlaceCDSFeature(SFeatRec &rec)
virtual string GetTooltip()
vector< SLayer * > TLayers
void x_LinkedLayout(TFeatRecPtrs &feat_recs)
vector< SFeatRec * > TFeatRecPtrs
CAppJobError Default implementation for IAppJobError - encapsulates a text error message.
IAppJobListener Interface for components that need to be notified about changes in Jobs.
CAppJobNotification Notification send by CAppJobEventTranslator.
CEvent - generic event implementation TODO TODO - Attachments.
virtual void Update(double start, double stop)
vector< SMappedFeatLoc > TMappedFeatLocs
CFeatHistogramDS(TMappedFeatLocs &feat_locs, const string &label)
CFeatHistogramDS.
virtual string GetLabel() const
virtual double GetStop() const
virtual double GetValue(size_t index)
value of the sample with the given index
virtual double GetMaxValue()
virtual double GetLimit() const
returns start of the series in model space
TMappedFeatLocs m_FeatLocs
virtual double GetStart() const
virtual double GetStep() const
discrete size in model space
virtual size_t GetCount() const
number of samples in the series
CFeatListItem - basic configuration data for one "feature" type.
string GetStoragekey() const
CConfigurableItems - a static list of items that can be configured.
bool GetItemBySubtype(int subtype, CFeatListItem &config_item) const
TFeatTypeItemSet m_FeatureTypes
defines what feature types / subtypes shall be shown
TGraphs m_PendingGraphs
Candidate graphs waiting for replacing the current ones.
CFeatureGraph(const IAlignRowHandle &row_handle, bool isDataReadSync)
virtual bool IsCreated() const
Graph is not considered fully functional until it has been "created" by the call to create function.
virtual const IAlnRowGraphProperties * GetProperties() const
void OnAJNotification(CEvent *evt)
void x_StartJob(const TFeatTypeItemSet &feat_set, const TSubtypeSet &filter, bool positive, CRange< TSeqPos > &total_range, TMapRanges &map_ranges, const string &descr, bool separate_types, bool link_genes, int order)
CFeatureGraphProperties m_Properties
void x_Create(double start, double stop)
CRef< TMapRanges > x_CreateMapRanges()
const IAlignRowHandle & m_RowHandle
virtual void Update(double start, double stop)
Update data according to the input range.
virtual void Render(CGlPane &pane, IAlnSegmentIterator &it)
CAppJobDispatcher::TJobID TJobID
objects::CMappingRanges TMapRanges
bool x_CancelJob(TJobID job_id)
void x_RenderStatusText(CGlPane &pane)
void x_CancelJobs()
Cancel all active jobs.
void x_OnJobFailed(CAppJobNotification ¬ify)
virtual void SetProperties(IAlnRowGraphProperties *props)
void x_OnJobCompleted(CAppJobNotification ¬ify)
CFeatureLoadingJobResult.
vector< CIRef< IRenderable > > TGraphs
virtual EJobState Run()
Function that does all the useful work, called by the Engine.
CRef< CFeatureLoadingJobResult > m_Result
CRange< TSeqPos > m_TotalRange
objects::CBioseq_Handle m_Handle
bool m_LinkGenes
links genes with CDS and mRNA
objects::CMappingRanges TMapRanges
virtual string GetDescr() const
Returns a human readable description of the Job (optional)
vector< SMappedFeatLoc > TMappedFeatLocs
CMutex m_Mutex
synchronizes access to the Job members
objects::SAnnotSelector m_Sel
CFeatureLoadingJob(const objects::CBioseq_Handle &handle, objects::SAnnotSelector &sel, const CRange< TSeqPos > &total_range, TMapRanges &ranges, const string &descr, bool separate_types, bool link_genes, int track_order)
CFeatureLoadingJob.
virtual ~CFeatureLoadingJob()
bool m_SeparateTypes
separate features by different graphs
virtual CConstIRef< IAppJobProgress > GetProgress()
return progress object, the function shall be synchronized internally.
CIRef< IAppJobError > m_Error
CRef< TMapRanges > m_MapRanges
virtual CConstIRef< IAppJobError > GetError()
Returns IAppJobError object describing internal error that caused the Job to fail.
virtual CRef< CObject > GetResult()
Returns the Job Result.
CIRef< IRenderable > x_CreateGraph(TMappedFeatLocs &feat_locs, const string &descr)
CGraphContainer CGraphContainer a composite IRenderable that manages several child IRenderable graphs...
vector< TGraphRef > TGraphs
virtual void RemoveAllGraphs()
virtual size_t GetGraphsCount() const
virtual void Render(CGlPane &pane)
virtual bool AddGraph(TGraph *graph, bool front=false)
ELayoutPolicy m_LayoutPolicy
virtual TVPPoint PreferredSize()
void SetProperties(const SProperties &props)
virtual void SetDataSource(IHistogramGraphDS *ds)
Storage for multiple mapping ranges.
bool IntersectingWith(const TRange &r) const
class CRgbaColor provides a simple abstraction for managing colors.
ESubtype GetSubtype(void) const
static const CFeatList * GetFeatList()
@ eSubtype_bad
These no longer need to match the FEATDEF values in the C toolkit's objfdef.h.
list< CRef< CSeqGlyph > > TObjects
namespace ncbi::objects::
Seq-loc iterator class – iterates all intervals from a seq-loc in the correct order.
static CSeq_id_Handle GetSeq_id_Handle(const const_iterator &iter)
IAlignRowHandle provides an abstract way to access alignment row data.
virtual TSignedSeqPos GetSeqAlnStart() const =0
virtual const objects::CBioseq_Handle & GetBioseqHandle() const =0
virtual TSignedSeqPos GetSeqPosFromAlnPos(TSeqPos aln_pos, IAlnExplorer::ESearchDirection dir=IAlnExplorer::eNone, bool try_reverse_dir=true) const =0
virtual TSignedSeqPos GetSeqAlnStop() const =0
virtual IAlnSegmentIterator * CreateSegmentIterator(const IAlnExplorer::TSignedRange &range, IAlnSegmentIterator::EFlags flags) const =0
@ eRight
Towards higher aln coord (always to the right)
@ eLeft
Towards lower aln coord (always to the left)
Alignment segment iterator interface.
@ eSkipInserts
Iterate segments where at least some rows are aligned (including gap segments)
Alignment segment interface.
virtual const TSignedRange & GetRange(void) const =0
Get the selected row range.
bool IsReversed(void) const
bool IsAligned(void) const
virtual const TSignedRange & GetAlnRange(void) const =0
Get alignment range for the segment.
IRenderable class IRenderable defines an abstract interface required for rendering graphical panels i...
virtual void SetModelRect(const TModelRect &rc)=0
virtual void SetVPRect(const TVPRect &rc)=0
virtual TVPPoint PreferredSize()=0
container_type::iterator iterator
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
Include a standard set of the NCBI C++ Toolkit most basic headers.
ON_EVENT(CAppJobNotification, CAppJobNotification::eStateChanged, &CFeatureGraph::OnAJNotification) TVPPoint CFeatureGraph
CRgbaColor & GetColor(CSeqFeatData::ESubtype subtype)
static const int kLayerOffY
CRgbaColor GetRandomColor(int i_color)
CRange< TSeqPos > TFeatRange
static const int kGradColors
CFeatureGraph.
pair< size_t, TSeqPos > TIndexLenPair
static bool s_ILPLonger(const TIndexLenPair &p1, const TIndexLenPair &p2)
static const int kLayerH
CAlignedFeatureGraph.
static bool s_FRPLPLonger(const CAlignedFeatureGraph::TFeatRecPtrLenPair &p1, const CAlignedFeatureGraph::TFeatRecPtrLenPair &p2)
static const int kTextOff
static const int kTootipPix
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
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.
void swap(NCBI_NS_NCBI::pair_base_member< T1, T2 > &pair1, NCBI_NS_NCBI::pair_base_member< T1, T2 > &pair2)
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
static objects::SAnnotSelector GetAnnotSelector(TAnnotFlags flags=0)
request an annotation selector for a given type
virtual void Enable(GLenum glstate)=0
virtual void Begin(GLenum mode)=0
Start rendering.
CGlPoint< TVPUnit > TVPPoint
virtual void BlendFunc(GLenum sfactor, GLenum dfactor)=0
Options to be used when GL_BLEND is enabled.
void Color3d(GLdouble r, GLdouble g, GLdouble b)
IRender & GetGl()
convenience function for getting current render manager
void RectC(const TVPRect &rc)
void Vertex2d(GLdouble x, GLdouble y)
TModelUnit GetOffsetY() const
void Color4d(GLdouble r, GLdouble g, GLdouble b, GLdouble a)
TModelUnit UnProjectX(TVPUnit m_x) const
bool PtInRect(T x, T y) const
virtual void End()=0
Finish rendering (create buffer and send to renderer)
void Inflate(T d_x, T d_y)
virtual void PolygonMode(GLenum face, GLenum mode)=0
Set the polygon rasterization mode.
void SetVert(T bottom, T top)
virtual TModelUnit TextHeight(void) const
virtual void TextOut(const char *text) const
TextOut interface Write the specified text and set up state and transformation as needed.
TModelRect & GetVisibleRect(void)
TModelUnit GetScaleX(void) const
TModelUnit GetOffsetX() const
virtual void ColorC(const CRgbaColor &c)=0
Set current color (glColor{3,4}{f,d}{v,})
void Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
CConstIRef< IAppJobError > GetError() const
returns non-null pointer only if job Failed
static CRgbaColor RotateColor(const CRgbaColor &c, float degrees)
Rotate the hue of the color by degrees.
static void GetLabel(const CObject &obj, string *label, ELabelType type=eDefault)
static CAppJobDispatcher & GetInstance()
CRef< CObject > GetResult() const
returns non-null pointer only if Completed or Running and has temporary results available
virtual bool IsCanceled() const override
bool DeleteJob(TJobID job_id)
when a Job is deleted the listener is not notified
EJobState
Job states (describe FSM)
TJobID StartJob(IAppJob &job, const string &engine_name, IEngineParams *params=NULL)
Starts a Job on the specified engine in "passive mode" - no notifications or progress reports will be...
#define END_EVENT_MAP()
Ends definition of Command Map.
#define BEGIN_EVENT_MAP(thisClass, baseClass)
Begins definition of Command Map for CEventHandler-derived class.
TJobState GetState() const
virtual bool Send(CEvent *evt, EDispatch disp_how=eDispatch_Default, int pool_name=ePool_Default)
Sends an event synchronously.
@ eEngine_UnknownJob
the job is not registered in the Engine
@ eUnknownJob
Job record lost.
string GetLabel(const CSeq_id &id)
TRange GetTotalRange(void) const
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
void GetMrnasForGene(const CMappedFeat &gene_feat, list< CMappedFeat > &mrna_feats, CFeatTree *feat_tree=0, const SAnnotSelector *base_sel=0)
void GetCdssForGene(const CMappedFeat &gene_feat, list< CMappedFeat > &cds_feats, CFeatTree *feat_tree=0, const SAnnotSelector *base_sel=0)
CMappedFeat GetBestCdsForMrna(const CMappedFeat &mrna_feat, CFeatTree *feat_tree=0, const SAnnotSelector *base_sel=0)
@ fFGL_Content
Include its content if there is any.
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,...
TSeqPos GetLength(const CSeq_id &id, CScope *scope)
Get sequence length if scope not null, else return max possible TSeqPos.
CRef< CSeq_loc > Map(const CSeq_loc &src_loc)
Map seq-loc.
void AddConversion(CRef< CMappingRange > cvt)
Add new mapping range to the proper place.
CConstRef< CSynonymsSet > GetSynonyms(const CSeq_id &id)
Get bioseq synonyms, resolving to the bioseq in this scope.
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.
SAnnotSelector & IncludeFeatSubtype(TFeatSubtype subtype)
Include feature subtype in the search.
const CSeq_feat & GetMappedFeature(void) const
Feature mapped to the master sequence.
SAnnotSelector & AddNamedAnnots(const CAnnotName &name)
Add named annot to set of annots names to look for.
SAnnotSelector & ExcludeNamedAnnots(const CAnnotName &name)
Add named annot to set of annots names to exclude.
TObjectType * GetPointer(void) const THROWS_NONE
Get pointer,.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
position_type GetLength(void) const
TThisType & CombineWith(const TThisType &r)
position_type GetToOpen(void) const
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
@ fWithCommas
Use commas as thousands separator.
static const char label[]
void SetFrom(TFrom value)
Assign a value to From data member.
TFrom GetFrom(void) const
Get the From member data.
const TLocation & GetLocation(void) const
Get the Location member data.
const TData & GetData(void) const
Get the Data member data.
const TProduct & GetProduct(void) const
Get the Product member data.
bool IsSetProduct(void) const
product of process Check if a value has been assigned to Product data member.
bool IsEmpty(void) const
Check if variant Empty is selected.
ENa_strand
strand of nucleic acid
bool IsInt(void) const
Check if variant Int is selected.
bool IsNull(void) const
Check if variant Null is selected.
bool IsPnt(void) const
Check if variant Pnt is selected.
range(_Ty, _Ty) -> range< _Ty >
double value_type
The numeric datatype used by the parser.
const struct ncbi::grid::netcache::search::fields::SIZE size
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
void SetClusterIndex(int value)
const objects::CSeq_loc & GetLocation(void) const
const objects::CSeq_feat & GetFeature(void) const
int GetClusterIndex() const