SeqAn3
seqan3::aligned_sequence_concept Interface Reference

The generic concept for an aligned sequence.This concept describes the requirements a sequence must fulfil in order to be part of the seqan3::alignment object. More...

#include <seqan3/alignment/aligned_sequence/aligned_sequence_concept.hpp>

Inheritance diagram for seqan3::aligned_sequence_concept:
[legend]

Related Functions

(Note that these are not member functions.)

Requirements for seqan3::aligned_sequence_concept

You can expect these functions on all types that model seqan3::aligned_sequence_concept.

seq_type::iterator insert_gap (seq_type &seq, typename seq_type::const_iterator pos_it)
 Insert a seqan3::gap into an aligned sequence. More...
 
seq_type::iterator insert_gap (seq_type &seq, typename seq_type::const_iterator pos_it, typename seq_type::size_type size)
 Insert multiple seqan3::gap into an aligned sequence. More...
 
seq_type::iterator erase_gap (seq_type &seq, typename seq_type::const_iterator pos_it)
 Erase a seqan3::gap from an aligned sequence. More...
 
seq_type::iterator erase_gap (seq_type &seq, typename seq_type::const_iterator first, typename seq_type::const_iterator last)
 Erase multiple seqan3::gap from an aligned sequence. More...
 
Aligned sequence interface for containers

Enables containers to model seqan3::aligned_sequence_concept if they model seqan3::sequence_container_concept and have a reference type assignable from seqan3::gap (e.g. std::vector<seqan3::gapped<seqan3::dna4>>).

template<sequence_container_concept seq_type>
seq_type::iterator insert_gap (seq_type &seq, typename seq_type::const_iterator pos_it)
 An implementation of seqan3::aligned_sequence_concept::insert_gap for sequence containers. More...
 
template<sequence_container_concept seq_type>
seq_type::iterator insert_gap (seq_type &seq, typename seq_type::const_iterator pos_it, typename seq_type::size_type size)
 An implementation of seqan3::aligned_sequence_concept::insert_gap for sequence containers. More...
 
template<sequence_container_concept seq_type>
seq_type::iterator erase_gap (seq_type &seq, typename seq_type::const_iterator pos_it)
 An implementation of seqan3::aligned_sequence_concept::erase_gap for sequence containers. More...
 
template<sequence_container_concept seq_type>
seq_type::iterator erase_gap (seq_type &seq, typename seq_type::const_iterator first, typename seq_type::const_iterator last)
 An implementation of seqan3::aligned_sequence_concept::erase_gap for sequence containers. More...
 

Detailed Description

The generic concept for an aligned sequence.

This concept describes the requirements a sequence must fulfil in order to be part of the seqan3::alignment object.

The following extended type requirements for a type T must hold true:

Concepts and doxygen

The requirements for this concept are given as related functions and metafunctions. Types that model this concept are shown as "implementing this interface".

Friends And Related Function Documentation

◆ erase_gap() [1/4]

seq_type::iterator erase_gap ( seq_type &  seq,
typename seq_type::const_iterator  pos_it 
)
related

Erase a seqan3::gap from an aligned sequence.

Template Parameters
seq_typeType of the range to modify; must model seqan3::aligned_sequence_concept.
Parameters
[in,out]seqThe aligned sequence to modify.
[in]pos_itThe iterator pointing to the position where to erase a gap.
Exceptions
seqan3::gap_erase_failureif there is no seqan3::gap at pos_it.
Attention
This is a concept requirement, not an actual function (however types modelling this concept will provide an implementation).

◆ erase_gap() [2/4]

seq_type::iterator erase_gap ( seq_type &  seq,
typename seq_type::const_iterator  first,
typename seq_type::const_iterator  last 
)
related

Erase multiple seqan3::gap from an aligned sequence.

Template Parameters
seq_typeType of the range to modify; must model seqan3::aligned_sequence_concept.
Parameters
[in,out]seqThe aligned sequence to modify.
[in]firstThe iterator pointing to the position where to start erasing gaps.
[in]lastThe iterator pointing to the position where to stop erasing gaps.
Exceptions
seqan3::gap_erase_failureif one of the characters in [first, last) no seqan3::gap.
Attention
This is a concept requirement, not an actual function (however types modelling this concept will provide an implementation).

◆ erase_gap() [3/4]

template<sequence_container_concept seq_type>
seq_type::iterator erase_gap ( seq_type &  seq,
typename seq_type::const_iterator  pos_it 
)
related

An implementation of seqan3::aligned_sequence_concept::erase_gap for sequence containers.

Template Parameters
seq_typeType of the container to modify; must model seqan3::sequence_container_concept; the reference type (seqan3::reference_t<seq_type>) must be assignable from seqan3::gap.
Parameters
[in,out]seqThe container to modify.
[in]pos_itThe iterator pointing to the position where to erase a gap.
Exceptions
seqan3::gap_erase_failureif there is no seqan3::gap at pos_it.

This function delegates to the member function erase(iterator) of the container. Before delegating, the function checks if the position pointed to by pos_it is an actual seqan3::gap and throws an exception if not.

◆ erase_gap() [4/4]

template<sequence_container_concept seq_type>
seq_type::iterator erase_gap ( seq_type &  seq,
typename seq_type::const_iterator  first,
typename seq_type::const_iterator  last 
)
related

An implementation of seqan3::aligned_sequence_concept::erase_gap for sequence containers.

Template Parameters
seq_typeType of the container to modify; must model seqan3::sequence_container_concept; the reference type (seqan3::reference_t<seq_type>) must be assignable from seqan3::gap.
Parameters
[in,out]seqThe container to modify.
[in]firstThe iterator pointing to the position where to start erasing gaps.
[in]lastThe iterator pointing to the position where to stop erasing gaps.
Exceptions
seqan3::gap_erase_failureif one of the characters in [first, last) no seqan3::gap.

This function delegates to the member function erase(iterator, iterator) of the container. Before delegating, the function checks if the range [first, last) contains only seqan3::gap symbols.

◆ insert_gap() [1/4]

seq_type::iterator insert_gap ( seq_type &  seq,
typename seq_type::const_iterator  pos_it 
)
related

Insert a seqan3::gap into an aligned sequence.

Template Parameters
seq_typeType of the range to modify; must model seqan3::aligned_sequence_concept.
Parameters
[in,out]seqThe aligned sequence to modify.
[in]pos_itThe iterator pointing to the position where to insert a gap.
Attention
This is a concept requirement, not an actual function (however types modelling this concept will provide an implementation).

◆ insert_gap() [2/4]

seq_type::iterator insert_gap ( seq_type &  seq,
typename seq_type::const_iterator  pos_it,
typename seq_type::size_type  size 
)
related

Insert multiple seqan3::gap into an aligned sequence.

Template Parameters
seq_typeType of the range to modify; must model seqan3::aligned_sequence_concept.
Parameters
[in,out]seqThe aligned sequence to modify.
[in]pos_itThe iterator pointing to the position where to insert a gaps.
[in]sizeThe number of gap symbols to insert (will result in a gap of length size).
Attention
This is a concept requirement, not an actual function (however types modelling this concept will provide an implementation).

◆ insert_gap() [3/4]

template<sequence_container_concept seq_type>
seq_type::iterator insert_gap ( seq_type &  seq,
typename seq_type::const_iterator  pos_it 
)
related

An implementation of seqan3::aligned_sequence_concept::insert_gap for sequence containers.

Template Parameters
seq_typeType of the container to modify; must model seqan3::sequence_container_concept; the reference type (seqan3::reference_t<seq_type>) must be assignable from seqan3::gap.
Parameters
[in,out]seqThe container to modify.
[in]pos_itThe iterator pointing to the position where to insert a gap.

This function delegates to the member function insert(iterator, value) of the container.

◆ insert_gap() [4/4]

template<sequence_container_concept seq_type>
seq_type::iterator insert_gap ( seq_type &  seq,
typename seq_type::const_iterator  pos_it,
typename seq_type::size_type  size 
)
related

An implementation of seqan3::aligned_sequence_concept::insert_gap for sequence containers.

Template Parameters
seq_typeType of the container to modify; must model seqan3::sequence_container_concept; the reference type (seqan3::reference_t<seq_type>) must be assignable from seqan3::gap.
Parameters
[in,out]seqThe container to modify.
[in]pos_itThe iterator pointing to the position where to insert gaps.
[in]sizeThe number of gap symbols to insert (will result in a gap of length size).

This function delegates to the member function insert(iterator,size,value) of the container.


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