From: Dariusz Murakowski Date: Tue, 21 Apr 2015 17:27:18 +0000 (-0400) Subject: Proper species names. Initial counts CTL counts for each type. X-Git-Url: http://src.murakowski.org/?a=commitdiff_plain;h=6ff7c02fe110852048d0b915fc6c99e7bdc165ac;p=VirEvoDyn.git Proper species names. Initial counts CTL counts for each type. --- diff --git a/pop_ss.h b/pop_ss.h index 83cd367..7451e4f 100644 --- a/pop_ss.h +++ b/pop_ss.h @@ -30,17 +30,23 @@ public: std::string name; Species() : count(0), name("") {} Species(long c) : count(c), name("") {} + Species(std::string x) : count(0), name(x) {} + Species(std::string x, long c) : count(c), name(x) {} }; class SimpleSpecies : public Species { SimpleSpecies() : Species() {} SimpleSpecies(long c) : Species(c) {} + SimpleSpecies(std::string x) : Species(x) {} + SimpleSpecies(std::string x, long c) : Species(x,c) {} }; class VirusSpecies : public Species { public: VirusSpecies() : Species() {} VirusSpecies(long c) : Species(c) {} + VirusSpecies(std::string x) : Species(x) {} + VirusSpecies(std::string x, long c) : Species(x,c) {} virus_map pop; }; @@ -48,6 +54,8 @@ class CTLSpecies : public Species { public: CTLSpecies() : Species(), num_ep(0) {} CTLSpecies(long c) : Species(c), num_ep(0) {} + CTLSpecies(std::string x) : Species(x), num_ep(0) {} + CTLSpecies(std::string x, long c) : Species(x,c), num_ep(0) {} std::vector epitopes; std::vector affinity; diff --git a/ss.cpp b/ss.cpp index dbeac56..33d0a29 100644 --- a/ss.cpp +++ b/ss.cpp @@ -64,15 +64,15 @@ void run(RunParameters_SS &r, unsigned seed) { Species_parray species; Rxn_parray reactions; - std::string couplingsFile = "neutral_2site.j"; - Hamiltonian H(couplingsFile); + //std::string couplingsFile = "neutral_2site.j"; + Hamiltonian H(r.couplingsInfile); H.set_temp(r.bh, r.bJ); //H.set_temp(0.01); //double mu = 6.0e-5; //double mu = 1.0e-1; // initialize virus - VirusSpecies s1; + VirusSpecies s1("I"); species.push_back(&s1); if (r.importState) { importState(r); // .st @@ -262,14 +262,13 @@ void importState(RunParameters_SS &r) { void importEpitope(RunParameters_SS &r, Species_parray &species, Rxn_parray &reactions, VirusSpecies *V, Species_parray &print_spec) { - if ((r.num_CTL_clones != r.epitopefiles.size()) || - (r.num_CTL_clones != r.init_CTL_num.size())) { + if (r.num_CTL_clones != r.epitopefiles.size()) { std::cerr << "ERROR in importEpitope: invalid number of CTL clones" << std::endl; exit(1); } for (size_t i = 0; i != r.num_CTL_clones; ++i) { - CTLSpecies* T = new CTLSpecies(r.init_CTL_num[i]); + CTLSpecies* T = new CTLSpecies("E",r.init_CTL_numT[i]); std::ifstream input(r.epitopefiles[i].c_str()); // .ep if (!input) { perror((std::string("ERROR in importEpitope: ") + r.epitopeInfile).c_str()); exit(1); } @@ -337,9 +336,11 @@ void importEpitope(RunParameters_SS &r, Species_parray &species, Rxn_parray &rea species.push_back(T); // effector CTLSpecies* N = new CTLSpecies(*T); // naive + N->name = "N"; N->count = r.init_CTL_numN[i]; species.push_back(N); CTLSpecies* M = new CTLSpecies(*T); // memory + M->name = "M"; M->count = r.init_CTL_numM[i]; species.push_back(M); print_spec.push_back(T); @@ -425,7 +426,9 @@ void usage() " -o (string) output file stem\n" " -s (string) input state file, containing initial population fraction\n" " -ep (string) input file containing targeted epitope\n" -" -en (int) corresponding number of that CTL (ordered!)\n" +" -epN0 (int) initial number of naive CTL (corresp. to latest epitope)\n" +" -epM0 (int) initial number of memory CTL (corresp. to latest epitope)\n" +" -epT0 (int) initial number of effector CTL (corresp. to latest epitope)\n" " -n (int/double) population size\n" " -e (int/double) time to end simulation\n" " -t (int/double) sampling time interval\n" @@ -470,8 +473,10 @@ int main(int argc, char *argv[]) { else if (strcmp(argv[i],"-i")==0) { if (++i==argc) break; else r.infile=argv[i]; } else if (strcmp(argv[i],"-o")==0) { if (++i==argc) break; else r.outfile=argv[i]; } else if (strcmp(argv[i],"-s")==0) { if (++i==argc) break; else { r.statefile=argv[i]; r.importState=true; } } - else if (strcmp(argv[i],"-ep")==0) { if (++i==argc) break; else { r.epitopefiles.push_back(argv[i]); r.useEpitope=true; ++r.num_CTL_clones; } } - else if (strcmp(argv[i],"-en")==0) { if (++i==argc) break; else { r.init_CTL_num.push_back((long)strtodouble(argv[i])); r.useEpitope=true; } } + else if (strcmp(argv[i],"-ep")==0) { if (++i==argc) break; else { r.epitopefiles.push_back(argv[i]); r.useEpitope=true; ++r.num_CTL_clones; r.init_CTL_numN.push_back(0); r.init_CTL_numM.push_back(0); r.init_CTL_numT.push_back(0); } } + else if (strcmp(argv[i],"-epN0")==0) { if (++i==argc) break; else { r.init_CTL_numN.back() = (long)strtodouble(argv[i]); } } + else if (strcmp(argv[i],"-epM0")==0) { if (++i==argc) break; else { r.init_CTL_numM.back() = (long)strtodouble(argv[i]); } } + else if (strcmp(argv[i],"-epT0")==0) { if (++i==argc) break; else { r.init_CTL_numT.back() = (long)strtodouble(argv[i]); } } else if (strcmp(argv[i],"-n")==0) { if (++i==argc) break; else r.n=(unsigned int)strtodouble(argv[i]); } else if (strcmp(argv[i],"-mu")==0) { if (++i==argc) break; else r.mu=strtodouble(argv[i]); } diff --git a/ss.h b/ss.h index e3b5b63..0b86e4e 100644 --- a/ss.h +++ b/ss.h @@ -137,7 +137,9 @@ public: std::vector epitopefiles; - std::vector init_CTL_num; + std::vector init_CTL_numN; + std::vector init_CTL_numM; + std::vector init_CTL_numT; unsigned int num_CTL_clones; double rate_s;