NCBI C++ ToolKit
Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
COligoSpecificityCheck Class Reference

Search Toolkit Book for COligoSpecificityCheck

#include <algo/primer/primercheck.hpp>

+ Inheritance diagram for COligoSpecificityCheck:
+ Collaboration diagram for COligoSpecificityCheck:

Classes

struct  SAlnCache
 key for coordinate-alignment cache More...
 
struct  SHspIndexInfo
 
struct  slave_range_sort_order
 
struct  sort_order
 strict weak ordering functor More...
 
struct  SPrimerHitInfo
 primer hit to the blast dababase More...
 
struct  SPrimerInfo
 the input primer pair information only the left and right range information is needed by this API More...
 
struct  SPrimerMatch
 value for coordinate-alignment cache More...
 
struct  SSlaveRange
 

Public Types

typedef pair< CRef< CSeq_align >, CRef< CSeq_align > > TAlignmentPair
 
- Public Types inherited from CObject
enum  EAllocFillMode { eAllocFillNone = 1, eAllocFillZero, eAllocFillPattern }
 Control filling of newly allocated memory. More...
 
typedef CObjectCounterLocker TLockerType
 Default locker type for CRef. More...
 
typedef CAtomicCounter TCounter
 Counter type is CAtomiCounter. More...
 
typedef TCounter::TValue TCount
 Alias for value type of counter. More...
 

Public Member Functions

 COligoSpecificityCheck (const COligoSpecificityTemplate *temp, CScope &scope)
 
 ~COligoSpecificityCheck ()
 
void CheckSpecificity (const vector< SPrimerInfo > &primer_info_list, int from=0, int to=-1)
 check the specificity of the primer pairs. More...
 
const vector< vector< SPrimerHitInfo > > & GetNonSpecificTargetList () const
 return the non-specific hits that the primer pairs can amplify More...
 
const vector< vector< SPrimerHitInfo > > & GetAllowedTargetList () const
 return the hits the primer pair can amplify but users want to ignore for specificity More...
 
const vector< vector< SPrimerHitInfo > > & GetSelfTargetList () const
 retrun the hit whose seqid is the same as the template hit itself. More...
 
const vector< vector< SPrimerHitInfo > > & GetTranscriptVariantTargetList () const
 return the hits that represent the transcript variant from the same gene as the input pcr template. More...
 
- Public Member Functions inherited from CObject
 CObject (void)
 Constructor. More...
 
 CObject (const CObject &src)
 Copy constructor. More...
 
virtual ~CObject (void)
 Destructor. More...
 
CObjectoperator= (const CObject &src) THROWS_NONE
 Assignment operator. More...
 
bool CanBeDeleted (void) const THROWS_NONE
 Check if object can be deleted. More...
 
bool IsAllocatedInPool (void) const THROWS_NONE
 Check if object is allocated in memory pool (not system heap) More...
 
bool Referenced (void) const THROWS_NONE
 Check if object is referenced. More...
 
bool ReferencedOnlyOnce (void) const THROWS_NONE
 Check if object is referenced only once. More...
 
void AddReference (void) const
 Add reference to object. More...
 
void RemoveReference (void) const
 Remove reference to object. More...
 
void ReleaseReference (void) const
 Remove reference without deleting object. More...
 
virtual void DoNotDeleteThisObject (void)
 Mark this object as not allocated in heap – do not delete this object. More...
 
virtual void DoDeleteThisObject (void)
 Mark this object as allocated in heap – object can be deleted. More...
 
void * operator new (size_t size)
 Define new operator for memory allocation. More...
 
void * operator new[] (size_t size)
 Define new[] operator for 'array' memory allocation. More...
 
void operator delete (void *ptr)
 Define delete operator for memory deallocation. More...
 
void operator delete[] (void *ptr)
 Define delete[] operator for memory deallocation. More...
 
void * operator new (size_t size, void *place)
 Define new operator. More...
 
void operator delete (void *ptr, void *place)
 Define delete operator. More...
 
void * operator new (size_t size, CObjectMemoryPool *place)
 Define new operator using memory pool. More...
 
void operator delete (void *ptr, CObjectMemoryPool *place)
 Define delete operator. More...
 
virtual void DebugDump (CDebugDumpContext ddc, unsigned int depth) const
 Define method for dumping debug information. More...
 
- Public Member Functions inherited from CDebugDumpable
 CDebugDumpable (void)
 
virtual ~CDebugDumpable (void)
 
void DebugDumpText (ostream &out, const string &bundle, unsigned int depth) const
 
void DebugDumpFormat (CDebugDumpFormatter &ddf, const string &bundle, unsigned int depth) const
 
void DumpToConsole (void) const
 

Private Member Functions

void x_AnalyzePrimerSpecificity ()
 Analyze the primer pair specificity. More...
 
void x_AnalyzeTwoPrimers (const TSortedHsp &sorted_hsp, TSeqPos index)
 Analyze the the primer pair specificity usign both left and right primer at ends. More...
 
void x_AnalyzeOnePrimer (const vector< SHspInfo * > &plus_strand_hsp_list, const vector< SHspInfo * > &minus_strand_hsp_list, int HspOverlappingWithLeftPrimer_size, int HspOverlappingWithRightPrimer_size, int HspOverlappingWithLeftPrimerMinusStrand_size, int HspOverlappingWithRightPrimerMinusStrand_size, TSeqPos hit_index)
 analyze the case where the left primer itself can serve as both left and right primer More...
 
CRef< CSeq_alignx_FillGlobalAlignInfo (const CRange< TSeqPos > &desired_align_range, SHspInfo *input_hsp_info, TSeqPos &num_total_mismatch, TSeqPos &num_3end_mismatch, TSeqPos &num_total_gap, TSeqPos &num_3end_gap, bool is_left_primer, TSeqPos index, ENa_strand hit_strand)
 return alignment for the full primer window. More...
 
bool x_IsPcrLengthInRange (const CSeq_align &left_primer_hit_align, const CSeq_align &right_primer_hit_align, bool primers_on_different_strand, ENa_strand hit_strand, int &product_len)
 Test if the primer pair generates the pcr product in specified length range and fill the actual length. More...
 
void x_SavePrimerInfo (CSeq_align &left_align, CSeq_align &right_align, TSeqPos left_total_mismatch, TSeqPos left_3end_mismatch, TSeqPos left_total_gap, TSeqPos left_3end_gap, TSeqPos right_total_mismatch, TSeqPos right_3end_mismatch, TSeqPos right_total_gap, TSeqPos right_3end_gap, int product_len, TSeqPos index, bool is_self_forward_primer, bool is_self_reverse_primer)
 save the primer informaton More...
 
void x_AnalyzeLeftAndRightPrimer (const vector< SHspInfo * > &hsp_list, ENa_strand hit_strand, int HspOverlappingWithLeftPrimer_size, int HspOverlappingWithRightPrimer_size, TSeqPos hit_index)
 
void x_GetCachedAlnRange (CRange< TSeqPos > &master_range, CRange< TSeqPos > &hit_range, bool get_master_range, bool get_hit_range, const CSeq_align &input_hit)
 
CRange< TSeqPosx_GetSlaveRangeGivenMasterRange (const CSeq_align &input_align, CRange< TSeqPos > &master_range, int index)
 
void x_FindOverlappingHSP (SHspIndexInfo *left_window_index_list, int &left_window_index_list_size, SHspIndexInfo *right_window_index_list, int &right_window_index_list_size, const CRange< TSeqPos > &left_window_desired_range, const CRange< TSeqPos > &right_window_desired_range, ENa_strand hit_strand, TSeqPos hit_index, const vector< SHspInfo * > &hsp_list)
 
void x_SortPrimerHit (vector< vector< SPrimerHitInfo > > &primer_hit_list_list)
 
bool x_SequencesMappedToSameTarget (CSeq_id::EAccessionInfo hit_type, const CSeq_align &left_align, const CSeq_align &right_align)
 
void x_FindMatchInfoForAlignment (CDense_seg &primer_denseg, bool &end_gap, TSeqPos &num_total_mismatch, TSeqPos &num_3end_mismatch, TSeqPos &num_total_gap, TSeqPos &num_3end_gap, bool is_left_primer, int &max_num_continuous_match, CRange< TSignedSeqPos > &aln_range)
 
CRef< CDense_segx_NW_alignment (const CRange< TSeqPos > &desired_align_range, const CSeq_align &input_hit, TSeqPos &num_total_mismatch, TSeqPos &num_3end_mismatch, TSeqPos &num_total_gap, TSeqPos &num_3end_gap, bool is_left_primer, int &max_num_continuous_match, int &align_length, TSeqPos master_local_start, TSeqPos master_local_stop, ENa_strand hit_strand, bool &nw_align_modified)
 

Private Attributes

const COligoSpecificityTemplatem_Hits
 the information about the blast results More...
 
CRef< CScopem_Scope
 scope to fetch sequence More...
 
vector< const SPrimerInfo * > m_PrimerInfoList
 the information about primer to be checked More...
 
const SPrimerInfom_PrimerInfo
 
vector< vector< SPrimerHitInfo > > m_PrimerHit
 the non-specific hit for the primer pair More...
 
vector< vector< SPrimerHitInfo > > m_SelfHit
 the hit represent the input template More...
 
vector< vector< SPrimerHitInfo > > m_AllowedHit
 the hit that user choose to ingnore for specificity More...
 
vector< vector< SPrimerHitInfo > > m_VariantHit
 the hits represent the transcript variants from the same gene as the input template More...
 
vector< intm_NumTargetFromSameSequence
 max number of targets allowed from a single subject sequence for a primer. More...
 
TSeqPos m_SpecifiedProductLen
 the requested pcr length for non-specific template More...
 
int m_CurrentPrimerIndex
 
TSeqPos m_ActualProductLen
 the actual length of the pcr product on the input template More...
 
CRef< CObjectManagerm_FeatureOM
 
CRef< CScopem_FeatureScope
 
map< SAlnCache, SPrimerMatch, sort_orderm_Cache
 cache coordinate-alignment mapping More...
 
vector< map< SSlaveRange, CRange< TSeqPos >, slave_range_sort_order > > m_SlaveRangeCache
 
CGeneInfoFileReader m_FileReader
 tool to get gene id More...
 
SHspIndexInfom_HspOverlappingWithLeftPrimer
 
SHspIndexInfom_HspOverlappingWithRightPrimer
 
SHspIndexInfom_HspOverlappingWithLeftPrimerMinusStrand
 
SHspIndexInfom_HspOverlappingWithRightPrimerMinusStrand
 

Friends

class ::CPrimercheckTest
 

Additional Inherited Members

- Static Public Member Functions inherited from CObject
static NCBI_NORETURN void ThrowNullPointerException (void)
 Define method to throw null pointer exception. More...
 
static NCBI_NORETURN void ThrowNullPointerException (const type_info &type)
 
static EAllocFillMode GetAllocFillMode (void)
 
static void SetAllocFillMode (EAllocFillMode mode)
 
static void SetAllocFillMode (const string &value)
 Set mode from configuration parameter value. More...
 
- Static Public Member Functions inherited from CDebugDumpable
static void EnableDebugDump (bool on)
 
- Static Public Attributes inherited from CObject
static const TCount eCounterBitsCanBeDeleted = 1 << 0
 Define possible object states. More...
 
static const TCount eCounterBitsInPlainHeap = 1 << 1
 Heap signature was found. More...
 
static const TCount eCounterBitsPlaceMask
 Mask for 'in heap' state flags. More...
 
static const int eCounterStep = 1 << 2
 Skip over the "in heap" bits. More...
 
static const TCount eCounterValid = TCount(1) << (sizeof(TCount) * 8 - 2)
 Minimal value for valid objects (reference counter is zero) Must be a single bit value. More...
 
static const TCount eCounterStateMask
 Valid object, and object in heap. More...
 
- Protected Member Functions inherited from CObject
virtual void DeleteThis (void)
 Virtual method "deleting" this object. More...
 

Detailed Description

Definition at line 234 of file primercheck.hpp.

Member Typedef Documentation

Definition at line 279 of file primercheck.hpp.

Constructor & Destructor Documentation

COligoSpecificityCheck::COligoSpecificityCheck ( const COligoSpecificityTemplate temp,
CScope scope 
)
COligoSpecificityCheck::~COligoSpecificityCheck ( )

Member Function Documentation

void COligoSpecificityCheck::CheckSpecificity ( const vector< SPrimerInfo > &  primer_info_list,
int  from = 0,
int  to = -1 
)

check the specificity of the primer pairs.

Note that this funtion can can be called repeatedly with different primer_info after constructor call, assuming the input seqalign is the same. Subsequent calls will be very fast if the primer window has been checked before as the primer match info is cached

Parameters
primer_infothe primer to be checked for specificity
fromthe starting index of primer to be checked for specificity
tothe ending index + 1 of primer to be checked for specificity

Definition at line 1931 of file primercheck.cpp.

References i, m_AllowedHit, m_NumTargetFromSameSequence, m_PrimerHit, m_PrimerInfoList, m_SelfHit, m_VariantHit, x_AnalyzePrimerSpecificity(), and x_SortPrimerHit().

const vector<vector<SPrimerHitInfo> >& COligoSpecificityCheck::GetAllowedTargetList ( ) const
inline

return the hits the primer pair can amplify but users want to ignore for specificity

Definition at line 329 of file primercheck.hpp.

References m_AllowedHit.

const vector<vector<SPrimerHitInfo> >& COligoSpecificityCheck::GetNonSpecificTargetList ( ) const
inline

return the non-specific hits that the primer pairs can amplify

Definition at line 322 of file primercheck.hpp.

References m_PrimerHit.

const vector<vector<SPrimerHitInfo> >& COligoSpecificityCheck::GetSelfTargetList ( ) const
inline

retrun the hit whose seqid is the same as the template hit itself.

Definition at line 335 of file primercheck.hpp.

References m_SelfHit.

const vector<vector<SPrimerHitInfo> >& COligoSpecificityCheck::GetTranscriptVariantTargetList ( ) const
inline

return the hits that represent the transcript variant from the same gene as the input pcr template.

Definition at line 342 of file primercheck.hpp.

References m_VariantHit.

void COligoSpecificityCheck::x_AnalyzeLeftAndRightPrimer ( const vector< SHspInfo * > &  hsp_list,
ENa_strand  hit_strand,
int  HspOverlappingWithLeftPrimer_size,
int  HspOverlappingWithRightPrimer_size,
TSeqPos  hit_index 
)
private
void COligoSpecificityCheck::x_AnalyzeOnePrimer ( const vector< SHspInfo * > &  plus_strand_hsp_list,
const vector< SHspInfo * > &  minus_strand_hsp_list,
int  HspOverlappingWithLeftPrimer_size,
int  HspOverlappingWithRightPrimer_size,
int  HspOverlappingWithLeftPrimerMinusStrand_size,
int  HspOverlappingWithRightPrimerMinusStrand_size,
TSeqPos  hit_index 
)
private

analyze the case where the left primer itself can serve as both left and right primer

Parameters
left_primer_hit_alignthe alignment covering the left primer window
left_total_mismatchtotal mismatches in left primer alignment
left_3end_mismatchmismatches at 3' end in left primer alignment
left_total_gaptotal gaps in alignment
left_3end_gapgaps at 3' end region
hit_listthe template hit list from the specificity checking database
primer_order_reversedset to true for the case where right primer can serve as both left and right primer

Definition at line 1529 of file primercheck.cpp.

References CSerialObject::Assign(), COpenRange< Position >::Empty(), COpenRange< Position >::GetFrom(), COpenRange< Position >::GetLength(), COpenRange< Position >::GetTo(), i, COligoSpecificityCheck::SHspIndexInfo::index, COpenRange< Position >::IntersectionWith(), COligoSpecificityCheck::SPrimerInfo::left, m_CurrentPrimerIndex, m_Hits, m_HspOverlappingWithLeftPrimer, m_HspOverlappingWithLeftPrimerMinusStrand, m_HspOverlappingWithRightPrimer, m_HspOverlappingWithRightPrimerMinusStrand, COligoSpecificityTemplate::m_MaxTargetPerSequence, COligoSpecificityTemplate::m_NumNonSpecificTarget, m_NumTargetFromSameSequence, m_PrimerHit, m_PrimerInfo, COligoSpecificityTemplate::m_TargetSizeMax, NULL, CSeq_align::Reverse(), COligoSpecificityCheck::SPrimerInfo::right, size, x_FillGlobalAlignInfo(), x_GetSlaveRangeGivenMasterRange(), x_IsPcrLengthInRange(), and x_SavePrimerInfo().

Referenced by x_AnalyzeTwoPrimers().

void COligoSpecificityCheck::x_AnalyzePrimerSpecificity ( )
private
void COligoSpecificityCheck::x_AnalyzeTwoPrimers ( const TSortedHsp sorted_hsp,
TSeqPos  index 
)
private

Analyze the the primer pair specificity usign both left and right primer at ends.

Parameters
sorted_hspcontains seqalign from the same slave sequence
hit_strandthe strand to use as the template
indexthe array index of sorted_hsp in m_SortHit list.

Definition at line 1214 of file primercheck.cpp.

References COligoSpecificityCheck::SPrimerInfo::left, m_HspOverlappingWithLeftPrimer, m_HspOverlappingWithLeftPrimerMinusStrand, m_HspOverlappingWithRightPrimer, m_HspOverlappingWithRightPrimerMinusStrand, m_PrimerInfo, COligoSpecificityCheck::SPrimerInfo::right, x_AnalyzeLeftAndRightPrimer(), x_AnalyzeOnePrimer(), and x_FindOverlappingHSP().

Referenced by x_AnalyzePrimerSpecificity().

CRef< CSeq_align > COligoSpecificityCheck::x_FillGlobalAlignInfo ( const CRange< TSeqPos > &  desired_align_range,
SHspInfo input_hsp_info,
TSeqPos num_total_mismatch,
TSeqPos num_3end_mismatch,
TSeqPos num_total_gap,
TSeqPos num_3end_gap,
bool  is_left_primer,
TSeqPos  index,
ENa_strand  hit_strand 
)
private

return alignment for the full primer window.

Parital alignment will be extended with NW global alignment.

Parameters
desired_align_rangethe desired primer window
input_hitseqalign contains input template and the hits
num_total_mismatchtotal mismatches to be filled
num_3end_mismatch3' end mismatches to be filled
num_total_gaptotal gaps to be filled
num_3end_gap3' end gaps to be filled
is_left_primerIs the the left primer?
Returns
: the alignment representing the desired primer window

Definition at line 686 of file primercheck.cpp.

References COligoSpecificityCheck::SPrimerMatch::aln, CSeq_align_Base::eType_partial, CDense_seg::ExtractSlice(), CSeq_align_Base::C_Segs::GetDenseg(), COpenRange< Position >::GetFrom(), COpenRange< Position >::GetLength(), CSeq_align_Base::GetSegs(), COpenRange< Position >::GetTo(), COligoSpecificityCheck::SAlnCache::hit_id, COligoSpecificityCheck::SAlnCache::hit_start, SHspInfo::hsp, COligoSpecificityCheck::SAlnCache::is_left_primer, COligoSpecificityCheck::SAlnCache::is_positive_strand, k_Min_Percent_Identity, k_MinOverlapLenFactor, m_Cache, m_Hits, COligoSpecificityTemplate::m_WordSize, SHspInfo::master_range, COligoSpecificityCheck::SAlnCache::master_start, NULL, COligoSpecificityCheck::SPrimerMatch::num_3end_gap, COligoSpecificityCheck::SPrimerMatch::num_3end_mismatch, COligoSpecificityCheck::SPrimerMatch::num_total_gap, COligoSpecificityCheck::SPrimerMatch::num_total_mismatch, COligoSpecificityCheck::SAlnCache::primer_start, COligoSpecificityCheck::SAlnCache::primer_stop, CSeq_align_Base::SetSegs(), CSeq_align_Base::SetType(), SHspInfo::slave_range, tmp, x_FindMatchInfoForAlignment(), and x_NW_alignment().

Referenced by x_AnalyzeLeftAndRightPrimer(), and x_AnalyzeOnePrimer().

void COligoSpecificityCheck::x_FindMatchInfoForAlignment ( CDense_seg primer_denseg,
bool end_gap,
TSeqPos num_total_mismatch,
TSeqPos num_3end_mismatch,
TSeqPos num_total_gap,
TSeqPos num_3end_gap,
bool  is_left_primer,
int max_num_continuous_match,
CRange< TSignedSeqPos > &  aln_range 
)
private
void COligoSpecificityCheck::x_FindOverlappingHSP ( SHspIndexInfo left_window_index_list,
int left_window_index_list_size,
SHspIndexInfo right_window_index_list,
int right_window_index_list_size,
const CRange< TSeqPos > &  left_window_desired_range,
const CRange< TSeqPos > &  right_window_desired_range,
ENa_strand  hit_strand,
TSeqPos  hit_index,
const vector< SHspInfo * > &  hsp_list 
)
private
void COligoSpecificityCheck::x_GetCachedAlnRange ( CRange< TSeqPos > &  master_range,
CRange< TSeqPos > &  hit_range,
bool  get_master_range,
bool  get_hit_range,
const CSeq_align input_hit 
)
private
CRange< TSeqPos > COligoSpecificityCheck::x_GetSlaveRangeGivenMasterRange ( const CSeq_align input_align,
CRange< TSeqPos > &  master_range,
int  index 
)
private
bool COligoSpecificityCheck::x_IsPcrLengthInRange ( const CSeq_align left_primer_hit_align,
const CSeq_align right_primer_hit_align,
bool  primers_on_different_strand,
ENa_strand  hit_strand,
int product_len 
)
private

Test if the primer pair generates the pcr product in specified length range and fill the actual length.

Parameters
left_primer_hit_alignalignment for the left primer
right_primer_hit_alignalignment for the right primer
product_lenlength to be filled.

Definition at line 1490 of file primercheck.cpp.

References COpenRange< Position >::GetLength(), CSeq_align::GetSeqRange(), CSeq_align::GetSeqStart(), CSeq_align::GetSeqStop(), int, COligoSpecificityCheck::SPrimerInfo::left, m_Hits, m_PrimerInfo, COligoSpecificityTemplate::m_TargetSizeMax, min(), result, and COligoSpecificityCheck::SPrimerInfo::right.

Referenced by x_AnalyzeLeftAndRightPrimer(), and x_AnalyzeOnePrimer().

CRef< CDense_seg > COligoSpecificityCheck::x_NW_alignment ( const CRange< TSeqPos > &  desired_align_range,
const CSeq_align input_hit,
TSeqPos num_total_mismatch,
TSeqPos num_3end_mismatch,
TSeqPos num_total_gap,
TSeqPos num_3end_gap,
bool  is_left_primer,
int max_num_continuous_match,
int align_length,
TSeqPos  master_local_start,
TSeqPos  master_local_stop,
ENa_strand  hit_strand,
bool nw_align_modified 
)
private
void COligoSpecificityCheck::x_SavePrimerInfo ( CSeq_align left_align,
CSeq_align right_align,
TSeqPos  left_total_mismatch,
TSeqPos  left_3end_mismatch,
TSeqPos  left_total_gap,
TSeqPos  left_3end_gap,
TSeqPos  right_total_mismatch,
TSeqPos  right_3end_mismatch,
TSeqPos  right_total_gap,
TSeqPos  right_3end_gap,
int  product_len,
TSeqPos  index,
bool  is_self_forward_primer,
bool  is_self_reverse_primer 
)
private

save the primer informaton

Parameters
left_alignalignment for the left primer
right_alignalignment for the right primer
left_total_mismatchtotal mismatches in left primer alignment
left_3end_mismatchmismatches at 3' end in left primer alignment
left_total_gaptotal gaps in alignment
left_3end_gapgaps at 3' end region
right_total_mismatchtotal mismatches in left primer alignment
right_3end_mismatchmismatches at 3' end in left primer alignment
right_total_gaptotal gaps in alignment
right_3end_gapgaps at 3' end region
product_lenproduct length
indexthe position index is seqalign
one_primer_caseis this the one primer case?

Definition at line 957 of file primercheck.cpp.

References COligoSpecificityCheck::SPrimerHitInfo::aln, ContainsId(), CSeq_id_Base::e_Gi, CSeq_id_Base::e_Local, CSeq_id::eAcc_chromosome, CSeq_id::eAcc_con, CSeq_id::eAcc_division_mask, CSeq_id::eAcc_htgs, CSeq_id::eAcc_refseq_genomic, CSeq_id::eAcc_wgs, FindBestChoice(), FindGi(), CScope::GetBioseqHandle(), COpenRange< Position >::GetFrom(), CGeneInfoFileReader::GetGeneIdsForGi(), CSeq_id_Base::GetGi(), CBioseq_Handle::GetId(), CSeq_align::GetSeq_id(), CSeq_align::GetSeqRange(), COpenRange< Position >::GetTo(), GI_TO, CSeq_id::IdentifyAccession(), COligoSpecificityCheck::SPrimerHitInfo::index, info, COpenRange< Position >::IntersectingWith(), ITERATE, COligoSpecificityCheck::SPrimerHitInfo::left_3end_gap, COligoSpecificityCheck::SPrimerHitInfo::left_3end_mismatch, COligoSpecificityCheck::SPrimerHitInfo::left_total_gap, COligoSpecificityCheck::SPrimerHitInfo::left_total_mismatch, m_AllowedHit, COligoSpecificityTemplate::m_AllowedSeqidIndex, COligoSpecificityTemplate::m_AllowedSeqloc, COligoSpecificityTemplate::m_AllowTranscriptVariants, m_CurrentPrimerIndex, m_FileReader, m_Hits, COligoSpecificityTemplate::m_Id, m_NumTargetFromSameSequence, m_PrimerHit, m_Scope, m_SelfHit, COligoSpecificityTemplate::m_TemplateHandle, COligoSpecificityTemplate::m_TemplateRange, COligoSpecificityTemplate::m_TemplateType, m_VariantHit, max(), min(), COligoSpecificityCheck::SPrimerHitInfo::product_len, COligoSpecificityCheck::SPrimerHitInfo::right_3end_gap, COligoSpecificityCheck::SPrimerHitInfo::right_3end_mismatch, COligoSpecificityCheck::SPrimerHitInfo::right_total_gap, COligoSpecificityCheck::SPrimerHitInfo::right_total_mismatch, COligoSpecificityCheck::SPrimerHitInfo::self_forward_primer, COligoSpecificityCheck::SPrimerHitInfo::self_reverse_primer, SeqLocAllowed(), CSeq_id_Base::Which(), CSeq_id::WorstRank(), x_SequencesMappedToSameTarget(), and ZERO_GI.

Referenced by x_AnalyzeLeftAndRightPrimer(), and x_AnalyzeOnePrimer().

bool COligoSpecificityCheck::x_SequencesMappedToSameTarget ( CSeq_id::EAccessionInfo  hit_type,
const CSeq_align left_align,
const CSeq_align right_align 
)
private
void COligoSpecificityCheck::x_SortPrimerHit ( vector< vector< SPrimerHitInfo > > &  primer_hit_list_list)
private

Friends And Related Function Documentation

friend class ::CPrimercheckTest
friend

Definition at line 631 of file primercheck.hpp.

Member Data Documentation

TSeqPos COligoSpecificityCheck::m_ActualProductLen
private

the actual length of the pcr product on the input template

Definition at line 532 of file primercheck.hpp.

vector<vector<SPrimerHitInfo> > COligoSpecificityCheck::m_AllowedHit
private

the hit that user choose to ingnore for specificity

Definition at line 367 of file primercheck.hpp.

Referenced by CheckSpecificity(), GetAllowedTargetList(), and x_SavePrimerInfo().

map<SAlnCache, SPrimerMatch, sort_order> COligoSpecificityCheck::m_Cache
private

cache coordinate-alignment mapping

Definition at line 593 of file primercheck.hpp.

Referenced by x_FillGlobalAlignInfo().

int COligoSpecificityCheck::m_CurrentPrimerIndex
private
CRef<CObjectManager> COligoSpecificityCheck::m_FeatureOM
private

Definition at line 535 of file primercheck.hpp.

Referenced by x_SequencesMappedToSameTarget().

CRef<CScope> COligoSpecificityCheck::m_FeatureScope
private

Definition at line 536 of file primercheck.hpp.

Referenced by x_SequencesMappedToSameTarget().

CGeneInfoFileReader COligoSpecificityCheck::m_FileReader
private

tool to get gene id

Definition at line 622 of file primercheck.hpp.

Referenced by x_SavePrimerInfo().

const COligoSpecificityTemplate* COligoSpecificityCheck::m_Hits
private
SHspIndexInfo* COligoSpecificityCheck::m_HspOverlappingWithLeftPrimer
private
SHspIndexInfo* COligoSpecificityCheck::m_HspOverlappingWithLeftPrimerMinusStrand
private
SHspIndexInfo* COligoSpecificityCheck::m_HspOverlappingWithRightPrimer
private
SHspIndexInfo* COligoSpecificityCheck::m_HspOverlappingWithRightPrimerMinusStrand
private
vector<int> COligoSpecificityCheck::m_NumTargetFromSameSequence
private

max number of targets allowed from a single subject sequence for a primer.

Definition at line 373 of file primercheck.hpp.

Referenced by CheckSpecificity(), x_AnalyzeLeftAndRightPrimer(), x_AnalyzeOnePrimer(), x_AnalyzePrimerSpecificity(), and x_SavePrimerInfo().

vector<vector<SPrimerHitInfo> > COligoSpecificityCheck::m_PrimerHit
private

the non-specific hit for the primer pair

Definition at line 361 of file primercheck.hpp.

Referenced by CheckSpecificity(), GetNonSpecificTargetList(), x_AnalyzeLeftAndRightPrimer(), x_AnalyzeOnePrimer(), and x_SavePrimerInfo().

const SPrimerInfo* COligoSpecificityCheck::m_PrimerInfo
private
vector<const SPrimerInfo *> COligoSpecificityCheck::m_PrimerInfoList
private

the information about primer to be checked

Definition at line 355 of file primercheck.hpp.

Referenced by CheckSpecificity(), and x_AnalyzePrimerSpecificity().

CRef<CScope> COligoSpecificityCheck::m_Scope
private

scope to fetch sequence

Definition at line 352 of file primercheck.hpp.

Referenced by x_FindMatchInfoForAlignment(), x_NW_alignment(), and x_SavePrimerInfo().

vector<vector<SPrimerHitInfo> > COligoSpecificityCheck::m_SelfHit
private

the hit represent the input template

Definition at line 364 of file primercheck.hpp.

Referenced by CheckSpecificity(), GetSelfTargetList(), and x_SavePrimerInfo().

vector<map <SSlaveRange, CRange<TSeqPos>, slave_range_sort_order> > COligoSpecificityCheck::m_SlaveRangeCache
private

Definition at line 619 of file primercheck.hpp.

Referenced by COligoSpecificityCheck(), and x_GetSlaveRangeGivenMasterRange().

TSeqPos COligoSpecificityCheck::m_SpecifiedProductLen
private

the requested pcr length for non-specific template

Definition at line 527 of file primercheck.hpp.

Referenced by x_AnalyzePrimerSpecificity().

vector<vector<SPrimerHitInfo> > COligoSpecificityCheck::m_VariantHit
private

the hits represent the transcript variants from the same gene as the input template

Definition at line 370 of file primercheck.hpp.

Referenced by CheckSpecificity(), GetTranscriptVariantTargetList(), and x_SavePrimerInfo().


The documentation for this class was generated from the following files:
Modified on Tue Jul 25 19:52:58 2017 by modify_doxy.py rev. 533848