#include <genesis/tree/common_tree/newick_reader.hpp>
Inherits NewickReader, and CommonTreeNewickReaderPlugin.
Read default Newick trees, i.e., trees with names and branch lengths.
This class is a convenience wrapper that combines a NewickReader with a CommonTreeNewickReaderPlugin. It is intended to be used for standard use cases, and produces a Tree with CommonNodeData and CommonEdgeData at its nodes and edges.
It is also possible to register additional plugins on top of this class.
Behind the curtain, this class derives from both NewickReader and CommonTreeNewickReaderPlugin. This is a bit ugly, but we use it for simplicity. This allows to use an instance as if it was a reader (i.e., call from_...
functions), but also change the plugin settings in a natural way.
Definition at line 326 of file tree/common_tree/newick_reader.hpp.
Public Member Functions | |
CommonTreeNewickReader () | |
Public Member Functions inherited from NewickReader | |
NewickReader ()=default | |
NewickReader (NewickReader &&)=default | |
NewickReader (NewickReader const &)=default | |
virtual | ~NewickReader ()=default |
Tree | broker_to_tree (NewickBroker const &broker) const |
Build a Tree from a NewickBroker. More... | |
Tree | broker_to_tree_destructive (NewickBroker &broker) const |
Build a Tree from a NewickBroker. More... | |
bool | enable_tags () const |
Return whether currently Newick tags are enabled. More... | |
NewickReader & | enable_tags (bool value) |
Set whether Newick tags are enabled for reading. More... | |
NewickReader & | operator= (NewickReader &&)=default |
NewickReader & | operator= (NewickReader const &)=default |
void | parse_multiple_trees (utils::InputStream &input_stream, TreeSet &tree_set, std::string const &default_name) const |
Parse until the end of the stream and add all Trees to the TreeSet. More... | |
std::pair< std::string, Tree > | parse_named_tree (utils::InputStream &input_stream) const |
Parse one named tree, i.e., a tree as described here. More... | |
Tree | parse_single_tree (utils::InputStream &input_stream) const |
Parse a single tree. Depending on stop_after_semicolon(), stop after the semicolon or continue until the end of the input, checking if there are only comments. More... | |
Tree | read (std::shared_ptr< utils::BaseInputSource > source) const |
Read a single Tree from an input source containing a Newick tree. More... | |
void | read (std::shared_ptr< utils::BaseInputSource > source, TreeSet &target, std::string const &default_name="") const |
Add Trees to a TreeSet from an input source containing a list of Newick trees. More... | |
TreeSet | read (std::vector< std::shared_ptr< utils::BaseInputSource >> sources, std::string const &default_name="") const |
Return a TreeSet from a list of input sources containing Newick trees. More... | |
void | read (std::vector< std::shared_ptr< utils::BaseInputSource >> sources, TreeSet &target, std::string const &default_name="") const |
Fill a TreeSet from a list of input sources containing Newick trees. More... | |
bool | stop_after_semicolon () const |
Return whether currently reading stops after the semicolon that finishes a Newick tree. More... | |
NewickReader & | stop_after_semicolon (bool value) |
Set whether reading a single tree stops after the semicolon that finishes a Newick tree. More... | |
Public Member Functions inherited from CommonTreeNewickReaderPlugin | |
CommonTreeNewickReaderPlugin ()=default | |
CommonTreeNewickReaderPlugin (CommonTreeNewickReaderPlugin &&)=default | |
CommonTreeNewickReaderPlugin (CommonTreeNewickReaderPlugin const &)=default | |
virtual | ~CommonTreeNewickReaderPlugin ()=default |
double | default_branch_length () const |
Get the default branch length used when there is none given for an edge. More... | |
self_type & | default_branch_length (double value) |
Set the default branch length used when there is none given for an edge. More... | |
std::string const & | default_inner_name () const |
Get the default named used when there is none given for an inner node. More... | |
self_type & | default_inner_name (std::string const &value) |
Set the default named used when there is none given for an inner node. More... | |
std::string const & | default_leaf_name () const |
Get the default named used when there is none given for a leaf node. More... | |
self_type & | default_leaf_name (std::string const &value) |
Set the default named used when there is none given for a leaf node. More... | |
std::string const & | default_root_name () const |
Get the default named used when there is none given for the root node. More... | |
self_type & | default_root_name (std::string const &value) |
Set the default named used when there is none given for the root node. More... | |
void | element_to_edge (NewickBrokerElement const &element, TreeEdge &edge) const |
void | element_to_node (NewickBrokerElement const &element, TreeNode &node) const |
CommonTreeNewickReaderPlugin & | operator= (CommonTreeNewickReaderPlugin &&)=default |
CommonTreeNewickReaderPlugin & | operator= (CommonTreeNewickReaderPlugin const &)=default |
void | register_with (NewickReader &reader) const |
bool | replace_name_underscores () const |
Return whether currently this plugin replaces underscores with spaces. More... | |
self_type & | replace_name_underscores (bool value) |
Set whether to replace all underscores ('_') in names with spaces (' '). More... | |
self_type & | set_default_names (std::string const &value) |
Shorthand to set the default names for leaf, inner and root node at once, to one value. More... | |
bool | use_default_names () const |
Return whether currently default names are activated in this plugin. More... | |
self_type & | use_default_names (bool value) |
Set whether to replace unnamed nodes with a default name. More... | |
Additional Inherited Members | |
Public Types inherited from NewickReader | |
using | create_edge_data_function = std::function< void(TreeEdge &edge) > |
Function type used to create the data pointer for each TreeEdge. More... | |
using | create_node_data_function = std::function< void(TreeNode &node) > |
Function type used to create the data pointer for each TreeNode. More... | |
using | element_to_edge_function = std::function< void(NewickBrokerElement const &element, TreeEdge &edge) > |
Function type that translates from a NewickBrokerElement to a TreeEdge. More... | |
using | element_to_node_function = std::function< void(NewickBrokerElement const &element, TreeNode &node) > |
Function type that translates from a NewickBrokerElement to a TreeNode. More... | |
using | finish_reading_function = std::function< void(Tree &tree) > |
Function type that allows to do some finalizing work with the Tree after the actual tree reading finished. More... | |
using | prepare_reading_function = std::function< void(NewickBroker const &broker, Tree &tree) > |
Function type that allows to do some preparatory work with the NewickBroker and Tree before the actual tree reading begins. More... | |
Public Types inherited from CommonTreeNewickReaderPlugin | |
using | self_type = CommonTreeNewickReaderPlugin |
Public Attributes inherited from NewickReader | |
create_edge_data_function | create_edge_data_plugin |
create_node_data_function | create_node_data_plugin |
std::vector< element_to_edge_function > | element_to_edge_plugins |
std::vector< element_to_node_function > | element_to_node_plugins |
std::vector< finish_reading_function > | finish_reading_plugins |
std::vector< prepare_reading_function > | prepare_reading_plugins |
|
inline |
Definition at line 336 of file tree/common_tree/newick_reader.hpp.