From: Dariusz Murakowski Date: Mon, 17 Feb 2014 14:18:30 +0000 (-0500) Subject: Multiple epitopes; one per line in .ep file. All have same penalty for now. X-Git-Url: http://src.murakowski.org/?a=commitdiff_plain;h=153c973e33f31aea52b2bdfa018469cc5433e124;p=VirEvoDyn.git Multiple epitopes; one per line in .ep file. All have same penalty for now. --- diff --git a/wf.cpp b/wf.cpp index c53acf9..245b0ac 100644 --- a/wf.cpp +++ b/wf.cpp @@ -99,7 +99,8 @@ void run(RunParameters &r, unsigned seed) { for (unsigned int n=0;n 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; + } } diff --git a/wf.h b/wf.h index bcfd2e9..a787b4f 100644 --- a/wf.h +++ b/wf.h @@ -103,9 +103,10 @@ public: std::vector > initPop; // Initial population sequences std::vector initFrac; // Initial population fraction - std::vector eWT; // Sites that are consensus (WT) in the targeted epitope - std::vector eMut; // Sites that are mutant in the targeted epitope + std::vector > eWT; // Sites that are consensus (WT) in the targeted epitope + std::vector > 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; @@ -142,6 +143,8 @@ public: J12 = 0.0; write_mod = 1; + + numEpitopes = 0; } void setFiles() {