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;
};
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<EpitopeRecognizer> epitopes;
std::vector<double> affinity;
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); // <infile>.st
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()); // <infile>.ep
if (!input) { perror((std::string("ERROR in importEpitope: ") + r.epitopeInfile).c_str()); exit(1); }
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);
" -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"
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]); }