CPrimercheckTest;
61 typedefpair<vector<SHspInfo*>, vector<SHspInfo*> >
TSortedHsp;
89 TSeqPosallowed_total_mismatch = 1,
90 TSeqPosallowed_3end_mismatch = 1,
99m_TemplateRange = range;
106m_TargetSizeMax =
max;
120 TSeqPosallowed_3end_mismatch) {
121m_AllowedTotalMismatch = allowed_total_mismatch;
122m_Allowed3EndMismatch = allowed_3end_mismatch;
127m_MaxMismatch = max_mismatch;
134m_AllowedSeqidIndex = allowed_seqid_index;
139m_AllowedSeqloc = allowed_seq;
144m_Allowed_Splice_Variants = allowed_splice_variants;
153m_NumNonSpecificTarget =
number;
157m_MaxTargetPerSequence =
number;
165m_MismatchRegionLength3End = length;
310 voidCheckSpecificity(
constvector<SPrimerInfo>& primer_info_list,
311 intfrom = 0,
intto = -1);
370 voidx_AnalyzePrimerSpecificity();
376 voidx_AnalyzeTwoPrimers(
const TSortedHsp& sorted_hsp,
389 voidx_AnalyzeOnePrimer(
constvector<SHspInfo*>& plus_strand_hsp_list,
390 constvector<SHspInfo*>& minus_strand_hsp_list,
391 intHspOverlappingWithLeftPrimer_size,
392 intHspOverlappingWithRightPrimer_size,
393 intHspOverlappingWithLeftPrimerMinusStrand_size,
394 intHspOverlappingWithRightPrimerMinusStrand_size,
423 boolx_IsPcrLengthInRange(
const CSeq_align& left_primer_hit_align,
425 boolprimers_on_different_strand,
443 voidx_SavePrimerInfo(
CSeq_align& left_align,
455 boolis_self_forward_primer,
456 boolis_self_reverse_primer);
458 voidx_AnalyzeLeftAndRightPrimer(
constvector<SHspInfo*>& hsp_list,
460 intHspOverlappingWithLeftPrimer_size,
461 intHspOverlappingWithRightPrimer_size,
467 boolget_master_range,
475 voidx_FindOverlappingHSP(
SHspIndexInfo* left_window_index_list,
476 int& left_window_index_list_size,
478 int& right_window_index_list_size,
483 constvector<SHspInfo*>& hsp_list);
486 voidx_SortPrimerHit(vector<vector<SPrimerHitInfo> >& primer_hit_list_list);
494 voidx_FindMatchInfoForAlignment(
CDense_seg& primer_denseg,
501 int& max_num_continuous_match,
511 int& max_num_continuous_match,
516 bool& nw_align_modified);
622 friendclass ::CPrimercheckTest;
TSeqPos m_ActualProductLen
the actual length of the pcr product on the input template
const SPrimerInfo * m_PrimerInfo
const vector< vector< SPrimerHitInfo > > & GetTranscriptVariantTargetList() const
return the hits that represent the transcript variant from the same gene as the input pcr template.
const COligoSpecificityTemplate * m_Hits
the information about the blast results
SHspIndexInfo * m_HspOverlappingWithLeftPrimer
CRef< CScope > m_Scope
scope to fetch sequence
SHspIndexInfo * m_HspOverlappingWithLeftPrimerMinusStrand
pair< CRef< CSeq_align >, CRef< CSeq_align > > TAlignmentPair
vector< vector< SPrimerHitInfo > > m_SelfHit
the hit represent the input template
vector< vector< SPrimerHitInfo > > m_VariantHit
the hits represent the transcript variants from the same gene as the input template
CRef< CScope > m_FeatureScope
void x_GetCachedAlnRange(CRange< TSeqPos > &master_range, CRange< TSeqPos > &hit_range, bool get_master_range, bool get_hit_range, const CSeq_align &input_hit)
const vector< vector< SPrimerHitInfo > > & GetNonSpecificTargetList() const
return the non-specific hits that the primer pairs can amplify
SHspIndexInfo * m_HspOverlappingWithRightPrimerMinusStrand
TSeqPos m_SpecifiedProductLen
the requested pcr length for non-specific template
vector< map< SSlaveRange, CRange< TSeqPos >, slave_range_sort_order > > m_SlaveRangeCache
vector< vector< SPrimerHitInfo > > m_PrimerHit
the non-specific hit for the primer pair
vector< int > m_NumTargetFromSameSequence
max number of targets allowed from a single subject sequence for a primer.
vector< const SPrimerInfo * > m_PrimerInfoList
the information about primer to be checked
CRef< CObjectManager > m_FeatureOM
const vector< vector< SPrimerHitInfo > > & GetAllowedTargetList() const
return the hits the primer pair can amplify but users want to ignore for specificity
map< SAlnCache, SPrimerMatch, sort_order > m_Cache
cache coordinate-alignment mapping
const vector< vector< SPrimerHitInfo > > & GetSelfTargetList() const
retrun the hit whose seqid is the same as the template hit itself.
SHspIndexInfo * m_HspOverlappingWithRightPrimer
vector< vector< SPrimerHitInfo > > m_AllowedHit
the hit that user choose to ingnore for specificity
int m_NumNonSpecificTarget
the number non-specific targets to return
void SetAllowedSeq(const list< CRef< CSeq_loc > > *allowed_seq)
TSeqPos m_Allowed3EndMismatch
3' end mismatches
CRange< TSeqPos > m_TemplateRange
range on the input template
CConstRef< CSeq_id > m_Id
seqid
void SetAllowedMismatch(TSeqPos allowed_total_mismatch, TSeqPos allowed_3end_mismatch)
Set mismatch threshhold below which a primer hit pair representing a PCR product will be reported.
TSeqPos m_MismatchRegionLength3End
the length or region at the 3' end for checking mismatches
TSeqPos m_MaxMismatch
total max allowed mismatch
vector< TSeqPos > m_AllowedSeqidIndex
user specified hits that can be disregarded for specificity checking
CSeq_id::EAccessionInfo m_TemplateType
void SetMaxMismatchDetection(TSeqPos max_mismatch)
const CBioseq_Handle & m_TemplateHandle
bioseq handle for input bioseq
vector< TSortedHsp > m_SortHit
the processed sorted hit list corresponding to the input seqalign
void SetAllowedSeqid(const vector< TSeqPos > &allowed_seqid_index)
Allowed seqid will not be counted as non-specific hits.
const list< CRef< CSeq_id > > * m_Allowed_Splice_Variants
TSeqPos m_AllowedTotalMismatch
total mismatches allowed by user
void SetAllowedSpliceVariants(const list< CRef< CSeq_id > > *allowed_splice_variants)
TSeqPos m_TargetSizeMax
the requested target max length
int m_WordSize
minimal continuous match required
int m_MaxTargetPerSequence
void SetTemplateRange(CRange< TSeqPos > range)
Set start and end position of the input PCR template.
const list< CRef< CSeq_loc > > * m_AllowedSeqloc
void SetNumNonSpecificTargets(int number)
The maximal number of non-specific targets to return.
void SetTargetSize(TSeqPos max)
Set the allowed pcr product size range.
void SetMaxTargetPerSequence(int number)
internal default 100
void SetMismatchRegionLength3End(TSeqPos length)
the length of region at the 3' end of primer during which the mismatched are counted.
vector< CIntervalTree * > m_RangeTreeListMinusStrand
vector< CIntervalTree * > m_RangeTreeListPlusStrand
unsigned int TSeqPos
Type for sequence locations and lengths.
EAccessionInfo
For IdentifyAccession (below)
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define NCBI_XPRIMER_EXPORT
ENa_strand
strand of nucleic acid
pair< vector< SHspInfo * >, vector< SHspInfo * > > TSortedHsp
key for coordinate-alignment cache
primer hit to the blast dababase
TSeqPos left_3end_mismatch
TSeqPos left_total_mismatch
TSeqPos right_total_mismatch
TSeqPos right_3end_mismatch
the input primer pair information only the left and right range information is needed by this API
int left_primer_genomic_exon_end
int right_primer_genomic_exon_end
int right_primer_genomic_exon_start
double internal_probe_gc_percent
double product_tm_oligo_tm_diff
double right_self_complementarity_any
double pair_complementarity_any
double left_self_complementarity_any
int left_primer_splice_site_pos
int right_primer_splice_site_pos
int left_primer_genomic_exon_start
string internal_probe_seq
CRange< TSeqPos > internal_probe
double pair_complementarity_3end
double left_self_complementarity_3end
double right_self_complementarity_3end
value for coordinate-alignment cache
TSeqPos num_3end_mismatch
total mismatchs
CRef< CSeq_align > aln
3' end gaps
TSeqPos num_3end_gap
total gaps
TSeqPos num_total_mismatch
TSeqPos num_total_gap
3' end mismatches
const CSeq_align * align_index
bool operator()(const SSlaveRange s1, const SSlaveRange s2) const
strict weak ordering functor
bool operator()(const SAlnCache s1, const SAlnCache s2) const
CRange< TSeqPos > master_range
CRange< TSeqPos > slave_range
CConstRef< CSeq_align > hsp
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