#include <genesis/population/format/simple_pileup_input_stream.hpp>
Iterate an input source and parse it as a (m)pileup file.
This simple wrapper allows easy iteration through the records/lines of an (m)pileup file line by line. See SimplePileupReader for details. The class is templated, so that it can be either used to produce SimplePileupReader::Record or Variant objects per line of the input mpileup file.
Basic usage:
auto it = SimplePileupInputStream<>( utils::from_file( infile )); while( it ) { // work with it.record() or it->... ++it; }
or
for( auto it = SimplePileupInputStream<Variant>( utils::from_file( infile )); it; ++it ) { // work with it }
both allow to iterate each line in the file. The first instanciates an iterator over SimplePileupReader::Record, while the second over Variant.
Additionally, filtering of which samples (by index) to include can be provided, either as a vector of indices to consider, or as a bool vector that is true
at the indices to consider. The latter filter does not need to contain the same number of values as the record has samples. If it is shorter, all samples after its last index will be ignored. If it is longer, the remaining entries are not used as a filter.
Definition at line 79 of file simple_pileup_input_stream.hpp.
Public Member Functions | |
SimplePileupInputStream ()=default | |
Create a default instance, with no input. More... | |
SimplePileupInputStream (self_type &&)=default | |
SimplePileupInputStream (self_type const &)=default | |
SimplePileupInputStream (std::shared_ptr< utils::BaseInputSource > source, SimplePileupReader const &reader={}) | |
Create an instance that reads from an input source, and optionally take a SimplePileupReader with settings to be used. More... | |
SimplePileupInputStream (std::shared_ptr< utils::BaseInputSource > source, std::vector< bool > const &sample_filter, SimplePileupReader const &reader={}) | |
Create an instance that reads from an input source, using only the samples at the indices where the sample_filter is true, and optionally take a SimplePileupReader with settings to be used. More... | |
~SimplePileupInputStream ()=default | |
bool | good () const |
void | increment () |
operator bool () const | |
Return true iff dereferencing is valid, i.e., iff there is a line/record available. More... | |
bool | operator!= (self_type const &it) const |
T & | operator* () |
T const & | operator* () const |
self_type & | operator++ () |
self_type & | operator++ (int) |
T * | operator-> () |
T const * | operator-> () const |
self_type & | operator= (self_type &&)=default |
self_type & | operator= (self_type const &)=default |
bool | operator== (self_type const &it) const |
SimplePileupReader const & | reader () const |
T & | record () |
T const & | record () const |
Public Types | |
using | const_reference = value_type const & |
using | difference_type = std::ptrdiff_t |
using | iterator_category = std::input_iterator_tag |
using | pointer = value_type * |
using | reference = value_type & |
using | self_type = SimplePileupInputStream |
using | value_type = T |
|
default |
Create a default instance, with no input.
|
inlineexplicit |
Create an instance that reads from an input source, and optionally take a SimplePileupReader with settings to be used.
Definition at line 108 of file simple_pileup_input_stream.hpp.
|
inline |
Create an instance that reads from an input source, using only the samples at the indices where the sample_filter
is true, and optionally take a SimplePileupReader with settings to be used.
Definition at line 145 of file simple_pileup_input_stream.hpp.
|
default |
|
default |
|
default |
|
inline |
Definition at line 179 of file simple_pileup_input_stream.hpp.
|
inline |
Definition at line 239 of file simple_pileup_input_stream.hpp.
|
inlineexplicit |
Return true iff dereferencing is valid, i.e., iff there is a line/record available.
Definition at line 174 of file simple_pileup_input_stream.hpp.
|
inline |
Definition at line 249 of file simple_pileup_input_stream.hpp.
|
inline |
Definition at line 218 of file simple_pileup_input_stream.hpp.
|
inline |
Definition at line 213 of file simple_pileup_input_stream.hpp.
|
inline |
Definition at line 227 of file simple_pileup_input_stream.hpp.
|
inline |
Definition at line 233 of file simple_pileup_input_stream.hpp.
|
inline |
Definition at line 208 of file simple_pileup_input_stream.hpp.
|
inline |
Definition at line 203 of file simple_pileup_input_stream.hpp.
|
inline |
Definition at line 244 of file simple_pileup_input_stream.hpp.
|
inline |
Definition at line 188 of file simple_pileup_input_stream.hpp.
|
inline |
Definition at line 198 of file simple_pileup_input_stream.hpp.
|
inline |
Definition at line 193 of file simple_pileup_input_stream.hpp.
using const_reference = value_type const& |
Definition at line 91 of file simple_pileup_input_stream.hpp.
using difference_type = std::ptrdiff_t |
Definition at line 92 of file simple_pileup_input_stream.hpp.
using iterator_category = std::input_iterator_tag |
Definition at line 93 of file simple_pileup_input_stream.hpp.
using pointer = value_type* |
Definition at line 89 of file simple_pileup_input_stream.hpp.
using reference = value_type& |
Definition at line 90 of file simple_pileup_input_stream.hpp.
using self_type = SimplePileupInputStream |
Definition at line 87 of file simple_pileup_input_stream.hpp.
using value_type = T |
Definition at line 88 of file simple_pileup_input_stream.hpp.