vg
tools for working with variation graphs
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
vg::MinimumDistanceIndex::ChainIndex Class Reference

#include <min_distance.hpp>

Public Member Functions

 ChainIndex (id_t parent_id, id_t id_in_parent, id_t end_id, bool rev_in_parent, bool loops, size_t length)
 
 ChainIndex ()
 
void load (istream &in)
 
void serialize (ostream &out) const
 Serialize the chain. More...
 
int64_t chain_distance (pair< size_t, bool > start, pair< size_t, bool > end, int64_t startLen, int64_t endLen, bool check_loop=false) const
 
int64_t chain_length () const
 
void print_self () const
 
json_t * chain_to_json ()
 

Protected Member Functions

int64_t loop_distance (pair< size_t, bool > start, pair< size_t, bool > end, int64_t startLen, int64_t endLen) const
 

Protected Attributes

int_vector prefix_sum
 
int_vector loop_fd
 
int_vector loop_rev
 
id_t parent_id
 
bool rev_in_parent
 
id_t id_in_parent
 
id_t end_id
 
bool is_looping_chain
 
int64_t max_width
 

Friends

class MinimumDistanceIndex
 
class SnarlSeedClusterer
 

Detailed Description

Stores distances between snarls in a chain

Constructor & Destructor Documentation

◆ ChainIndex() [1/2]

vg::MinimumDistanceIndex::ChainIndex::ChainIndex ( id_t  parent_id,
id_t  id_in_parent,
id_t  end_id,
bool  rev_in_parent,
bool  loops,
size_t  length 
)

Constructor for ChainIndex loops is true if the chain loops - the start and end node are the same length is the number of snarls in the chain

◆ ChainIndex() [2/2]

vg::MinimumDistanceIndex::ChainIndex::ChainIndex ( )

Member Function Documentation

◆ chain_distance()

int64_t vg::MinimumDistanceIndex::ChainIndex::chain_distance ( pair< size_t, bool >  start,
pair< size_t, bool >  end,
int64_t  startLen,
int64_t  endLen,
bool  check_loop = false 
) const

Distance between two node sides in a chain. size_t values specify the nodes - rank of the node in the chain, bool specifies the direction the node is traversed i.e. if both bools are false, then the distance is between the left side of the start node traversing it forward to the left side of the end node traversing forward. Orientation is relative to the direction the chain is traversed in

◆ chain_length()

int64_t vg::MinimumDistanceIndex::ChainIndex::chain_length ( ) const
inline

◆ chain_to_json()

json_t * vg::MinimumDistanceIndex::ChainIndex::chain_to_json ( )

◆ load()

void vg::MinimumDistanceIndex::ChainIndex::load ( istream &  in)

◆ loop_distance()

int64_t vg::MinimumDistanceIndex::ChainIndex::loop_distance ( pair< size_t, bool >  start,
pair< size_t, bool >  end,
int64_t  startLen,
int64_t  endLen 
) const
protected

Helper function for chainDistance. Used to find the distance in a looping chain by taking the extra loop

◆ print_self()

void vg::MinimumDistanceIndex::ChainIndex::print_self ( ) const

◆ serialize()

void vg::MinimumDistanceIndex::ChainIndex::serialize ( ostream &  out) const

Serialize the chain.

Friends And Related Function Documentation

◆ MinimumDistanceIndex

friend class MinimumDistanceIndex
friend

◆ SnarlSeedClusterer

friend class SnarlSeedClusterer
friend

Member Data Documentation

◆ end_id

id_t vg::MinimumDistanceIndex::ChainIndex::end_id
protected

◆ id_in_parent

id_t vg::MinimumDistanceIndex::ChainIndex::id_in_parent
protected

◆ is_looping_chain

bool vg::MinimumDistanceIndex::ChainIndex::is_looping_chain
protected

◆ loop_fd

int_vector vg::MinimumDistanceIndex::ChainIndex::loop_fd
protected

For each boundary node of snarls in the chain, the distance from the start of the node traversing forward to the end of the same node traversing backwards -directions relative to the direction the node is traversed in the chain

◆ loop_rev

int_vector vg::MinimumDistanceIndex::ChainIndex::loop_rev
protected

For each boundary node of snarls in the chain, the distance from the end of the node traversing backward to the start of the same node traversing forward

◆ max_width

int64_t vg::MinimumDistanceIndex::ChainIndex::max_width
protected

◆ parent_id

id_t vg::MinimumDistanceIndex::ChainIndex::parent_id
protected

id of parent snarl of the chain 0 if top level chain

◆ prefix_sum

int_vector vg::MinimumDistanceIndex::ChainIndex::prefix_sum
protected

Dist from start of chain to start of each boundary node of all snarls in the chain The first value should be 0 according to this scheme but it is the length of the first node in the chain. Similarly, an extra value is stored at the end of the vector that is the length of the entire chain

◆ rev_in_parent

bool vg::MinimumDistanceIndex::ChainIndex::rev_in_parent
protected

The documentation for this class was generated from the following files: