for (unsigned int n=0;n<r.num_runs;n++) {
EpitopeHamiltonian H(r.couplingsInfile);
- H.set_epitope(r.eWT, r.eMut, r.penalty);
+ for (unsigned ep=0; ep<r.numEpitopes; ++ep)
+ H.set_epitope(r.eWT[ep], r.eMut[ep], r.penalty);
H.set_temp(r.bh, r.bJ);
Population P(H, r.n, r.mu, r.initPop, r.initFrac);
while (fscanf(input,"%u",&site)==1) {
std::cout << site; // XXX
+
+ std::vector<unsigned int> tempEp;
- r.eWT.push_back(site);
-
- fscanf(input,"%c",&o);
- std::cout << o; // XXX
- if (o=='\n') break;
+ tempEp.push_back(site);
+ //r.eWT.push_back(site);
- }
+ while (fscanf(input,"%c",&o) == 1) {
+ std::cout << o; // XXX
- if (fscanf(input,"%c",&o) != 1 || o != '|') { perror((std::string("ERROR in importEpitope: ") + r.epitopeInfile).c_str()); exit(1); }
- std::cout << o; // XXX
- if (fscanf(input,"%c",&o) != 1 || o != '\t') { perror((std::string("ERROR in importEpitope: ") + r.epitopeInfile).c_str()); exit(1); }
- std::cout << o; // XXX;
+ if (fscanf(input,"%u",&site)==1) {
+ std::cout << site; // XXX
+ tempEp.push_back(site);
+ }
+ else {
+ break;
+ }
+ }
- while (fscanf(input,"%u",&site)==1) {
+ r.eWT.push_back(tempEp);
- std::cout << site; // XXX
-
- r.eMut.push_back(site);
-
- fscanf(input,"%c",&o);
+ if (fscanf(input,"%c",&o) != 1 || o != '|') { std::cout<<((std::string("ERROR in parsing importEpitope: ") + r.epitopeInfile).c_str()); exit(1); }
std::cout << o; // XXX
- if (o=='\n') break;
+ if (fscanf(input,"%c",&o) != 1 || o != '\t') { std::cout<<((std::string("ERROR2 in parsing importEpitope: ") + r.epitopeInfile).c_str()); exit(1); }
+ std::cout << o; // XXX;
+
+ tempEp.clear();
+
+ while (fscanf(input,"%u",&site)==1) {
+
+ std::cout << site; // XXX
+ tempEp.push_back(site);
+ //r.eMut.push_back(site);
+
+ fscanf(input,"%c",&o);
+ std::cout << o; // XXX
+ if (o=='\n') break;
+
+ }
+
+ r.eMut.push_back(tempEp);
+
+ r.numEpitopes++;
+
+ //if (o=='\n') break;
+
}
}
std::vector<std::set<unsigned int> > initPop; // Initial population sequences
std::vector<double> initFrac; // Initial population fraction
- std::vector<unsigned int> eWT; // Sites that are consensus (WT) in the targeted epitope
- std::vector<unsigned int> eMut; // Sites that are mutant in the targeted epitope
+ std::vector<std::vector<unsigned int> > eWT; // Sites that are consensus (WT) in the targeted epitope
+ std::vector<std::vector<unsigned int> > eMut; // Sites that are mutant in the targeted epitope
double penalty; // Energy penalty if sequence contains the targeted epitope
+ unsigned int numEpitopes; // how many epitopes are targeted
std::string couplingsInfile;
std::string trajectoryOutfile;
J12 = 0.0;
write_mod = 1;
+
+ numEpitopes = 0;
}
void setFiles() {