return lhs.mutated_sites < rhs.mutated_sites;
}
+std::vector<aa> translate_nt_seq(const std::string &nt_seq)
+{
+ std::vector<aa> aa_seq; aa_seq.reserve(nt_seq.size() / 3);
+ for (unsigned i=0; i<nt_seq.length(); i+=3) {
+ aa_seq.push_back(codon2aa.at(str2codon.at(nt_seq.substr(i,3))));
+ }
+ return aa_seq;
+}
+
+std::string aaseq2str(const std::vector<aa> &aa_seq)
+{
+ std::string out; out.reserve(aa_seq.size());
+ for (std::vector<aa>::const_iterator it = aa_seq.begin(),
+ end = aa_seq.end();
+ it != end; ++it) {
+ out.push_back(aa2str.at(*it));
+ }
+ return out;
+}
+
+NTVirus::NTVirus(const std::string &NT)
+: energy(0.0)
+, nt_seq(NT)
+, aa_seq(translate_nt_seq(NT))
+, L_nt(NT.length())
+, L_aa(this->L_nt/3)
+{
+}
+
+bool operator<(const NTVirus& lhs, const NTVirus& rhs) {
+ return lhs.nt_seq < rhs.nt_seq;
+}
+
// Did virus escape from immune pressure?
bool EpitopeRecognizer::escaped(const Virus &v) const {
#include <gsl/gsl_rng.h>
#include "ham_ss.h"
+#include "seqTools.h"
class Hamiltonian;
typedef std::set<unsigned int> MutatedSiteSequence;
+// helper functions
+std::vector<aa> translate_nt_seq(const std::string &nt_seq);
+std::string aaseq2str(const std::vector<aa> &aa_seq);
+
+class NTVirus {
+public:
+ double energy;
+ std::string nt_seq;
+ std::vector<aa> aa_seq;
+ unsigned int L_nt;
+ unsigned int L_aa;
+
+ NTVirus(const std::string &);
+};
+
+// needed for STL map
+bool operator<(const NTVirus& lhs, const NTVirus& rhs);
+
+typedef std::map<NTVirus, unsigned int> NTVirus_map;
+
+
+
class EpitopeRecognizer {
public:
std::vector<unsigned int> epitopeWT; // sites with state=0 are recognized
virus_map pop;
};
+class NTVirusSpecies : public Species {
+public:
+ NTVirusSpecies() : Species() {}
+ NTVirusSpecies(long c) : Species(c) {}
+ NTVirusSpecies(std::string x) : Species(x) {}
+ NTVirusSpecies(std::string x, long c) : Species(x,c) {}
+ NTVirus_map pop;
+};
+
class CTLSpecies : public Species {
public:
CTLSpecies() : Species(), num_ep(0) {}
}
std::cout << '\n';
}
- std::cout << int2aa.at(codon2aa.at(str2codon.at("TTT"))) << '\n';
+ //NTVirus v("TTT");
+ NTVirus v(argv[2]);
+ //std::cout << int2aa.at(codon2aa.at(str2codon.at(v.nt_seq))) << '\n';
+ std::cout << aa2str.at(v.aa_seq[0]) << '\n';
+ std::cout << aaseq2str(v.aa_seq) << '\n';
+ printf("%d %d\n",v.L_nt,v.L_aa);
return 0;
RunParameters_SS r;