From 153c973e33f31aea52b2bdfa018469cc5433e124 Mon Sep 17 00:00:00 2001 From: Dariusz Murakowski Date: Mon, 17 Feb 2014 09:18:30 -0500 Subject: [PATCH] Multiple epitopes; one per line in .ep file. All have same penalty for now. --- wf.cpp | 59 +++++++++++++++++++++++++++++++++++++++++------------------ wf.h | 7 +++++-- 2 files changed, 46 insertions(+), 20 deletions(-) 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() { -- 2.7.4