64 #include <wx/string.h>
108 DECLARE_EVENT_TABLE()
125 features: gene, RNAs, coding regions and Exons.
A Gene model is
a group of \
126 linked gene, RNAs, coding regions and Exons.
A gene model may contain one \
127 or more pairs of linked RNA and coding region.");
135 , m_AnnotNameUpdated(
false)
137 m_DS->SetJobListener(
this);
160 m_cdsFeatSel.IncludeFeatSubtype(subtype);
163 x_RegisterIcon(
SIconInfo(eIcon_Content,
"Content",
true,
"track_content"));
165 SIconInfo(eIcon_Layout,
"Layout style",
true,
"track_layout"));
188 title =
"NCBI genes";
347 if (vis_range.
Empty()) {
372 for ( ; feature_iter; ++feature_iter) {
380 seq_entry.
SetAnnot().push_back(pAnnot);
389 LOG_POST(
Error <<
"CGeneModelTrack::x_OnJobCompleted() notification for job \
390 does not contain results.");
420 if (preset_style.empty()) {
464 wxT(
"Hide gene feature bar"));
484 item = menu.AppendCheckItem(
kContentBaseID + curr_id++,
wxT(
"Show VDJ segments"));
489 item = menu.AppendCheckItem(
495 item = menu.AppendCheckItem(
557 wxMenuItem* item = menu.AppendRadioItem(id_base + iter->first,
563 wxMenuItemList& item_list = menu.GetMenuItems();
564 ITERATE (wxMenuItemList, iter, item_list) {
592 return label1 < label2;
603 size_t count = objs.size();
614 dynamic_cast<CFeatGlyph*
>(objs.front().GetPointer());
637 the_genes.push_back(*iter);
646 string gene_track_label;
650 gene_track_label += count_str +
" landmark genes shown";
652 gene_track_label +=
"all " + count_str +
" genes shown";
657 if (
result.m_ExtraObj.NotEmpty()) {
659 SetMsg(
", Overview mode");
671 hist_track->
SetTitle(
"Genes Distribution Histogram");
681 container->
SetTitle(gene_track_label);
685 SetMsg(
", Overview mode, " + gene_track_label);
765 if (
result.m_ObjectList.empty()) {
813 " gene model" + (
size > 1 ?
"s shown" :
" shown"));
814 if ( !requests.empty() ) {
829 size_t obj_num = objs.size();
830 if (obj_num == 0 || !
result.m_Owner) {
866 if (
results.m_Results.empty()) {
873 if ((
result.m_ObjectList.empty() && !
result.m_ExtraObj) ||
883 if ( !
result.m_ObjectList.empty() ) {
885 for (
auto& obj :
result.m_ObjectList) {
890 groups[feat->
GetFeature().GetData().GetSubtype()].push_back(obj);
892 auto last_group = p_feat;
893 for (
auto& gr : groups) {
895 parent_group->
InsertAft(last_group, group);
897 group->
Set(gr.second);
917 parent_group->
Update(
true);
950 if (dbxrefHighlights.
end() == it_geneid)
973 bool need_highlight =
false;
974 CLayoutGroup::TObjectList::iterator iter = objs.begin();
975 while (iter != objs.end()) {
981 size_t obj_cnt = objs.size();
989 group->HideGeneAndLabel();
990 }
else if ( !compact_mode ) {
994 group->HideGeneAndLabel();
998 if (!group->GetChildren().empty()) {
999 const CSeqGlyph* first_glyph = group->SetChildren().front();
1003 feat_confs, feat, requests, compact_mode)) {
1004 need_highlight =
true;
1005 group->SetHighlighted(
true);
1012 group->SetParentFeat(parent_gene);
1015 group->SetGroup().SetRenderingContext(
m_Context);
1018 feat_confs,
NULL, requests, compact_mode)) {
1019 need_highlight =
true;
1021 if (need_highlight) {
1022 group->SetHighlighted(
true);
1032 if (feat->
GetFeature().GetData().GetSubtype() ==
1047 feat_confs,
NULL, requests, compact_mode)) {
1048 need_highlight =
true;
1049 group->SetHighlighted(
true);
1057 feat->SetHideLabel(
true);
1065 feat->SetHighlighted(
true);
1068 need_highlight =
true;
1071 feat->GetFeature().GetData().GetSubtype();
1072 bool show_product = feat->GetFeature().IsSetProduct() &&
1105 for (
size_t i = obj_cnt;
i <= objs.size(); ++
i) {
1110 return need_highlight;
1149 p_areas->push_back(area);
1188 if (
range.Empty()) {
1215 if ( !src_annots.
empty() ) {
1224 r_cntx, params, gene_annots);
1231 bool need_unnamed_track =
false;
1232 bool has_unnamed_track = gene_annots.count(unnamed_a) > 0;
1235 list<int> rna_subtypes;
1239 rna_subtypes.push_back(iter->GetSubtype());
1247 if ( !src_annots.
empty() ) {
1248 ITERATE (list<int>, st_iter, rna_subtypes) {
1254 if ( !has_unnamed_track && rna_annots.count(unnamed_a) > 0 ) {
1256 rna_annots.
erase(rna_i);
1257 need_unnamed_track =
true;
1262 while ( !rna_annots.
empty() && gene_i != gene_annots.
end()) {
1264 if (rna_i != rna_annots.
end()) {
1265 rna_annots.
erase(rna_i);
1276 if ( !src_annots.
empty() ) {
1281 if ( !has_unnamed_track && cds_annots.count(unnamed_a) > 0 ) {
1283 cds_annots.
erase(rna_i);
1284 need_unnamed_track =
true;
1288 gene_i = gene_annots.
begin();
1289 while ( !cds_annots.
empty() && gene_i != gene_annots.
end()) {
1291 if (cds_i != cds_annots.
end()) {
1292 cds_annots.
erase(cds_i);
1303 if ( !src_annots.
empty() ) {
1309 gene_i = gene_annots.
begin();
1310 while ( !exon_annots.
empty() && gene_i != gene_annots.
end()) {
1312 if (exon_i != exon_annots.
end()) {
1313 exon_annots.
erase(exon_i);
1324 unique_annots.
insert(iter->first);
1327 if ( !unique_annots.
insert(iter->first).second ) {
1328 rna_cds_exon_annots.
insert(*iter);
1332 if ( !unique_annots.
insert(iter->first).second ) {
1333 rna_cds_exon_annots.
insert(*iter);
1340 rna_annots.
erase(iter->first);
1341 cds_annots.
erase(iter->first);
1342 exon_annots.
erase(iter->first);
1343 gene_annots.
insert(*iter);
1347 if ( !rna_annots.
empty() ) {
1351 feat_params.
m_Annots.push_back(iter->first);
1352 ITERATE (list<int>, st_iter, rna_subtypes) {
1356 object, ds_context, r_cntx, feat_params, src_annots);
1357 if ( !rna_tracks.
empty()) {
1358 tracks[iter->first] = rna_tracks.
begin()->second;
1369 feat_params.
m_Annots.push_back(iter->first);
1372 object, ds_context, r_cntx, feat_params, src_annots);
1373 if (!cds_tracks.
empty()) {
1374 tracks[iter->first] = cds_tracks.
begin()->second;
1383 feat_params.
m_Annots.push_back(iter->first);
1386 object, ds_context, r_cntx, feat_params, src_annots);
1387 if (!exon_tracks.
empty()) {
1388 tracks[iter->first] = exon_tracks.
begin()->second;
1392 if (need_unnamed_track) {
1406 gene_model->SetAnnot(iter->first);
1407 if ( !iter->second.empty() ) {
1408 gene_model->SetTitle(iter->second);
1410 tracks[iter->first] = gene_model.
GetPointer();
1424 if (!params.
m_Filter.empty())
return;
1427 list<int> rna_subtypes;
1431 rna_subtypes.push_back(iter->GetSubtype());
1435 ITERATE(list<int>, st_iter, rna_subtypes) {
1471 config->SetLegend_text(
"anchor_1");
1498 "Rendering options on how gene features are rendered.");
1500 choice->SetValues().push_back(
1504 "Only the 'green' gene bar is shown",
1505 "Each bar represents the extent of the gene as it was last annotated, without showing exons."));
1506 choice->SetValues().push_back(
1509 "Merge all transcripts and CDSs, no gene bar",
1510 "Merge all transcripts and CDSs into a single line, no gene bar shown.",
1511 "Vertical lines represent exon placements. Arrows indicate orientation of the gene, 5' to 3'. Coding regions (CDS) are blue"));
1512 choice->SetValues().push_back(
1515 "Merge transcript and CDS pairs, no gene bar",
1516 "Merge the display of the transcript and its coding region as appropritate. Coding reginos are represented by different color. No gene bar is shown.",
1517 "Each transcript variant is rendered on a separate line. Verticqal lines represent exon features. Arrows indicate orientation of the gene, 5' to 3'."));
1518 choice->SetValues().push_back(
1521 "Show all transcripts and CDSs, no gene bar",
1522 "Show all transcripts and CDSs separately but with no gene bar.",
1523 "Blue lines represent transcripts while red lines represent CDSs. Vertical lines represent exon features. Arrows indicate orientation of the gene, 5' to 3'."));
1524 choice->SetValues().push_back(
1528 "Show all transcripts and CDSs separately with gene bar.",
1529 "Blue lines represent transcripts while red lines represent CDSs. Vertical lines represent exon features. Arrows indicate orientation of the gene, 5' to 3'."));
1530 choice->SetValues().push_back(
1533 "Show on single line with exon structure, no gene bar",
1534 "No gene bar, but merge exon/CDS features and only show on a single line.",
1535 "The vertical lines represent exon features. Arrows indicate orientation of the gene, 5' to 3'."));
1536 config->SetChoice_list().push_back(choice);
1539 options_condition->SetName(
"Options");
1547 "Hide non-coding transcript variants",
"", gm_settings.
m_HideNonCoding,
true);
1548 cb->SetConditions().push_back(options_condition);
1549 config->SetCheck_boxes().emplace_back(cb.Release());
1554 "Hide model transcript variants",
"",gm_settings.
m_HideModels,
true);
1555 cb->SetConditions().push_back(options_condition);
1556 config->SetCheck_boxes().push_back(cb);
1561 "Show only CCDS variants",
"", gm_settings.
m_CCDSOnly,
true);
1562 cb->SetConditions().push_back(options_condition);
1563 config->SetCheck_boxes().push_back(cb);
1568 "Show only RefSeq or MANE Select <a href='https://www.ncbi.nlm.nih.gov/refseq/refseq_select/' target='_blank'>What\'s this?</a>",
1569 "Show only the Select or MANE Select variants",
"", gm_settings.
m_SelectOnly,
true);
1570 cb->SetConditions().push_back(options_condition);
1571 config->SetCheck_boxes().push_back(cb);
1578 options_condition->SetName(
"Options");
1584 cb->SetConditions().push_back(options_condition);
1585 config->SetCheck_boxes().push_back(cb);
1602 config->SetHidden_settings().push_back(
1605 config->SetHidden_settings().push_back(
1608 config->SetHidden_settings().push_back(
1611 config->SetHidden_settings().push_back(
1627 if (
range.Empty()) {
1640 vector<string> filters;
1642 filters.push_back(params.
m_Filter);
1646 ITERATE (vector<string>, f_iter, filters) {
1653 gene_model->SetAnnot(iter->first);
1654 if ( !iter->second.empty() ) {
1655 gene_model->SetTitle(iter->second);
1657 gene_model->SetFilter(*f_iter);
User-defined methods of the data storage class.
CAppJobNotification Notification send by CAppJobEventTranslator.
CBatchJobResult – the data structure holding the seqgraphic job results for a batch job processing.
vector< CRef< CSGJobResult > > TResults
void SetCdsConfig(CCdsConfig *config)
CCdsGlyph inline methods.
CCompactLayout is amed to generate more compact 2D layout policy than layered layout for glyphs with ...
void SetMinDist(TSeqPos dist)
CDataTrack - a abstract base class for layout tracks which need to deal with background data retrieva...
const TSeqRange & x_GetVisRange() const
virtual void x_OnAllJobsFinished()
virtual void SetHideLabel(bool b)
Force to hide label.
void SetProjectedFeat(bool f)
void SetConfig(CConstRef< CFeatureParams > conf)
const objects::CMappedFeat & GetMappedFeature(void) const
Access a new, fully remapped feature.
const objects::CSeq_feat & GetFeature(void) const
Access the original feature.
void GetLabel(string &label, CLabel::ELabelType type) const
retrieve feature label for a given type
CConfigurableItems - a static list of items that can be configured.
string GetStoragekey(int type, int subtype) const
Get the key used to store this type of feature.
static void CreateMicroIntrons(objects::CScope &scope, objects::CBioseq_Handle bsh, const string &annot_name="", TSeqRange *range=NULL, bool ignore_errors=false)
virtual TTrackMap CreateTracks(SConstScopedObject &object, ISGDataSourceContext *ds_context, CRenderingContext *r_cntx, const SExtraParams ¶ms=SExtraParams(), const TAnnotMetaDataList &src_annots=TAnnotMetaDataList()) const
create a layout track based on the input objects and extra parameters.
void OnContextMenu(wxContextMenuEvent &anEvent)
CGeneModelTrack * m_Track
void x_OnToggleContent(wxCommandEvent &event)
CGeneContentEvtHandler(CGeneModelTrack *track)
CGeneGroup is a subclass of CLayoutGroup contains gene, RNA, cds, and Exon features.
bool m_CCDSOnly
Show only CCDS variants.
bool m_ShowCDSProductFeats
CDS associated protein features.
bool m_ShowNtRuler
Show nucleotide ruler.
EMergeStyle m_MergeStyle
the way on how to merge CDSs and RNAs.
static const string & OptionValueToStr(CGeneModelConfig::ERenderingOption option)
bool m_ShowAaRuler
Show protein ruler.
bool m_SelectOnly
Show only Select/MANE variants.
void SaveSettings(CConstRef< CSeqGraphicConfig > g_conf, const string ®_path, const string &profile) const
void UpdateSettings(const CSGConfigUtils::TKeyValuePairs &settings)
bool m_HideNonCoding
Hide transcripts without associated CDS.
void LoadSettingsPartial(const string ®_path, const string &profile)
void LoadSettings(CConstRef< CSeqGraphicConfig > g_conf, const string ®_path, const string &profile)
bool m_ShowVDJCs
show VDJ_segments and C_region
CRef< CBoundaryParams > m_GeneBoxConfig
bool m_ShowHistogram
show gene distribution histogram.
ERenderingOption
rendering options on how to render features overall.
@ eOption_SingleLine
merge all RNAs and CDSs into one line
@ eOption_MergeAll
merge all RNAs and CDSs, show exons, no gene bar
@ eOption_ShowAll
show all features individually
@ eOption_MergePairs
merge each RNA and CDS pair, show exons, no gene bar
@ eOption_ShowAllButGenes
show all RNAs, CDSs and exons, no gene bar
@ eOption_GeneOnly
show gene bar only
string SaveSettingsAsString(const string &preset_style) const
CRef< CCdsConfig > m_CdsConfig
EMergeStyle
style on how to merge RNAs and CDSs.
@ eMerge_OneLine
merge into one line
@ eMerge_Pairs
merge each transcript and CDS pair
@ eMerge_All
merge all transcripts and CDSs
@ eMerge_No
show all feature individually
bool m_HideModels
Hide Model RefSeqs.
bool m_ShowLabel
Show labels.
virtual const CTrackTypeInfo & GetThisTypeInfo() const override
TTrackMap x_CreateTracksWithFilters(SConstScopedObject &object, ISGDataSourceContext *ds_context, CRenderingContext *r_cntx, const SExtraParams ¶ms, const TAnnotNameTitleMap &annots) const
virtual CRef< objects::CTrackConfigSet > GetSettings(const string &profile, const TKeyValuePairs &settings, const CTempTrackProxy *track_proxy) const override
virtual string GetExtensionLabel() const override
returns a displayable label for this extension ( please capitalize the key words - "My Extension" )
virtual TTrackMap CreateTracks(SConstScopedObject &object, ISGDataSourceContext *ds_context, CRenderingContext *r_cntx, const SExtraParams ¶ms=SExtraParams(), const TAnnotMetaDataList &src_annots=TAnnotMetaDataList()) const override
CGeneModelFactory.
virtual string GetExtensionIdentifier() const override
returns the unique human-readable identifier for the extension the id should use lowercase letters se...
virtual void GetMatchedAnnots(const TAnnotMetaDataList &src_annots, const ILayoutTrackFactory::SExtraParams ¶ms, TAnnotNameTitleMap &out_annots) const override
objects::SAnnotSelector m_cdsFeatSel
virtual void x_OnAllJobsFinished() override
virtual void GetHTMLActiveAreas(TAreaVector *p_areas) const override
Get html active areas.
wxEvtHandler * m_ContentHandler
wx-related event handler.
bool x_NeedHighlight(const CFeatGlyph &feat_glyph) const
void x_AddFeatProductLayout(CBatchJobResult &results)
objects::SAnnotSelector m_LandMarkFeatSel
CRef< CGeneModelConfig > m_Conf
void GenerateAsn1(objects::CSeq_entry &seq_entry, TSeqRange range) override
void x_AddCDSProduct_FeatsLayout(CSGJobResult &result)
void x_OnContentIconClicked()
static CTrackTypeInfo m_TypeInfo
virtual string GetFullTitle() const override
get a more meaningful title.
virtual void x_SaveSettings(const string &preset_style) override
save part of settings to a profile string.
virtual void x_UpdateBoundingBox() override
Update the bounding box assuming children's sizes are fixed if any.
void OnToggleContent(int id)
CRef< CSGFeatureDS > m_DS
objects::SAnnotSelector m_MainSel
void x_OnLayoutIconClicked()
virtual void x_OnJobCompleted(CAppJobNotification ¬ify) override
virtual const CTrackTypeInfo & GetTypeInfo() const override
void x_SaveConfiguration() const
save all track settings to the configuration file.
set< objects::CSeqFeatData::ESubtype > m_subtypes
Text inidcating that some transcripts were filtered out.
virtual ~CGeneModelTrack()
virtual void x_UpdateData() override
update track content.
virtual void GetFeatSubtypes(set< objects::CSeqFeatData::ESubtype > &subtypes) const override
virtual void x_OnIconClicked(TIconID id) override
Mouse left-click event handler on an icon.
CRef< CCompactLayout > m_Compact
virtual void x_LoadSettings(const string &preset_style, const TKeyValuePairs &settings) override
load the track settings.
void x_AddLandMarkFeaturesLayout(CSGJobResult &result)
bool m_AnnotNameUpdated
flag for indicating if we have used a more meaningful annotation name.
void x_AddMainFeaturesLayout(const CSGJobResult &result)
void SetAnnot(const string &annot)
bool x_InitFeature_Recursive(CLayoutGroup::TObjectList &objs, TFeatConfigMap &feat_confs, const CFeatGlyph *parent_gene, TFeatBatchJobRequests &requests, bool compact_mode)
virtual void x_UpdateBoundingBox()
Update the bounding box assuming children's sizes are fixed if any.
virtual void GetHTMLActiveAreas(TAreaVector *p_areas) const
Get html active areas.
void Add(CSeqGlyph *obj)
Append a layout object to the end.
const TKeyHighlights & GetHighlightsByKey() const
void SetLabelGlyphs(const CSeqGlyph::TObjects &objs, CRef< CCommentConfig > config)
void SetObjects(const CLayoutGroup::TObjectList &objs)
const THighlights & GetHighlights() const
CGlyphContainer(CRenderingContext *r_cntx)
CLayoutGroup & SetGroup()
CRef< CInlineLayout > m_Inline
const CLayoutGroup::TObjectList & GetChildren() const
CLayoutGroup::TObjectList & SetChildren()
CRef< CLayeredLayout > m_Layered
CRef< CSimpleLayout > m_Simple
void SetLayoutPolicy(ILayoutPolicy *policy)
Set policy on how to deploy the layout of its children.
@ fNoHighlight
no highlighting on mouse over
@ fDrawBackground
highlight background for this area
@ fComment
render a label/comment on client side
@ fNoSelection
the object can't be selected
@ fTooltipEmbedded
tooltip embedded
string m_ID
area identifier
int m_Flags
area flags, will need to replace m_Type
string m_ParentId
parent entity idendifier, such as track_id
bool m_PositiveStrand
the default is true
void SetDialogHost(IGlyphDialogHost *host)
void SetConfig(const CSeqGraphicConfig &config)
CJobResultBase – the basic job result class holding a token.
CLayoutGroup is a container of CSeqGlyphs (layout objects).
void SetLayoutPolicy(ILayoutPolicy *policy)
Set policy on how to deploy the layout of its children.
TObjectList & SetChildren()
virtual void Update(bool layout_only)
Update content and layout including the bounding box.
void Set(const TObjectList &objs)
void UpdateLayout()
update group's bounding box only, and its parent layout.
void InsertAft(const CSeqGlyph *at_obj, CSeqGlyph *obj)
Insert a layout object after the given layout object.
ILayoutPolicy::TObjectList TObjectList
void SetTrackAttr(TTrackAttrFlags flags)
int m_IndentLevel
track hierachy indentation level.
void SetTitle(const string &label, const string &default_title=NcbiEmptyString)
@ eIcon_Content
icon id for setting content
@ eIcon_Layout
icon id for setting layout style
void SetIndent(int indent)
ILayoutTrackHost * m_LTHost
Top level host owning the tracks.
string m_Msg
special message need to show on title bar
string GetTitle() const
get the track title.
TTrackAttrFlags m_Attrs
various track attributes
const string & GetId() const
void SetConfig(CRef< CSeqGraphicConfig > conf)
virtual void x_OnIconClicked(TIconID id)
Mouse left-click event handler on an icon.
@ fNavigable
Track has navigation controls.
@ fShowAlways
always be rendered even for an empty track.
@ fFullTrack
track occupying the full horizontal screen.
const string & GetProfile() const
void x_SetStatus(const string &msg, int progress)
TModelUnit x_GetTBHeight() const
Get title bar height including margin.
void SetMsg(const string &msg)
CConstRef< CSeqGraphicConfig > x_GetGlobalConfig() const
Method for getting global configuration from rendering context.
void SetProfile(const string &preset_style)
CLayoutTrack inline method implmentation.
CRef< CSeqGraphicConfig > m_gConfig
global configuration.
int TIconID
use int as TIconID instead of EIconID.
CLinkedFeatsGroup is a container class contains related features.
CNcbiOstrstreamToString class helps convert CNcbiOstrstream to a string Sample usage:
ostream & AsString(ostream &s) const
CRenderingContext offers the basic context and utility methods for rendering layout objects in featur...
const TSeqRange & GetVisSeqRange() const
const TModelUnit & GetScale() const
TModelUnit ScreenToSeq(const TModelUnit &size) const
convert from screen pixels to sequence positions
bool IsOverviewMode() const
static bool IsBackgroundJob()
void LoadGeneModelFeatures(objects::SAnnotSelector &lm_feat_sel, objects::SAnnotSelector &m_feat_sel, TJobToken lm_token, TJobToken main_token, bool landmark_feat, const TSeqRange &range, TModelUnit window, const CRef< CGeneModelConfig > &conf)
load features for gene model.
void GetAnnotNames(objects::SAnnotSelector &sel, const TSeqRange &range, TAnnotNameTitleMap &names) const
void SetSortBy(const string &sortby)
void SetFilter(const string &filter)
CSGFeatureDS inline method.
virtual void LoadFeatures(objects::SAnnotSelector &sel, const TSeqRange &range, TModelUnit window, TJobToken token=-1, int max_feat=-1, ELinkedFeatDisplay LinkedFeatDisplay=ELinkedFeatDisplay::eLFD_Default, const string &extra_filter="")
vector< string > GetFilters(const string &annot_name, const TSeqRange &range) const
objects::CScope & GetScope(void) const
Get the scope from the handle.
virtual bool AllJobsFinished() const
objects::CBioseq_Handle & GetBioseqHandle(void)
Get the underlying bioseq handle.
virtual void ClearJobID(TJobID job_id)
void SetDepth(int depth)
Set the annotation selector resolving depth.
virtual void DeleteAllJobs()
Remove waiting jobs from queue or cancel the unfinished jobs.
void SetAdaptive(bool flag)
CSGJobResult – the data structure holding the seqgraphic job results.
static bool IsmRNA(const objects::CBioseq_Handle &handle, objects::CScope &scope)
ESubtype GetSubtype(void) const
static const CFeatList * GetFeatList()
@ eSubtype_mat_peptide_aa
class CSeqGlyph defines an interface that wraps a rectilinear abstract object.
void SetHighlightsColor(const CRgbaColor &hl_color)
void x_InitHTMLActiveArea(CHTMLActiveArea &area) const
initialize the basic information for a given active area.
CRenderingContext * m_Context
the rendering context
virtual void SetHeight(TModelUnit h)
void SetParent(CSeqGlyph *p)
virtual TModelUnit GetTop() const
virtual TModelUnit GetHeight() const
unique_ptr< CRgbaColor > m_HighlightsColor
Highlight color.
virtual void SetTop(TModelUnit b)
vector< CHTMLActiveArea > TAreaVector
void SetHighlighted(bool flag)
list< CRef< CSeqGlyph > > TObjects
void SetRenderingContext(CRenderingContext *context)
Set the rendering context.
bool IsHighlighted() const
bool GetShowSimpleComments() const
CConstRef< CFeatureParams > GetFeatParams(TFeatSubtype subtype) const
Get feature settings using a feature subtype.
int GetObjectSpace() const
bool GetShowComments() const
namespace ncbi::objects::
CConstRef< CDbtag > GetNamedDbxref(const CTempString &db) const
Return a specified DB xref.
class CStaticArrayMap<> provides access to a static array in much the same way as CStaticArraySet<>,...
static CRef< objects::CChoice > CreateChoice(const string &name, const string &disp_name, const string &curr_val, const string &help, bool optional=false)
static CRef< objects::CHiddenSetting > CreateHiddenSetting(const string &name, const string &value)
static CRef< objects::CCheckBox > CreateCheckBox(const string &name, const string &disp_n, const string &help_text, const string &legend_txt, bool value, bool optional=false)
static CRef< objects::CChoiceItem > CreateChoiceItem(const string &name, const string &disp_name, const string &help, const string &legend_txt, bool optional=false)
CTrackTypeInfo - holds description of a layout track type.
const string & GetDescr() const
const string & GetId() const
IGlyphDialogHost An interface used for handling issues related to any dialog pops up that requires so...
static string MergeAnnotAndFilter(const string &annot, const string &filter)
create a new name based on annotation name and fitler string.
static void GetMatchedAnnots(const TAnnotMetaDataList &src_annots, const vector< string > &target_annots, const string &annot_type, const string &track_type, TAnnotNameTitleMap &out_annots)
Help function to find matched annotations.
virtual void LTH_PopupMenu(wxMenu *menu)=0
show track-specific context menu.
virtual void LTH_PushEventHandler(wxEvtHandler *handler)=0
virtual void LTH_PopEventHandler()=0
ISGDSManager is seqgraphic data source manage that serves as an data source context.
virtual CIRef< ISGDataSource > GetDS(const string &type, SConstScopedObject &object)=0
Get a seqgraphic data source instance of the specified type.
container_type::const_iterator const_iterator
container_type::iterator iterator
const_iterator begin() const
const_iterator end() const
iterator_bool insert(const value_type &val)
container_type::value_type value_type
const_iterator find(const key_type &key) const
iterator_bool insert(const value_type &val)
int main(int argc, const char *argv[])
CStaticArrayMap< string, CGeneModelConfig::EMergeStyle > TStyleMap
static const string kTrackName
static const size_t kMaxGenesOverviewRows
static const size_t kMaxCompactRows
static const size_t kContentBaseID
CGeneModelTrack.
static const string kGeneIdDb("GeneID")
static const size_t kCompactThreshold
static const string kBaseKey
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.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Error(CExceptionArgs_Base &args)
static objects::SAnnotSelector GetAnnotSelector(TAnnotFlags flags=0)
request an annotation selector for a given type
static string GetAnnotName(const objects::CSeq_annot_Handle &annot_handle)
static const string & GetUnnamedAnnot()
Get the commonly used symbol representing a unnnamed annotation.
static bool IsUnnamed(const string &annot)
check if a given annotation is a unnamed annotation.
static TAnnotNameType NameTypeStrToValue(const string &type)
static void SetResolveDepth(objects::SAnnotSelector &sel, bool adaptive, int depth=-1)
help function for setting selector resolve depth.
@ eAnnot_Unnamed
unnamed annotation
IRender & GetGl()
convenience function for getting current render manager
virtual bool IsPrinterFriendly() const =0
void Set(float r, float g, float b)
set the color from an Fl_Color
CRef< CObject > GetResult() const
returns non-null pointer only if Completed or Running and has temporary results available
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
string GetLabel(const CSeq_id &id)
@ fFGL_Content
Include its content if there is any.
SAnnotSelector & SetFeatType(TFeatType type)
Set feature type (also set annotation type to feat)
const CSeq_feat & GetMappedFeature(void) const
Feature mapped to the master sequence.
SAnnotSelector & SetFeatSubtype(TFeatSubtype subtype)
Set feature subtype (also set annotation and feat type)
bool Empty(void) const THROWS_NONE
Check if CConstRef is empty – not pointing to any object which means having a null value.
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static string SizetToString(size_t value, TNumToStringFlags flags=0, int base=10)
Convert size_t to string.
static const string BoolToString(bool value)
Convert bool to string.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static string & ToLower(string &str)
Convert string to lower case – string& version.
static const char label[]
void SetFrom(TFrom value)
Assign a value to From data member.
void SetTo(TTo value)
Assign a value to To data member.
const TTag & GetTag(void) const
Get the Tag member data.
bool IsSetTag(void) const
appropriate tag Check if a value has been assigned to Tag data member.
Tdata & Set(void)
Assign a value to data member.
const TData & GetData(void) const
Get the Data member data.
void SetData(TData &value)
Assign a value to Data data member.
list< CRef< CSeq_feat > > TFtable
for(len=0;yy_str[len];++len)
void GetSubtypesForType(set< objects::CSeqFeatData::ESubtype > &subtypes, objects::CSeqFeatData::E_Choice feat)
range(_Ty, _Ty) -> range< _Ty >
constexpr bool empty(list< Ts... >) noexcept
const struct ncbi::grid::netcache::search::fields::SIZE size
vector< SFeatBatchJobRequest > TFeatBatchJobRequests
EVT_MENU_RANGE(MID_SHOW_TITLES, MID_HIDE_TITLES, ViewerWindowBase::OnTitleView) EVT_MENU_RANGE(MID_ENABLE_EDIT
static SLJIT_INLINE sljit_ins or(sljit_gpr dst, sljit_gpr src)
A help struct for storing information about a icon.
bool operator()(CRef< CSeqGlyph > o1, CRef< CSeqGlyph > o2)
void UseDefaultMarginWidth(wxMenu &menu)
Using default menu item margin width.