Presentation is loading. Please wait.

Presentation is loading. Please wait.

C++ Software Library for Sequence Analysis David Weese April 2009.

Similar presentations


Presentation on theme: "C++ Software Library for Sequence Analysis David Weese April 2009."— Presentation transcript:

1 C++ Software Library for Sequence Analysis David Weese April 2009

2 SeqAn Core Contents - strings - structured sequences - gapped sequences - alterators - profiles, weight matrices - HMM, SCFG - p-value computations -… Sequences Searching - exact/approximate - search heuristics - filtering - motif search Probabilis. Biologicals Alignments - alignment data structures - dynamic Programming - alignment heuristics - multidimensional chaining Indices - q-gram hashes - (enhanced) suffix array - suffix trees - lazy indices, compress. ind. Graphs - (structural) align. graphs - word graphs - probabilistic automata - trees Algorithms - FASTA - gQUASAR, SWIFT,.. - MEME, PROJECTION,… - … Miscellan. - allocators - OS access and support - helper data struc. and algorithms Integration - using external tools - STL - LEDA and Boost graphs - friend libraries (LISA) - alphabets - scoring schemes - file formats - base pair probabilities -

3 SeqAn Website

4 SeqAn Website

5 dddoc Documentation System

6 SeqAn Trac

7 SeqAn Paper

8 The SeqAn Way of Programming Global Interfaces length(str); Metafunctions Size ::Type; Template Subclassing String >

9 Global Interfaces

10 str.length(); length(str);

11 assign(Segment const & target, TSource & source, typename Size >::Type limit, Tag const); assign(Segment const & target, TSource const & source); assign(Segment const & target, TSource const & source, Tag const); assign(Segment const & target, TSource const & source, typename Size >::Type limit, Tag const); assign(short & c_target, SimpleType & source); assign(short & c_target, SimpleType const & source); assign(signed char & c_target, SimpleType & source); assign(signed char & c_target, SimpleType const & source); assign(SimpleType & target, Proxy & source); assign(SimpleType & target, Proxy const & source); assign(SimpleType & target, SimpleType & source); assign(SimpleType & target, SimpleType const & source); assign(SimpleType & target, TSource & source); assign(SimpleType & target, TSource const & source); assign(SkipList & me, TParam & param); assign(SkipList & me, TParam1 & param1, TParam2 & param2 ); assign(::std::basic_string & target, TSource & source); assign(::std::basic_string & target, TSource & source, Generous); assign(::std::basic_string & target, TSource & source, Limit); assign(::std::basic_string & target, TSource & source, TSize limit); assign(::std::basic_string & target, TSource & source, typename Size >::Type limit, Generous); assign(::std::basic_string & target, TSource & source, typename Size >::Type limit, Limit); assign(::std::basic_string & target, TSource const & source); assign(::std::basic_string & target, TSource const & source, Generous); assign(::std::basic_string & target, TSource const & source, Limit); assign(::std::basic_string & target, TSource const & source, TSize limit); assign(::std::basic_string & target, TSource const & source, typename Size >::Type limit, Generous); assign(::std::basic_string & target, TSource const & source, typename Size >::Type limit, Limit); assign(String & target, TSource & source, Tag const tag); assign(String & target, TSource & source, TSize limit, Tag const tag); assign(String & target, TSource const & source, Tag const tag); assign(String & target, TSource const & source, TSize limit, Tag const tag); assign(String & target, TSourceValue const * source, Tag const tag); assign(String & target, TSourceValue const * source, TSize limit, Tag const tag); assign(String & target, _ChunkCollector const & source, Tag const tag); assign(String & target, _ChunkCollector const & source, typename Size >::Type limit, Tag const tag); assign(String & target, TSource & source); assign(String & target, TSource const & source); assign(String & target, TSource const & source, Tag const); assign(String & target, TSource const & source, TSize limit, Tag const); assign(String & target, TSourceValue const * source, Tag const); assign(String & target, TSourceValue const * source, TSize limit, Tag const); assign(String >& target, TSource const& source); assign(String & target, String & source, Tag const); assign(String > &target, TSource const &source, Tag const); assign(String > & target, String > & source, Tag const tag); assign(String > & target, String > & source, TSize limit, Tag const tag); assign(String > & target, String > const & source, Tag const tag); assign(String > & target, String > const & source, TSize limit, Tag const tag); assign(String &dest, Pipe &src); assign(String &dest, Pool &src); assign(TraceBack & target, Byte const c_source); assign(TraceBackGotoh & target, Byte const c_source); assign(TTarget & target, TSource & source); assign(TTarget & target, TSource & source, typename Size ::Type limit); assign(TTarget & target, TSource const & source); assign(TTarget & target, TSource const & source, typename Size ::Type limit); assign(TTarget const & target, TSource & source, typename Size ::Type limit); assign(TTarget const & target, TSource const & source, typename Size ::Type limit); assign(TTargetValue * target, TSource & source); assign(TTargetValue * target, TSource const & source); assign(TTargetValue * target, TSource const & source, size_t limit, Tag const); assign(TTargetValue * target, TSource const & source, Tag const); assign(TTargetValue * target, TSourceValue const * source, size_t limit, Tag const); assign(TTargetValue * target, TSourceValue const * source, Tag const); assign(unsigned char & c_target, SimpleType & source); assign(unsigned char & c_target, SimpleType const & source); assign(unsigned int & c_target, SimpleType & source); assign(unsigned int & c_target, SimpleType const & source); assign(unsigned short & c_target, SimpleType & source); assign(unsigned short & c_target, SimpleType const & source); 170 assign functions170 assign Functions

12 Metafunctions

13 Example swapLetters(string & str) { char help = str[1]; str[1] = str[0]; str[0] = help; }

14 Example template swapLetters(T & str) { char help = str[1]; str[1] = str[0]; str[0] = help; }

15 Example template swapLetters(T & str) { Value(T) help = str[1]; str[1] = str[0]; str[0] = help; }

16 Example template swapLetters(T & str) { Value ::Type help = str[1]; str[1] = str[0]; str[0] = help; }

17 Metafunctions template struct Value > { typedef T Type; }; template struct Value { typedef T Type; };

18 Example template swapLetters(T & str) { typedef Value ::Type TValue; TValue help = str[1]; str[1] = str[0]; str[0] = help; }

19 “Generic++” template swapLetters(T & str) { typedef Value ::Type TValue; TValue help = value(str,1); value(str,1) = value(str,0); value(str,0) = help; }

20 Metafunctions: Examples Value ::Type Size ::Type Position ::Type Iterator ::Type

21 Template Subclassing

22 class Animal; class Animal >;

23 Examples String String >

24 Appendix 1: Testing "Save Your Tests!" "Test Automatically!"

25 Appendix 1: Testing void printString(char * str) { SEQAN_CHECKPOINT SEQAN_ASSERT(str != 0) //… }

26 Appendix 2: dddoc /**.Function.length:..cat:Containers..summary:The number of items/characters...signature:Size length(object)..param.object:A container....concept:Concept.Container..returns:The number of items/characters in $object$....metafunction:Metafunction.Size..remarks.text:The length of a sequence can never exceed it's capacity...see:Function.capacity */ template inline typename Size ::Type length(T const & /*me*/) { SEQAN_CHECKPOINT return 1; }

27 Appendix 2: dddoc


Download ppt "C++ Software Library for Sequence Analysis David Weese April 2009."

Similar presentations


Ads by Google