Inserter Class Reference

The Inserter class provides basic functionality for classes that perform insertion mutations. More...

#include <Mutator.h>

Inheritance diagram for Inserter:

Inheritance graph
[legend]
Collaboration diagram for Inserter:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Inserter (mems::gnAlignedSequences &donor_seqs)
void mutate (node_id_t nodeI, const PhyloTree< TreeNode > &tree, Alignment &evolved_alignment)
 Perform a mutation on a sequence alignment.


Protected Member Functions

virtual void getLocation (gnSeqI &source_start, gnSeqI &source_len, gnSeqI &dest, gnSeqI dest_len)=0
void recursiveInsert (node_id_t cur_node, node_id_t insert_node, const PhyloTree< TreeNode > &t, Alignment &evolved_alignment, gnSeqI point, gnSeqI source_left, gnSeqI source_length)

Detailed Description

The Inserter class provides basic functionality for classes that perform insertion mutations.

Definition at line 62 of file Mutator.h.


Constructor & Destructor Documentation

Inserter::Inserter mems::gnAlignedSequences &  donor_seqs  )  [inline]
 

Definition at line 73 of file Mutator.h.


Member Function Documentation

virtual void Inserter::getLocation gnSeqI &  source_start,
gnSeqI &  source_len,
gnSeqI &  dest,
gnSeqI  dest_len
[protected, pure virtual]
 

Implemented in IndelInserter, SmallHTInserter, and LargeHTInserter.

Referenced by mutate().

void Inserter::mutate node_id_t  nodeI,
const PhyloTree< TreeNode > &  tree,
Alignment evolved_alignment
[virtual]
 

Perform a mutation on a sequence alignment.

Given a sequence alignment and a phylogenetic tree relating the sequences in the alignment, this function will perform a mutation on the sequence alignment at a particular point in the alignment's phylogenetic history.

Parameters:
nodeI The node in the phylogenetic tree to perform the mutation at
tree The phylogenetic tree corresponding to the sequence alignment
evolved_alignment An alignment of sequences corresponding to each node (including ancestral nodes) of the phylogenetic tree. If there are multiple entries in the vector, the sequence is not collinear.

Implements Mutator.

Definition at line 120 of file Mutator.cpp.

References Alignment::checkLengths(), debugChecks(), Alignment::getColumnIndex(), getLocation(), recursiveInsert(), and Alignment::sequenceLength().

void Inserter::recursiveInsert node_id_t  cur_node,
node_id_t  insert_node,
const PhyloTree< TreeNode > &  t,
Alignment evolved_alignment,
gnSeqI  point,
gnSeqI  source_left,
gnSeqI  source_length
[protected]
 

Definition at line 133 of file Mutator.cpp.

References Alignment::applyGapInsertion(), and Alignment::applyInsertion().

Referenced by mutate().


The documentation for this class was generated from the following files:
Generated on Mon Aug 19 06:00:54 2013 for sgEvolver by doxygen 1.3.6