Mercurial > repos > chrisd > testing
diff gene_fraction/src/FastaRecord.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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gene_fraction/src/FastaRecord.h Sun Feb 21 23:31:55 2016 -0500 @@ -0,0 +1,86 @@ +#ifndef FASTA_RECORD_H +#define FASTA_RECORD_H + +#include <string> +#include <vector> + +/** + * Class for dealing with fasta records + */ +class FastaRecord { +public: + /** + * Ctor that initializes gene id and gene + */ + FastaRecord(std::string gene_id, std::string gene); + + /** + * Returns a string gene id + */ + std::string gene_id() const; + + /** + * Returns the gene associated with gene id + */ + std::string gene() const; + + /** + * Returns the total base hits for a gene + */ + int get_base_hits() const; + + /** + * Returns the amount of genes that were hit + * during the gene fraction calculation + */ + int gene_hits() const; + + /** + * + */ + void update_base_hits(const int &index); + + /** + * + */ + void update_gene_hits(); + + /** + * Searches for a fasta record corresponding + * to gene id + */ + static int find_gene(const std::vector<FastaRecord> &records, + const std::string &gene_id, + std::string seq = ""); + + /** + * Sorts fasta records by gene id + */ + static void sort_by_gene_id(std::vector<FastaRecord> &records); + + /** + * Resets base hits vector to 0's. + * This occurs after each sample is processed + */ + static void reset_base_hits(std::vector<FastaRecord> &records); + + /** + * Resets gene hits primitive to 0. + * This happens after each sample is processed + */ + static void reset_gene_hits(std::vector<FastaRecord> &records); + + std::vector<int> &base_hits(); + + std::string _gene_id; + std::string _gene; + std::vector<int> _base_hits; + +private: + int _gene_hits; +}; + + + + +#endif /* FASTA_RECORD_H */