bpp-seq3  3.0.0
bpp::NexusIOSequence Class Reference

The Nexus format reader for sequences. More...

#include <Bpp/Seq/Io/NexusIoSequence.h>

+ Inheritance diagram for bpp::NexusIOSequence:
+ Collaboration diagram for bpp::NexusIOSequence:

Public Member Functions

 NexusIOSequence (unsigned int charsByLine=100, bool checkSequenceNames=true)
 Build a new Nexus file reader. More...
 
virtual ~NexusIOSequence ()
 
bool checkNames () const
 
void checkNames (bool yn)
 Tell whether the sequence names should be checked when reading from files. More...
 
const std::string getDataType () const
 
The AbstractIAlignment interface.
void appendAlignmentFromStream (std::istream &input, SequenceContainerInterface &sc) const override
 Append sequences to a container from a stream. More...
 
The IOSequence interface.
const std::string getFormatName () const override
 
const std::string getFormatDescription () const override
 
The ISequence interface.

As a SiteContainer is a subclass of SequenceContainer, we hereby implement the ISequence interface by downcasting the interface.

void readSequences (std::istream &input, SequenceContainerInterface &sc) const override
 Create a new container from a stream. More...
 
void readSequences (const std::string &path, SequenceContainerInterface &sc) const override
 Create a new container from a file. More...
 
std::unique_ptr< SequenceContainerInterfacereadSequences (std::istream &input, std::shared_ptr< const Alphabet > alpha) const override
 Create a new container from a stream. More...
 
std::unique_ptr< SequenceContainerInterfacereadSequences (const std::string &path, std::shared_ptr< const Alphabet > alpha) const override
 Create a new container from a file. More...
 
IAlignment methods:
virtual void readAlignment (std::istream &input, SequenceContainerInterface &sc) const override
 Add sequences to a container from a stream. More...
 
virtual void readAlignment (const std::string &path, SequenceContainerInterface &sc) const override
 Add sequences to a container from a file. More...
 
std::unique_ptr< SiteContainerInterfacereadAlignment (const std::string &path, std::shared_ptr< const Alphabet > alpha) const override
 Create a new container from a file. More...
 
std::unique_ptr< SiteContainerInterfacereadAlignment (std::istream &input, std::shared_ptr< const Alphabet > alpha) const override
 Create a new container from a stream. More...
 

Protected Member Functions

virtual void appendAlignmentFromFile (const std::string &path, SequenceContainerInterface &sc) const
 Append sequences to a container from a file. More...
 
virtual std::unique_ptr< SiteContainerInterfacereadAlignmentFromStream (std::istream &input, std::shared_ptr< const Alphabet > alpha) const
 Read sequences from a stream. More...
 
virtual std::unique_ptr< SiteContainerInterfacereadAlignmentFromFile (const std::string &path, std::shared_ptr< const Alphabet > alpha) const
 Read sequences from a file. More...
 

Protected Attributes

unsigned int charsByLine_
 The maximum number of chars to be written on a line. More...
 
bool checkNames_
 

Private Member Functions

const std::vector< std::string > splitNameAndSequence_ (const std::string &s) const
 

Detailed Description

The Nexus format reader for sequences.

An AlignedSequenceContainer is used instead of a VectorSequenceContainer.

This reader is not supposed to be a full parser of the Nexus files, but only extract the sequence data. Only a basic subset of the options are and will be supported.

This format is described in the following paper: Maddison D, Swofford D, and Maddison W (1997), Syst Biol 46(4):590-621

Author
Julien Dutheil

Definition at line 34 of file NexusIoSequence.h.

Constructor & Destructor Documentation

◆ NexusIOSequence()

bpp::NexusIOSequence::NexusIOSequence ( unsigned int  charsByLine = 100,
bool  checkSequenceNames = true 
)
inline

Build a new Nexus file reader.

Parameters
charsByLineThe number of base to display in a row (ignored for now, no writing support).
checkSequenceNamesTell if the names in the file should be checked for unicity (slower, in o(n*n) where n is the number of sequences).

Definition at line 53 of file NexusIoSequence.h.

◆ ~NexusIOSequence()

virtual bpp::NexusIOSequence::~NexusIOSequence ( )
inlinevirtual

Definition at line 56 of file NexusIoSequence.h.

Member Function Documentation

◆ appendAlignmentFromFile()

virtual void bpp::AbstractIAlignment::appendAlignmentFromFile ( const std::string &  path,
SequenceContainerInterface sc 
) const
inlineprotectedvirtualinherited

Append sequences to a container from a file.

Parameters
pathThe path to the file to read.
scThe sequence container to update.
Exceptions
ExceptionIf the file is not in the specified format.

Definition at line 93 of file AbstractIAlignment.h.

References bpp::AbstractIAlignment::appendAlignmentFromStream().

Referenced by bpp::AbstractIAlignment::readAlignment(), bpp::AbstractIAlignment::readAlignmentFromFile(), and bpp::AbstractIAlignment2::readSequences().

◆ appendAlignmentFromStream()

void NexusIOSequence::appendAlignmentFromStream ( std::istream &  input,
SequenceContainerInterface sc 
) const
overridevirtual

◆ checkNames() [1/2]

bool bpp::NexusIOSequence::checkNames ( ) const
inline
Returns
true if the names are to be checked when reading sequences from files.

Definition at line 80 of file NexusIoSequence.h.

References checkNames_.

◆ checkNames() [2/2]

void bpp::NexusIOSequence::checkNames ( bool  yn)
inline

Tell whether the sequence names should be checked when reading from files.

Parameters
ynwhether the sequence names should be checked when reading from files.

Definition at line 87 of file NexusIoSequence.h.

References checkNames_.

◆ getDataType()

const std::string bpp::IOSequence::getDataType ( ) const
inlinevirtualinherited

Implements bpp::IOFormat.

Reimplemented in bpp::Pasta.

Definition at line 29 of file IoSequence.h.

◆ getFormatDescription()

const std::string NexusIOSequence::getFormatDescription ( ) const
overridevirtual

Implements bpp::IOFormat.

Definition at line 180 of file NexusIoSequence.cpp.

◆ getFormatName()

const std::string NexusIOSequence::getFormatName ( ) const
overridevirtual

Implements bpp::IOFormat.

Definition at line 176 of file NexusIoSequence.cpp.

◆ readAlignment() [1/4]

virtual void bpp::AbstractIAlignment::readAlignment ( const std::string &  path,
SequenceContainerInterface sc 
) const
inlineoverridevirtualinherited

Add sequences to a container from a file.

Parameters
pathThe path to the file to read.
scThe sequence container to update.
Exceptions
ExceptionIf the file is not in the specified format.

Implements bpp::IAlignment.

Definition at line 57 of file AbstractIAlignment.h.

References bpp::AbstractIAlignment::appendAlignmentFromFile().

◆ readAlignment() [2/4]

std::unique_ptr<SiteContainerInterface> bpp::AbstractIAlignment::readAlignment ( const std::string &  path,
std::shared_ptr< const Alphabet alpha 
) const
inlineoverridevirtualinherited

Create a new container from a file.

Parameters
pathThe path to the file to read.
alphaThe alphabet to be associated to the container.
Returns
A new SiteContainer object.
Exceptions
ExceptionIf the file is not in the specified format.

Implements bpp::IAlignment.

Definition at line 62 of file AbstractIAlignment.h.

References bpp::AbstractIAlignment::readAlignmentFromFile().

◆ readAlignment() [3/4]

virtual void bpp::AbstractIAlignment::readAlignment ( std::istream &  input,
SequenceContainerInterface sc 
) const
inlineoverridevirtualinherited

Add sequences to a container from a stream.

Parameters
inputThe input stream to read.
scThe sequence container to update.
Exceptions
ExceptionIf the file is not in the specified format.

Implements bpp::IAlignment.

Definition at line 45 of file AbstractIAlignment.h.

References bpp::AbstractIAlignment::appendAlignmentFromStream().

Referenced by bpp::AbstractIAlignment2::readSequences(), bpp::Clustal::readSequences(), bpp::DCSE::readSequences(), and bpp::Phylip::readSequences().

◆ readAlignment() [4/4]

std::unique_ptr<SiteContainerInterface> bpp::AbstractIAlignment::readAlignment ( std::istream &  input,
std::shared_ptr< const Alphabet alpha 
) const
inlineoverridevirtualinherited

Create a new container from a stream.

Parameters
inputThe input stream to read.
alphaThe alphabet to be associated to the container.
Returns
A new SiteContainer object.
Exceptions
ExceptionIf the file is not in the specified format.

Implements bpp::IAlignment.

Definition at line 67 of file AbstractIAlignment.h.

References bpp::AbstractIAlignment::readAlignmentFromStream().

◆ readAlignmentFromFile()

virtual std::unique_ptr<SiteContainerInterface> bpp::AbstractIAlignment::readAlignmentFromFile ( const std::string &  path,
std::shared_ptr< const Alphabet alpha 
) const
inlineprotectedvirtualinherited

Read sequences from a file.

Parameters
pathThe path to the file to read.
alphaThe alphabet to use.
Returns
A sequence container.
Exceptions
ExceptionIf the file is not in the specified format.

Definition at line 125 of file AbstractIAlignment.h.

References bpp::AbstractIAlignment::appendAlignmentFromFile().

Referenced by bpp::AbstractIAlignment::readAlignment().

◆ readAlignmentFromStream()

virtual std::unique_ptr<SiteContainerInterface> bpp::AbstractIAlignment::readAlignmentFromStream ( std::istream &  input,
std::shared_ptr< const Alphabet alpha 
) const
inlineprotectedvirtualinherited

Read sequences from a stream.

Parameters
inputThe input stream to read.
alphaThe alphabet to use.
Returns
A sequence container.
Exceptions
ExceptionIf the file is not in the specified format.

Definition at line 110 of file AbstractIAlignment.h.

References bpp::AbstractIAlignment::appendAlignmentFromStream().

Referenced by bpp::AbstractIAlignment::readAlignment().

◆ readSequences() [1/4]

void bpp::AbstractIAlignment2::readSequences ( const std::string &  path,
SequenceContainerInterface container 
) const
inlineoverridevirtualinherited

Create a new container from a file.

Parameters
pathThe path to the file to read.
containerThe container where to add data.
Exceptions
ExceptionIf the file is not in the specified format.

Implements bpp::ISequence.

Definition at line 162 of file AbstractIAlignment.h.

References bpp::AbstractIAlignment::appendAlignmentFromFile().

◆ readSequences() [2/4]

std::unique_ptr<SequenceContainerInterface> bpp::AbstractIAlignment2::readSequences ( const std::string &  path,
std::shared_ptr< const Alphabet alpha 
) const
inlineoverridevirtualinherited

Create a new container from a file.

Parameters
pathThe path to the file to read.
alphaThe alphabet to be associated to the container.
Returns
A new SequenceContainer object.
Exceptions
ExceptionIf the file is not in the specified format.

Implements bpp::ISequence.

Reimplemented in bpp::Phylip, bpp::DCSE, and bpp::Clustal.

Definition at line 174 of file AbstractIAlignment.h.

References bpp::AbstractIAlignment::readAlignment().

◆ readSequences() [3/4]

void bpp::AbstractIAlignment2::readSequences ( std::istream &  input,
SequenceContainerInterface container 
) const
inlineoverridevirtualinherited

Create a new container from a stream.

Parameters
inputThe input stream to read.
containerThe container where to add data.
Exceptions
ExceptionIf the file is not in the specified format.

Implements bpp::ISequence.

Definition at line 157 of file AbstractIAlignment.h.

References bpp::AbstractIAlignment::appendAlignmentFromStream().

◆ readSequences() [4/4]

std::unique_ptr<SequenceContainerInterface> bpp::AbstractIAlignment2::readSequences ( std::istream &  input,
std::shared_ptr< const Alphabet alpha 
) const
inlineoverridevirtualinherited

Create a new container from a stream.

Parameters
inputThe input stream to read.
alphaThe alphabet to be associated to the container.
Returns
A new SequenceContainer object.
Exceptions
ExceptionIf the file is not in the specified format.

Implements bpp::ISequence.

Reimplemented in bpp::Phylip, bpp::DCSE, and bpp::Clustal.

Definition at line 167 of file AbstractIAlignment.h.

References bpp::AbstractIAlignment::readAlignment().

◆ splitNameAndSequence_()

const std::vector< std::string > NexusIOSequence::splitNameAndSequence_ ( const std::string &  s) const
private

Member Data Documentation

◆ charsByLine_

unsigned int bpp::NexusIOSequence::charsByLine_
protected

The maximum number of chars to be written on a line.

Definition at line 42 of file NexusIoSequence.h.

◆ checkNames_

bool bpp::NexusIOSequence::checkNames_
protected

Definition at line 44 of file NexusIoSequence.h.

Referenced by checkNames().


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