65 , m_LinkMatePairs(
true)
66 , m_HasCoverageGraph(
false)
67 , m_HasQualityMap(
false)
86 string protein_method)
103 if (
range.GetLength() == 0)
106 vector<TSeqRange> missing_ranges;
107 missing_ranges.emplace_back(
range.GetFrom(),
range.GetTo());
113 missing_ranges.clear();
114 data->GetMissingRegions(
range, missing_ranges);
118 double cost_in_sec = 0.;
119 if (!missing_ranges.empty()) {
125 for (
auto&
r : missing_ranges) {
128 cost_in_sec =
max(cost_in_sec, cost);
139 if (
range.GetLength() == 0)
145 vector<TSeqRange> missing_ranges;
147 data->GetMissingRegions(
range, missing_ranges);
149 missing_ranges.emplace_back(
range.GetFrom(),
range.GetTo());
152 for (
auto&
r : missing_ranges) {
153 len +=
r.GetLength();
160 double cost_in_sec = 0.;
173 static const double log_1024 =
log(1024);
176 int exp = (
int)(
log(bytes) / log_1024);
177 string suffix =
"KMGTPE";
178 suffix = suffix.substr(exp - 1, 1);
225 job->SetToken(token);
237 bool smear_if_overlimit,
254 job->SetToken(token);
304 auto num_reads =
data->GetNumberOfReads(
range);
306 res = num_reads < align_limit;
322 vector<TSeqRange> missing_ranges;
323 data->GetMissingRegions(
range, missing_ranges);
324 if (missing_ranges.empty())
353 "pileup graph",
m_Handle, aln_sel, graph_sel,
range, aligns, window, cache_key));
354 job->SetToken(token);
362 const vector<int>& projected_feats,
366 ITERATE (vector<int>, iter, projected_feats) {
374 job->SetToken(token);
389 alnType = aln->GetAlignMgr().GetAlignType();
392 const CAlignGlyph* aln = mp->GetSeqAligns().front();
406 vector<string> annots;
420 vector<string> annots;
473 if (tmp_meth->GetName() == name) {
493 if (tmp_meth->GetName() == name) {
523 bool new_score =
true;
590 if (tmp_meth->GetName() == name) {
611 if (objs.empty())
return;
622 first_aln = first_mp->
SetSeqAligns().front().GetPointer();
660 if (iter->second->HasScores()) {
661 temp_map.emplace(iter->first, iter->second);
674 InitAlignScore(aln.GetPointer());
686 for (; it != it_end; ) {
760 if (methods->empty()) {
762 vector<CConstIRef<IUITool> > tools;
766 for (
size_t i = 0;
i < tools.size();
i++) {
770 if(method && method->
GetType() & aln_type) {
801 }
catch (exception& e) {
811 static string sid(
"seqgraphic_alignment_ds_type");
818 static string slabel(
"Graphical View Alignment Data Source Type");
826 const CSeq_id&
id =
dynamic_cast<const CSeq_id&
>(
object.object.GetObject());
Checksum and hash calculation classes.
virtual bool Select(const IUITool &tool)
size_t GetSize(void) const
CSeq_annot_Handle GetAnnot(void) const
double GetCostOfLoadingInSeconds(void) const
Get collected cost of loading requested data in seconds.
void RemoveData(const string &data_key)
Removes Data from in-memory cache.
void EnableICache(bool value)
CRef< TData > GetData(const string &data_key)
Retrieves TData from in-memory cache or if not found calls TData::Init to initialize new TData instan...
static CGraphCache & GetInstance()
CRef< TData > GetCachedData(const string &data_key)
Retrieves TData from in-memory cache.
TAlignList & SetSeqAligns()
vector< CRef< CAlignGlyph > > TAlignList
static string CreateCacheKey(objects::CScope &scope, const objects::CSeq_id &seq_id, const string &remote_path)
CPileUpGraph.
virtual string GetExtensionLabel() const
returns a displayable label for this extension ( please capitalize the key words - "My Extension" )
virtual bool IsSharable() const
check if the data source can be shared.
virtual string GetExtensionIdentifier() const
CSGAlignmentDSType.
virtual ISGDataSource * CreateDS(SConstScopedObject &object) const
create an instance of the layout track type using default settings.
bool m_LinkMatePairs
link mate pair alignments
void InitAlignScoreCache(CAlignGlyph *aln, const TAlnAnchorPair &align_pair, IAlnExplorer::EAlignType sc_type)
IAlnExplorer::EAlignType GetAlignType() const
CSGAlignmentDS inline methods.
CAlignmentConfig::EHideSraAlignments m_HideSra
Flag, indicating whether to hide duplicates and/or bad reads.
bool IsRangeCached(const TSeqRange &range) const
void InitAlignScore(CAlignGlyph *aln)
Alignment scoring.
void x_GetGraphCacheKey(string &data_key) const
TJobID m_ScoringJobID
alignment scoring job id
bool x_IsScoringJobRunning() const
void LoadAlignments(const TSeqRange &range, TModelUnit window, int align_limit, bool smear_if_overlimit, TJobToken token)
bool IsGraphCached(const TSeqRange &range) const
bool CanShowRange(const TSeqRange &range, int align_limit)
TMethods m_DNAMethods
registered DNA scoring methods
TSignedSeqPos m_MaxEndTail
Max length of unaligned tail at the end of the sequence.
TSignedSeqPos m_MaxStartTail
> Flag to show second-pass alignments (relevant to assembly to assembly alignments)
bool IsValidProteinScoringMethod(const string &name)
string m_RemotePath
url to the remote data
virtual ~CSGAlignmentDS()
void x_DeleteScoringJob()
CAlignmentConfig::EUnalignedTailsMode m_UnalignedTailsMode
Flag, indicating whether and how to display unaligned tails.
void LoadAlignFeats(const TSeqRange &range, TModelUnit window, vector< CRef< CAlignGlyph > > aligns, const vector< int > &projected_feats, TJobToken token)
bool m_HasQualityMap
Has quality map? (e.g. cSRA alignments)
void SetDefaultScoringMethods(string dna_method, string protein_method)
objects::CTSE_Handle m_DataHandle
The last loaded data.
void EnablePileUpCache(bool enable, bool enable_icache)
Uint8 m_MemoryLimit
NeedReleaseMemory's default limit 2GB.
TMethods m_ProteinMethods
registered Protein scoring methods
const TMethods & GetScoringMethods(IAlnExplorer::EAlignType aln_type)
get all the existing align scoring methods.
virtual void DeleteAllJobs()
Remove waiting jobs from queue or cancel the unfinished jobs.
CRef< CSGAlignScoringJob > m_ScoringJob
IAlnExplorer::EAlignType InitAlignType(bool isFastConfig=false)
This method might need object manager to connect to ID, and it is a block call.
set< TAlnAnchorPair > m_PartialAlnSet
bool m_CgiMode
sviewer context
list< CIRef< IScoringMethod > > TMethods
keep instances of score methods here.
double GetAlignmentCost(const TSeqRange &range) const
void CalculateAlignmentScore(CSeqGlyph::TObjects &objs, TJobToken token)
void LoadCoverageGraph(const TSeqRange &range, TModelUnit window, TJobToken token)
CAlignGlyph::TAlnAnchorPair TAlnAnchorPair
bool IsValidDNAScoringMethod(const string &name)
TAlnScoreMap m_AlnScoreMap
CIRef< ILayoutPolicy > m_LayoutPolicy
double GetGraphCost(const TSeqRange &range) const
CSGAlignmentDS(objects::CScope &scope, const objects::CSeq_id &id)
void CalcAlnStat(const TAlnMgrVec &aligns, const TSeqRange &range, TModelUnit window, TJobToken token)
bool m_HasCoverageGraph
High level coverage graph?
vector< CConstRef< IAlnGraphicDataSource > > TAlnMgrVec
string m_DNAMethod
default scoring method for DNA alignments
const string & GetDataLoader() const
virtual void ClearJobID(TJobID job_id)
IAlnExplorer::EAlignType m_AlnType
void ResetAlnScoringJob()
const string & GetDNAScoringMethod() const
bool NeedReleaseMemory() const
void InitAlignQualityScore(CAlignGlyph *aln, const TAlnAnchorPair &align_pair, IAlnExplorer::EAlignType sc_type)
void x_InitScoringMethods(IAlnExplorer::EAlignType aln_type)
string m_ProtMethod
default scoring method for protein alignments
static IAlnExplorer::EAlignType GetAlignType(const objects::CBioseq_Handle &handle, objects::SAnnotSelector &sel, bool &has_quality_map, bool isFastConfig=false)
when isFastConfig set to true, it indicates that that the call is used by seqconfig this means that s...
void SetSortBy(const string &sort_by)
CScoreCache & GetScoreCache()
static const string & GetScoreName()
bool IsJobNeeded(TJobID job_id) const
TJobID x_LaunchJob(IAppJob &job, int report_period=1, const string &pool="ObjManagerEngine")
Launch either a background or foreground job.
bool m_Adaptive
adaptive/exact annot selector
int m_Depth
annotation resolving depth
CAppJobDispatcher::TJobID TJobID
objects::CScope & GetScope(void) const
Get the scope from the handle.
virtual void ClearJobID(TJobID job_id)
virtual void DeleteAllJobs()
Remove waiting jobs from queue or cancel the unfinished jobs.
objects::CBioseq_Handle m_Handle
void SetScoringMethod(IScoringMethod *method)
void SetAlignment(const IScoringAlignment *aln)
bool HasScores() const
returns "true" if CalculateScores() did produce results
IScoringMethod * GetScoringMethod()
void EnableBackgoundProcessing(bool en)
void SetListener(IListener *listener)
void SetGradNumber(int grad_n)
Sets the number of score gradations.
@ eSubtype_bad
These no longer need to match the FEATDEF values in the C toolkit's objfdef.h.
class CSeqGlyph defines an interface that wraps a rectilinear abstract object.
list< CRef< CSeqGlyph > > TObjects
void SetToken(TJobToken token)
CSeqGraphicJob inline methods.
CDataLoader * GetDataLoader(void) const
Alignment explorer interface.
IAlnGraphicDataSource - interface to a data source representing an abstract alignment used in graphic...
virtual bool IsCigarUnambiguous() const
Check if cigar doesn't have ambiguous M's.
virtual IAlnExplorer::EAlignType GetAlignType() const
virtual TSeqPos GetBaseWidth(IAlnExplorer::TNumrow) const =0
virtual IAlnExplorer::TNumrow GetNumRows() const =0
virtual IAlnExplorer::TNumrow GetAnchor() const =0
IScoringMethod represents an abstract algorithm for calculating alignment scores and assigning colors...
virtual int GetType() const =0
returns combination of EAlignType flags defining types of alignments that can be colored with this me...
container_type::iterator iterator
const_iterator begin() const
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
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 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...
void Error(CExceptionArgs_Base &args)
const string & GetMsg(void) const
Get message string.
void Warning(CExceptionArgs_Base &args)
void Info(CExceptionArgs_Base &args)
TAlnAnchorPair GetAlnAnchorPair(void) const
static objects::SAnnotSelector GetAnnotSelector(TAnnotFlags flags=0)
request an annotation selector for a given type
const IAlnGraphicDataSource & GetAlignMgr(void) const
Inline methods.
static void SetAnnot(objects::SAnnotSelector &sel, const string &annot)
help function for setting up an annotation.
void SetScore(const ISGAlnScore &score)
const objects::CSeq_align & GetAlignment(void) const
static void SetResolveDepth(objects::SAnnotSelector &sel, bool adaptive, int depth=-1)
help function for setting selector resolve depth.
static CAppJobDispatcher & GetInstance()
bool DeleteJob(TJobID job_id)
when a Job is deleted the listener is not notified
string GetName(void) const
const CTSE_Handle & GetTSE_Handle(void) const
SAnnotSelector & IncludeFeatSubtype(TFeatSubtype subtype)
Include feature subtype in the search.
SAnnotSelector & SetCollectNames(bool value=true)
Collect available annot names rather than annots.
SAnnotSelector & SetMaxSize(TMaxSize max_size)
Set maximum number of annotations to find.
SAnnotSelector & SetCollectCostOfLoading(bool value=true)
Collect cost of loading requested data.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
uint64_t Uint8
8-byte (64-bit) unsigned integer
static TThisType GetWhole(void)
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
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.
unsigned int
A callback function used to compare two keys in a database.
range(_Ty, _Ty) -> range< _Ty >
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
string s_fromatstr(Uint8 bytes)
static const int kColorGradNumber
CSGAlignmentDS.
static const string kCSRADataLoader
static const string kBamDataLoader
static const int kInvalidJobToken
string ToStdString(const wxString &s)