Mercurial > repos > chrisd > testing
view gene_fraction/src/Alignments.h @ 0:f95150c37d38 draft default tip
planemo upload for repository https://github.com/ChrisD11/Tools commit ddc95e5d6b5f2c0a5340c0bc384aa822db8856d5
author | chrisd |
---|---|
date | Sun, 21 Feb 2016 23:31:55 -0500 |
parents | |
children |
line wrap: on
line source
#ifndef ALIGNMENTS_H #define ALIGNMENTS_H #include <string> #include <vector> /** * Stores information about an alignment */ struct alignment_fields { std::string QNAME; int FLAG; std::string RNAME; int POS; int MAPQ; std::string CIGAR; std::string RNEXT; int PNEXT; int TLEN; std::string SEQ; std::string QUAL; }; /** * Class for dealing with alignments */ class Alignments { public: /** * Ctor that initializes alignment */ Alignments(std::string alignment); /** * Stores information about each of the eleven * required alignment fields */ void fill_alignment_fields(const std::string &alignment); std::vector<std::pair<int,char>> cigar(); inline std::string alignment() const { return _alignment; }; inline std::string qname() const { return field.QNAME; }; inline std::string rname() const { return field.RNAME; }; inline std::string cigar() const { return field.CIGAR; }; inline std::string rnext() const { return field.RNEXT; }; inline std::string seq() const { return field.SEQ; }; inline std::string qual() const { return field.QUAL; }; inline int flag() const { return field.FLAG; }; inline int pos() const { return field.POS; }; inline int mapq() const { return field.MAPQ; }; inline int pnext() const { return field.PNEXT; }; inline int tlen() const { return field.TLEN; }; private: /** * Returns a pair of cigar operations as (occurrence, operation) * Ex: 10M5I -> (10, M), (5, I) */ std::vector<std::pair<int,char>> get_cigar_operations(const std::string &cigar); std::string _alignment; alignment_fields field; }; #endif /* ALIGNMENTS_H */