bpp-seq3  3.0.0
bpp::TemplateSequenceContainerInterface< SequenceType, HashType > Class Template Referenceabstract

The SequenceContainer interface. More...

#include <Bpp/Seq/Container/SequenceContainer.h>

+ Inheritance diagram for bpp::TemplateSequenceContainerInterface< SequenceType, HashType >:
+ Collaboration diagram for bpp::TemplateSequenceContainerInterface< SequenceType, HashType >:

Public Member Functions

 TemplateSequenceContainerInterface ()
 
virtual ~TemplateSequenceContainerInterface ()
 
virtual TemplateSequenceContainerInterface< SequenceType, HashType > * createEmptyContainer () const override=0
 Return a copy of this container, but with no data inside. More...
 
TemplateSequenceDataInterface< std::string > * clone () const override=0
 
virtual const Alphabetalphabet () const=0
 Get the container's alphabet. More...
 
virtual std::shared_ptr< const AlphabetgetAlphabet () const=0
 Get a pointer toward the container's alphabet. More...
 
virtual size_t getNumberOfSequences () const=0
 Get the number of sequences in the container. More...
 
virtual std::vector< std::string > getSequenceKeys () const=0
 
virtual void setSequenceKeys (const std::vector< std::string > &sequenceKeys)=0
 Reset all sequence keys. More...
 
virtual double getStateValueAt (size_t sitePosition, const std::string &sequenceKey, int state) const=0
 Get the value of a state at a given position. More...
 
virtual double getStateValueAt (size_t sitePosition, size_t sequencePosition, int state) const=0
 Get value of a state at a given position. More...
 
virtual double operator() (size_t sitePosition, const std::string &sequenceKey, int state) const=0
 Get the value of a state at a given position. More...
 
virtual double operator() (size_t sitePosition, size_t sequencePosition, int state) const=0
 Get the value of a state at a given position. More...
 
virtual void clear ()=0
 Delete all data in the container. More...
 
virtual bool hasSequence (const std::string &sequenceKey) const=0
 Check if a certain key is associated to a sequence in the container. More...
 
virtual const CommentsgetComments () const =0
 Get the comments. More...
 
virtual void setComments (const Comments &comments)=0
 Set the comments. More...
 
virtual void clearComments ()=0
 
Access by key
virtual const SequenceType & sequence (const HashType &sequenceKey) const override=0
 Retrieve a sequence object from the container. More...
 
virtual void setSequence (const HashType &sequenceKey, std::unique_ptr< SequenceType > &sequencePtr)=0
 Replace a sequence in the container. More...
 
virtual void addSequence (const HashType &sequenceKey, std::unique_ptr< SequenceType > &sequencePtr)=0
 Add a sequence to the container. More...
 
virtual std::unique_ptr< SequenceType > removeSequence (const HashType &sequenceKey)=0
 Remove a sequence from the container. More...
 
virtual const SequenceType::ElementType & valueAt (const HashType &sequenceKey, size_t sitePosition) const =0
 Get the content of the dataset at a specific position (sequence key, site position). More...
 
virtual SequenceType::ElementType & valueAt (const HashType &sequenceKey, size_t sitePosition)=0
 Get the content of the dataset at a specific position (sequence key, site position). More...
 
Access by position
virtual const SequenceType & sequence (size_t sequencePosition) const override=0
 Retrieve a sequence object from the container. More...
 
virtual void setSequence (size_t sequencePosition, std::unique_ptr< SequenceType > &sequencePtr)=0
 Replace a sequence in the container. More...
 
virtual void setSequence (size_t sequencePosition, std::unique_ptr< SequenceType > &sequencePtr, const HashType &sequenceKey)=0
 Replace a sequence in the container. More...
 
virtual void insertSequence (size_t sequencePosition, std::unique_ptr< SequenceType > &sequencePtr, const HashType &sequenceKey)=0
 Insert a sequence in the container. More...
 
virtual std::unique_ptr< SequenceType > removeSequence (size_t sequencePosition)=0
 Remove a sequence from the container. More...
 
virtual const SequenceType::ElementType & valueAt (size_t sequencePosition, size_t sitePosition) const =0
 Get the content of the dataset at a specific position (sequence position, site position). More...
 
virtual SequenceType::ElementType & valueAt (size_t sequencePosition, size_t sitePosition)=0
 Get the content of the dataset at a specific position (sequence position, site position). More...
 
Access by key
virtual const CoreSequenceInterfacesequence (const std::string &sequenceKey) const=0
 Retrieve a sequence object from the container. More...
 
virtual void deleteSequence (const std::string &sequenceKey)=0
 Remove and delete a sequence from the container. More...
 
Access by position
virtual void deleteSequence (size_t sequencePosition)=0
 Remove and delete a sequence from the container. More...
 
Index management

Position to key and key to position.

virtual const std::string & sequenceKey (size_t sequencePosition) const=0
 Get the key associated to a given sequence. More...
 
virtual size_t getSequencePosition (const std::string &sequenceKey) const=0
 Get the position of a sequence with a given key in the container. More...
 
Access sequence names
virtual std::vector< std::string > getSequenceNames () const=0
 
virtual void setSequenceNames (const std::vector< std::string > &names, bool updateKeys)=0
 Batch-set all sequence names. More...
 
virtual std::vector< CommentsgetSequenceComments () const=0
 

Detailed Description

template<class SequenceType, class HashType = std::string>
class bpp::TemplateSequenceContainerInterface< SequenceType, HashType >

The SequenceContainer interface.

This is the base interface of the container hierarchy. Sequence objects are stored internally and indexed. The interface implements two access methods:

  • Per key,
  • Per position in the container.
See also
Sequence

Definition at line 30 of file SequenceContainer.h.

Constructor & Destructor Documentation

◆ TemplateSequenceContainerInterface()

template<class SequenceType , class HashType = std::string>
bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::TemplateSequenceContainerInterface ( )
inline

Definition at line 34 of file SequenceContainer.h.

◆ ~TemplateSequenceContainerInterface()

template<class SequenceType , class HashType = std::string>
virtual bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::~TemplateSequenceContainerInterface ( )
inlinevirtual

Definition at line 35 of file SequenceContainer.h.

Member Function Documentation

◆ addSequence()

template<class SequenceType , class HashType = std::string>
virtual void bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::addSequence ( const HashType &  sequenceKey,
std::unique_ptr< SequenceType > &  sequencePtr 
)
pure virtual

◆ alphabet()

virtual const Alphabet& bpp::TemplateSequenceDataInterface< std::string >::alphabet ( ) const
pure virtualinherited

◆ clear()

◆ clearComments()

virtual void bpp::Commentable::clearComments ( )
pure virtualinherited

Implemented in bpp::SimpleCommentable.

◆ clone()

◆ createEmptyContainer()

template<class SequenceType , class HashType = std::string>
virtual TemplateSequenceContainerInterface<SequenceType, HashType>* bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::createEmptyContainer ( ) const
overridepure virtual

◆ deleteSequence() [1/2]

virtual void bpp::TemplateSequenceDataInterface< std::string >::deleteSequence ( const HashType &  sequenceKey)
pure virtualinherited

Remove and delete a sequence from the container.

Parameters
sequenceKeyThe key to which the sequence is associated.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ deleteSequence() [2/2]

virtual void bpp::TemplateSequenceDataInterface< std::string >::deleteSequence ( size_t  sequencePosition)
pure virtualinherited

Remove and delete a sequence from the container.

Parameters
sequencePositionThe position of the sequence.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ getAlphabet()

virtual std::shared_ptr<const Alphabet> bpp::TemplateSequenceDataInterface< std::string >::getAlphabet ( ) const
pure virtualinherited

Get a pointer toward the container's alphabet.

Returns
A pointer toward the alphabet associated to this container.

Implemented in bpp::AbstractTemplateSequenceContainer< SequenceType, HashType >, bpp::AbstractTemplateSequenceContainer< SequenceType, std::string >, and bpp::AbstractTemplateSequenceContainer< Sequence, std::string >.

◆ getComments()

◆ getNumberOfSequences()

virtual size_t bpp::TemplateSequenceDataInterface< std::string >::getNumberOfSequences ( ) const
pure virtualinherited

Get the number of sequences in the container.

Returns
The number of sequences in the container.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ getSequenceComments()

virtual std::vector<Comments> bpp::TemplateSequenceDataInterface< std::string >::getSequenceComments ( ) const
pure virtualinherited

◆ getSequenceKeys()

virtual std::vector<std::string > bpp::TemplateSequenceDataInterface< std::string >::getSequenceKeys ( ) const
pure virtualinherited

◆ getSequenceNames()

virtual std::vector<std::string> bpp::TemplateSequenceDataInterface< std::string >::getSequenceNames ( ) const
pure virtualinherited

◆ getSequencePosition()

virtual size_t bpp::TemplateSequenceDataInterface< std::string >::getSequencePosition ( const HashType &  sequenceKey) const
pure virtualinherited

Get the position of a sequence with a given key in the container.

Parameters
sequenceKeyThe key to which the sequence is associated.
Returns
The position of the sequence with name 'name', if it exists.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ getStateValueAt() [1/2]

virtual double bpp::TemplateSequenceDataInterface< std::string >::getStateValueAt ( size_t  sitePosition,
const HashType &  sequenceKey,
int  state 
) const
pure virtualinherited

Get the value of a state at a given position.

Parameters
sitePositionindex of the site
sequenceKeykey of the sequence in the container
statestate in the alphabet

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ getStateValueAt() [2/2]

virtual double bpp::TemplateSequenceDataInterface< std::string >::getStateValueAt ( size_t  sitePosition,
size_t  sequencePosition,
int  state 
) const
pure virtualinherited

Get value of a state at a given position.

Parameters
sitePositionindex of the site
sequencePositionindex of the sequence in the container
statestate in the alphabet

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ hasSequence()

virtual bool bpp::TemplateSequenceDataInterface< std::string >::hasSequence ( const HashType &  sequenceKey) const
pure virtualinherited

Check if a certain key is associated to a sequence in the container.

Parameters
sequenceKeyThe key to which the sequence is associated.
Returns
True if the key was found in the contained.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ insertSequence()

template<class SequenceType , class HashType = std::string>
virtual void bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::insertSequence ( size_t  sequencePosition,
std::unique_ptr< SequenceType > &  sequencePtr,
const HashType &  sequenceKey 
)
pure virtual

Insert a sequence in the container.

Parameters
sequencePositionThe position of the sequence.
sequencePtrThe sequence to add.
sequenceKeyThe new key of the sequence.

Implemented in bpp::TemplateVectorSequenceContainer< SequenceType >, bpp::TemplateAlignedSequenceContainer< SequenceType, SiteType >, and bpp::TemplateVectorSiteContainer< SiteType, SequenceType >.

◆ operator()() [1/2]

virtual double bpp::TemplateSequenceDataInterface< std::string >::operator() ( size_t  sitePosition,
const HashType &  sequenceKey,
int  state 
) const
pure virtualinherited

Get the value of a state at a given position.

Same as getValueAt.

Parameters
sitePositionindex of the site
sequenceKeykey of the sequence in the container
statestate in the alphabet

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ operator()() [2/2]

virtual double bpp::TemplateSequenceDataInterface< std::string >::operator() ( size_t  sitePosition,
size_t  sequencePosition,
int  state 
) const
pure virtualinherited

Get the value of a state at a given position.

Same as getValueAt.

Parameters
sitePositionindex of the site
sequencePositionindex of the sequence in the container
statestate in the alphabet

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ removeSequence() [1/2]

template<class SequenceType , class HashType = std::string>
virtual std::unique_ptr<SequenceType> bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::removeSequence ( const HashType &  sequenceKey)
pure virtual

◆ removeSequence() [2/2]

template<class SequenceType , class HashType = std::string>
virtual std::unique_ptr<SequenceType> bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::removeSequence ( size_t  sequencePosition)
pure virtual

Remove a sequence from the container.

Parameters
sequencePositionThe position of the sequence.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ sequence() [1/3]

template<class SequenceType , class HashType = std::string>
virtual const SequenceType& bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::sequence ( const HashType &  sequenceKey) const
overridepure virtual

◆ sequence() [2/3]

virtual const CoreSequenceInterface& bpp::TemplateSequenceDataInterface< std::string >::sequence ( const HashType &  sequenceKey) const
pure virtualinherited

Retrieve a sequence object from the container.

Parameters
sequenceKeyThe key to which the sequence is associated.
Returns
A reference toward the Sequence with corresponding name.

Implemented in bpp::TemplateSequenceContainerInterface< SequenceType, std::string >, bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ sequence() [3/3]

template<class SequenceType , class HashType = std::string>
virtual const SequenceType& bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::sequence ( size_t  sequencePosition) const
overridepure virtual

Retrieve a sequence object from the container.

Parameters
sequencePositionThe position of the sequence.
Returns
A reference toward the Sequence object with corresponding name.

Implements bpp::TemplateSequenceDataInterface< std::string >.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ sequenceKey()

virtual const std::string & bpp::TemplateSequenceDataInterface< std::string >::sequenceKey ( size_t  sequencePosition) const
pure virtualinherited

Get the key associated to a given sequence.

Parameters
sequencePositionThe position of the sequence in the container.
Returns
The key to which the sequence is associated.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ setComments()

virtual void bpp::Commentable::setComments ( const Comments comments)
pure virtualinherited

◆ setSequence() [1/3]

template<class SequenceType , class HashType = std::string>
virtual void bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::setSequence ( const HashType &  sequenceKey,
std::unique_ptr< SequenceType > &  sequencePtr 
)
pure virtual

Replace a sequence in the container.

If a sequence is found with the given key, it will be updated with the new one. If no sequence with the given key is found, the new sequence will be added to the container.

Parameters
sequenceKeyThe key to which the sequence is associated.
sequencePtrThe sequence to set.

Implemented in bpp::TemplateVectorSequenceContainer< SequenceType >, bpp::TemplateAlignedSequenceContainer< SequenceType, SiteType >, and bpp::TemplateVectorSiteContainer< SiteType, SequenceType >.

◆ setSequence() [2/3]

template<class SequenceType , class HashType = std::string>
virtual void bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::setSequence ( size_t  sequencePosition,
std::unique_ptr< SequenceType > &  sequencePtr 
)
pure virtual

Replace a sequence in the container.

The original key associated to the sequence will be kept.

Parameters
sequencePositionThe position of the sequence.
sequencePtrThe sequence to add.

Implemented in bpp::TemplateVectorSequenceContainer< SequenceType >, bpp::TemplateAlignedSequenceContainer< SequenceType, SiteType >, and bpp::TemplateVectorSiteContainer< SiteType, SequenceType >.

◆ setSequence() [3/3]

template<class SequenceType , class HashType = std::string>
virtual void bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::setSequence ( size_t  sequencePosition,
std::unique_ptr< SequenceType > &  sequencePtr,
const HashType &  sequenceKey 
)
pure virtual

Replace a sequence in the container.

The original key associated to the sequence will be kept.

Parameters
sequencePositionThe position of the sequence.
sequencePtrThe sequence to add.
sequenceKeyThe new key of the sequence.

Implemented in bpp::TemplateVectorSequenceContainer< SequenceType >, bpp::TemplateAlignedSequenceContainer< SequenceType, SiteType >, and bpp::TemplateVectorSiteContainer< SiteType, SequenceType >.

◆ setSequenceKeys()

virtual void bpp::TemplateSequenceDataInterface< std::string >::setSequenceKeys ( const std::vector< HashType > &  sequenceKeys)
pure virtualinherited

◆ setSequenceNames()

virtual void bpp::TemplateSequenceDataInterface< std::string >::setSequenceNames ( const std::vector< std::string > &  names,
bool  updateKeys 
)
pure virtualinherited

Batch-set all sequence names.

Parameters
namesA vector of sequence names. Must be the same size as the number of sequences in the container, otherwise a DimensionException is thrown.
updateKeysTell whether the keys of the sequences should be updated with the new sequence names.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::CompressedVectorSiteContainer.

◆ valueAt() [1/4]

template<class SequenceType , class HashType = std::string>
virtual const SequenceType::ElementType& bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::valueAt ( const HashType &  sequenceKey,
size_t  sitePosition 
) const
pure virtual

Get the content of the dataset at a specific position (sequence key, site position).

Parameters
sequenceKeykey of the sequence in the container
sitePositionindex of the site
Returns
The element at the given position.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, and bpp::TemplateVectorSequenceContainer< SequenceType >.

◆ valueAt() [2/4]

template<class SequenceType , class HashType = std::string>
virtual SequenceType::ElementType& bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::valueAt ( const HashType &  sequenceKey,
size_t  sitePosition 
)
pure virtual

Get the content of the dataset at a specific position (sequence key, site position).

Parameters
sequenceKeykey of the sequence in the container
sitePositionindex of the site
Returns
The element at the given position.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::TemplateAlignedSequenceContainer< SequenceType, SiteType >, and bpp::TemplateVectorSequenceContainer< SequenceType >.

◆ valueAt() [3/4]

template<class SequenceType , class HashType = std::string>
virtual const SequenceType::ElementType& bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::valueAt ( size_t  sequencePosition,
size_t  sitePosition 
) const
pure virtual

Get the content of the dataset at a specific position (sequence position, site position).

Parameters
sequencePositionindex of the sequence in the container
sitePositionindex of the site
Returns
The element at the given position.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::CompressedVectorSiteContainer, and bpp::TemplateVectorSequenceContainer< SequenceType >.

◆ valueAt() [4/4]

template<class SequenceType , class HashType = std::string>
virtual SequenceType::ElementType& bpp::TemplateSequenceContainerInterface< SequenceType, HashType >::valueAt ( size_t  sequencePosition,
size_t  sitePosition 
)
pure virtual

Get the content of the dataset at a specific position (sequence position, site position).

Parameters
sequencePositionindex of the sequence in the container
sitePositionindex of the site
Returns
The element at the given position.

Implemented in bpp::TemplateVectorSiteContainer< SiteType, SequenceType >, bpp::CompressedVectorSiteContainer, bpp::TemplateVectorSequenceContainer< SequenceType >, and bpp::TemplateAlignedSequenceContainer< SequenceType, SiteType >.


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