bpp-seq3  3.0.0
bpp::Mase Class Reference

The mase sequence file format. More...

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

+ Inheritance diagram for bpp::Mase:
+ Collaboration diagram for bpp::Mase:

Public Member Functions

 Mase (unsigned int charsByLine=100, bool checkSequenceNames=true)
 Build a new Mase object. More...
 
virtual ~Mase ()
 
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
 
Reading method including header:
std::unique_ptr< SequenceContainerInterfacereadMeta (std::istream &input, std::shared_ptr< const Alphabet > &alpha, MaseHeader &header) const
 
std::unique_ptr< SequenceContainerInterfacereadMeta (std::string &path, std::shared_ptr< const Alphabet > &alpha, MaseHeader &header) const
 
The AbstractISequence interface.
void appendSequencesFromStream (std::istream &input, SequenceContainerInterface &sc) const override
 Append sequences to a container from a stream. More...
 
The AbstractIAlignment interface.
void appendAlignmentFromStream (std::istream &input, SequenceContainerInterface &sc) const override
 Append sequences to a container from a stream. More...
 
The OSequence interface.
void writeSequences (std::ostream &output, const SequenceContainerInterface &sc) const override
 Write a container to a stream. More...
 
void writeSequences (const std::string &path, const SequenceContainerInterface &sc, bool overwrite=true) const override
 Write a container to a file. More...
 
Writing methods including header:
void writeMeta (std::ostream &output, const SequenceContainerInterface &sc, const MaseHeader &header) const
 
void writeMeta (const std::string &path, const SequenceContainerInterface &sc, const MaseHeader &header, bool overwrite=true) const
 
The IOSequence interface.
const std::string getFormatName () const override
 
const std::string getFormatDescription () const override
 
ISequence methods:
void readSequences (std::istream &input, SequenceContainerInterface &sc) const override
 Add sequences to a container from a stream. More...
 
void readSequences (const std::string &path, SequenceContainerInterface &sc) const override
 Add sequences to a 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...
 
OAlignment methods:

As a SiteContainer is a specialization of SequenceContainer, it is assumed that a OSequence object can write aligned sequence just like a OAlignment object. Therefore it implements the OAlignment interface by down-casting the SiteContainer to a SequenceContainer.

void writeAlignment (std::ostream &output, const SiteContainerInterface &sc) const override
 Write a container to a stream. More...
 
void writeAlignment (const std::string &path, const SiteContainerInterface &sc, bool overwrite=true) const override
 Write a container to a file. More...
 

Protected Member Functions

virtual void appendSequencesFromFile (const std::string &path, SequenceContainerInterface &sc) const
 Append sequences to a container from a file. More...
 
std::unique_ptr< SequenceContainerInterfacereadSequencesFromStream (std::istream &input, std::shared_ptr< const Alphabet > &alpha) const
 Read sequences from a stream. More...
 
std::unique_ptr< SequenceContainerInterfacereadSequencesFromFile (const std::string &path, std::shared_ptr< const Alphabet > &alpha) const
 Append sequences to a container from a file. More...
 
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...
 

Private Member Functions

void readHeader_ (std::istream &input, MaseHeader &header) const
 
void writeHeader_ (std::ostream &output, const MaseHeader &header) const
 

Private Attributes

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

Detailed Description

The mase sequence file format.

In addition to traditional read and write method, this class offers overloaded method with MaseHeader objects, dedicated to header information storage. If used, then the header of the mase file will be parsed accordingly. Otherwise, the header lines will be stored as general comments.

See also
MaseTools for alternative way of parsing headers.

Definition at line 103 of file Mase.h.

Constructor & Destructor Documentation

◆ Mase()

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

Build a new Mase object.

Parameters
charsByLineNumber of character per line when writing files.
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 122 of file Mase.h.

◆ ~Mase()

virtual bpp::Mase::~Mase ( )
inlinevirtual

Definition at line 125 of file Mase.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 bpp::Mase::appendAlignmentFromStream ( std::istream &  input,
SequenceContainerInterface sc 
) const
inlineoverridevirtual

Append sequences to a container from a stream.

This is the unique method to implement!

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

Implements bpp::AbstractIAlignment.

Definition at line 161 of file Mase.h.

References appendSequencesFromStream().

◆ appendSequencesFromFile()

virtual void bpp::AbstractISequence::appendSequencesFromFile ( 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 92 of file AbstractISequence.h.

References bpp::AbstractISequence::appendSequencesFromStream().

Referenced by bpp::AbstractISequence::readSequences(), and bpp::AbstractISequence::readSequencesFromFile().

◆ appendSequencesFromStream()

void Mase::appendSequencesFromStream ( std::istream &  input,
SequenceContainerInterface sc 
) const
overridevirtual

Append sequences to a container from a stream.

This is the unique method to implement!

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

Implements bpp::AbstractISequence.

Definition at line 13 of file Mase.cpp.

References bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::addSequence(), bpp::TemplateSequenceDataInterface< HashType >::getAlphabet(), bpp::Commentable::getComments(), and bpp::Commentable::setComments().

Referenced by appendAlignmentFromStream().

◆ checkNames() [1/2]

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

Definition at line 217 of file Mase.h.

References checkNames_.

◆ checkNames() [2/2]

void bpp::Mase::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 224 of file Mase.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 bpp::Mase::getFormatDescription ( ) const
inlineoverridevirtual

Implements bpp::IOFormat.

Definition at line 208 of file Mase.h.

◆ getFormatName()

const std::string bpp::Mase::getFormatName ( ) const
inlineoverridevirtual

Implements bpp::IOFormat.

Definition at line 206 of file Mase.h.

◆ 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().

◆ readHeader_()

◆ readMeta() [1/2]

std::unique_ptr<SequenceContainerInterface> bpp::Mase::readMeta ( std::istream &  input,
std::shared_ptr< const Alphabet > &  alpha,
MaseHeader header 
) const
inline

Definition at line 133 of file Mase.h.

References readHeader_(), and bpp::AbstractISequence::readSequences().

Referenced by readMeta().

◆ readMeta() [2/2]

std::unique_ptr<SequenceContainerInterface> bpp::Mase::readMeta ( std::string &  path,
std::shared_ptr< const Alphabet > &  alpha,
MaseHeader header 
) const
inline

Definition at line 139 of file Mase.h.

References readMeta().

◆ readSequences() [1/4]

void bpp::AbstractISequence::readSequences ( 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::ISequence.

Definition at line 57 of file AbstractISequence.h.

References bpp::AbstractISequence::appendSequencesFromFile().

◆ readSequences() [2/4]

std::unique_ptr<SequenceContainerInterface> bpp::AbstractISequence::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.

Definition at line 67 of file AbstractISequence.h.

References bpp::AbstractISequence::readSequencesFromFile().

◆ readSequences() [3/4]

void bpp::AbstractISequence::readSequences ( 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::ISequence.

Definition at line 45 of file AbstractISequence.h.

References bpp::AbstractISequence::appendSequencesFromStream().

Referenced by readMeta().

◆ readSequences() [4/4]

std::unique_ptr<SequenceContainerInterface> bpp::AbstractISequence::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.

Definition at line 62 of file AbstractISequence.h.

References bpp::AbstractISequence::readSequencesFromStream().

◆ readSequencesFromFile()

std::unique_ptr<SequenceContainerInterface> bpp::AbstractISequence::readSequencesFromFile ( const std::string &  path,
std::shared_ptr< const Alphabet > &  alpha 
) const
inlineprotectedinherited

Append sequences to a container from a file.

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

Definition at line 123 of file AbstractISequence.h.

References bpp::AbstractISequence::appendSequencesFromFile().

Referenced by bpp::AbstractISequence::readSequences().

◆ readSequencesFromStream()

std::unique_ptr<SequenceContainerInterface> bpp::AbstractISequence::readSequencesFromStream ( std::istream &  input,
std::shared_ptr< const Alphabet > &  alpha 
) const
inlineprotectedinherited

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 109 of file AbstractISequence.h.

References bpp::AbstractISequence::appendSequencesFromStream().

Referenced by bpp::AbstractISequence::readSequences().

◆ writeAlignment() [1/2]

void bpp::AbstractOSequence2::writeAlignment ( const std::string &  path,
const SiteContainerInterface sc,
bool  overwrite = true 
) const
inlineoverridevirtualinherited

Write a container to a file.

Parameters
pathThe path to the file to write.
scThe container to write.
overwriteIf true the sequences are written at the beginning of the file instead of being appended. Any previous content will be lost.
Exceptions
ExceptionIf the file is not in the specified format.

Implements bpp::OAlignment.

Definition at line 78 of file AbstractOSequence.h.

References bpp::AbstractOSequence::writeSequences().

◆ writeAlignment() [2/2]

void bpp::AbstractOSequence2::writeAlignment ( std::ostream &  output,
const SiteContainerInterface sc 
) const
inlineoverridevirtualinherited

Write a container to a stream.

Parameters
outputThe output stream where to write.
scThe container to write.
Exceptions
ExceptionIf the file is not in the specified format.

Implements bpp::OAlignment.

Definition at line 73 of file AbstractOSequence.h.

References bpp::AbstractOSequence::writeSequences().

◆ writeHeader_()

◆ writeMeta() [1/2]

void bpp::Mase::writeMeta ( const std::string &  path,
const SequenceContainerInterface sc,
const MaseHeader header,
bool  overwrite = true 
) const
inline

Definition at line 191 of file Mase.h.

References writeHeader_(), and writeSequences().

◆ writeMeta() [2/2]

void bpp::Mase::writeMeta ( std::ostream &  output,
const SequenceContainerInterface sc,
const MaseHeader header 
) const
inline

Definition at line 186 of file Mase.h.

References writeHeader_(), and writeSequences().

◆ writeSequences() [1/2]

void bpp::Mase::writeSequences ( const std::string &  path,
const SequenceContainerInterface sc,
bool  overwrite = true 
) const
inlineoverridevirtual

Write a container to a file.

Parameters
pathThe path to the file to write.
scThe container to write.
overwriteIf true the sequences are written at the beginning of the file instead of being appended. Any previous content will be lost.
Exceptions
ExceptionIf the file is not in the specified format.

Reimplemented from bpp::AbstractOSequence.

Definition at line 175 of file Mase.h.

References bpp::AbstractOSequence::writeSequences().

◆ writeSequences() [2/2]

void Mase::writeSequences ( std::ostream &  output,
const SequenceContainerInterface sc 
) const
overridevirtual

Write a container to a stream.

Parameters
outputThe output stream where to write.
scThe container to write.
Exceptions
ExceptionIf the file is not in the specified format.

Implements bpp::AbstractOSequence.

Definition at line 93 of file Mase.cpp.

References bpp::Commentable::getComments(), bpp::TemplateSequenceDataInterface< HashType >::getSequenceKeys(), and bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::sequence().

Referenced by writeMeta().

Member Data Documentation

◆ charsByLine_

unsigned int bpp::Mase::charsByLine_
private

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

Definition at line 112 of file Mase.h.

◆ checkNames_

bool bpp::Mase::checkNames_
private

Definition at line 113 of file Mase.h.

Referenced by checkNames().


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