#[repr(C)]pub struct tsk_tree_t {Show 26 fields
pub tree_sequence: *const tsk_treeseq_t,
pub left_root: tsk_id_t,
pub parent: *mut tsk_id_t,
pub left_child: *mut tsk_id_t,
pub right_child: *mut tsk_id_t,
pub left_sib: *mut tsk_id_t,
pub right_sib: *mut tsk_id_t,
pub num_nodes: tsk_size_t,
pub options: tsk_flags_t,
pub root_threshold: tsk_size_t,
pub samples: *const tsk_id_t,
pub left: f64,
pub right: f64,
pub index: tsk_id_t,
pub num_samples: *mut tsk_id_t,
pub num_tracked_samples: *mut tsk_id_t,
pub marked: *mut u8,
pub mark: u8,
pub left_sample: *mut tsk_id_t,
pub right_sample: *mut tsk_id_t,
pub next_sample: *mut tsk_id_t,
pub sites: *const tsk_site_t,
pub sites_length: tsk_size_t,
pub direction: c_int,
pub left_index: tsk_id_t,
pub right_index: tsk_id_t,
}Expand description
@brief A single tree in a tree sequence.
@rst
A tsk_tree_t object has two basic functions:
- Represent the state of a single tree in a tree sequence;
- Provide methods to transform this state into different trees in the sequence.
The state of a single tree in the tree sequence is represented using the
quintuply linked encoding: please see the
:ref:data model <sec_data_model_tree_structure> section for details on
how this works. The left-to-right ordering of nodes in this encoding
is arbitrary, and may change depending on the order in which trees are
accessed within the sequence. Please see the
:ref:sec_c_api_examples_tree_traversals examples for recommended
usage.
On initialisation, a tree is in a “null” state: each sample is a
root and there are no edges. We must call one of the ‘seeking’ methods
to make the state of the tree object correspond to a particular tree
in the sequence. Please see the
:ref:sec_c_api_examples_tree_iteration examples for recommended
usage.
@endrst
Fields§
§tree_sequence: *const tsk_treeseq_t@brief The parent tree sequence.
left_root: tsk_id_t@brief The leftmost root in the tree. Roots are siblings, and other roots can be found using right_sib.
parent: *mut tsk_id_t@brief The parent of node u is parent[u]. Equal to TSK_NULL if node u is a root or is not a node in the current tree.
left_child: *mut tsk_id_t@brief The leftmost child of node u is left_child[u]. Equal to TSK_NULL if node u is a leaf or is not a node in the current tree.
right_child: *mut tsk_id_t@brief The rightmost child of node u is right_child[u]. Equal to TSK_NULL if node u is a leaf or is not a node in the current tree.
left_sib: *mut tsk_id_t@brief The sibling to the left of node u is left_sib[u]. Equal to TSK_NULL if node u has no siblings to its left.
right_sib: *mut tsk_id_t@brief The sibling to the right of node u is right_sib[u]. Equal to TSK_NULL if node u has no siblings to its right.
num_nodes: tsk_size_t§options: tsk_flags_t§root_threshold: tsk_size_t§samples: *const tsk_id_t§left: f64§right: f64§index: tsk_id_t§num_samples: *mut tsk_id_t§num_tracked_samples: *mut tsk_id_t§marked: *mut u8§mark: u8§left_sample: *mut tsk_id_t§right_sample: *mut tsk_id_t§next_sample: *mut tsk_id_t§sites: *const tsk_site_t§sites_length: tsk_size_t§direction: c_int§left_index: tsk_id_t§right_index: tsk_id_tTrait Implementations§
Source§impl Clone for tsk_tree_t
impl Clone for tsk_tree_t
Source§fn clone(&self) -> tsk_tree_t
fn clone(&self) -> tsk_tree_t
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more