fflush(stdout);
- // Run (with targeted epitope)
-
- if (r.useEpitope) {
-
- for (unsigned int n=0; n<r.num_runs; n++) {
-
- EpitopeHamiltonian H(r.couplingsInfile);
-
- double penalty = 0.0;
- if (r.penaltyType == RunParameters::PenaltyEACH)
- penalty = r.penalty;
- else if (r.penaltyType == RunParameters::PenaltyTOTAL)
- penalty = r.penalty / (double)r.numEpitopes;
- for (unsigned ep=0; ep<r.numEpitopes; ++ep) {
- H.set_epitope(r.eWT[ep], r.eMut[ep], penalty);
- }
+ if(r.useTwoSite) {
- H.set_temp(r.bh, r.bJ);
+ fprintf(popout,"gen\tV00\tV10\tV01\tV11\n");
- for (unsigned int n=0;n<r.num_runs;n++) {
- Population P(H, r.n, r.mu, r.initPop, r.initFrac);
++ for (unsigned int n=0; n<r.num_runs; n++) {
+
+ //fprintf(popout,"gen\tV00\tV10\tV01\tV11\n");
+
+ TwoSiteHamiltonian H(r.h1,r.h2,r.J12);
+ H.set_temp(r.bh, r.bJ);
+ Population P(H, r.n, r.mu, r.initPop, r.initFrac);
+
+ P.write_two_site_population(popout,H,0);
+
+ unsigned int i;
+ for (i=0; i<r.g; ++i) {
+
+ //printf("%d\t%d\n",n,i);
+ P.next_generation(H, rnd, r.useRelative, r.useVerbose);
+
+ if ((i+1) % r.write_mod == 0) {
+ P.write_two_site_population(popout,H,i+1);
+ }
+
+ //if (r.runUntilEscape && P.escaped(H)) break;
- // print epitopes
- /*
- std::cout << "-----------\n";
- for (unsigned ep=0; ep<H.penalty.size(); ++ep) {
- for (unsigned i=0; i<H.epitopeWT[ep].size(); ++i) {
- std::cout << H.epitopeWT[ep][i] << " ";
- }
- std::cout << "| ";
- for (unsigned i=0; i<H.epitopeMut[ep].size(); ++i) {
- std::cout << H.epitopeMut[ep][i] << " ";
}
- std::cout << "\n";
+
}
- fflush(stdout);
- */
-
- unsigned int i;
- for (i=0; i<r.g; ++i) {
+
+ }
+
+
+ else {
+
+ // Run (w/ targeted epitope)
+
+ if (r.useEpitope) {
- P.next_generation(H, rnd, r.useRelative, r.useVerbose);
+ for (unsigned int n=0; n<r.num_runs; n++) {
+
+ EpitopeHamiltonian H(r.couplingsInfile);
+
+ double penalty = 0.0;
+ if (r.penaltyType == RunParameters::PenaltyEACH)
+ penalty = r.penalty;
+ else if (r.penaltyType == RunParameters::PenaltyTOTAL)
+ penalty = r.penalty / (double)r.numEpitopes;
+ for (unsigned ep=0; ep<r.numEpitopes; ++ep) {
+ H.set_epitope(r.eWT[ep], r.eMut[ep], penalty);
+ }
- if ((i+1) % r.write_mod == 0) {
- P.write_population(popout,i+1);
+ H.set_temp(r.bh, r.bJ);
+
+ Population P(H, r.n, r.mu, r.initPop, r.initFrac);
+
+ // print epitopes
+ /*
+ std::cout << "-----------\n";
+ for (unsigned ep=0; ep<H.penalty.size(); ++ep) {
+ for (unsigned i=0; i<H.epitopeWT[ep].size(); ++i) {
+ std::cout << H.epitopeWT[ep][i] << " ";
+ }
+ std::cout << "| ";
+ for (unsigned i=0; i<H.epitopeMut[ep].size(); ++i) {
+ std::cout << H.epitopeMut[ep][i] << " ";
+ }
+ std::cout << "\n";
}
+ fflush(stdout);
+ */
+
+ unsigned int i;
+ for (i=0; i<r.g; ++i) {
- if (r.runUntilEscape && P.escaped(H)) break;
+ P.next_generation(H, rnd, r.useRelative, r.useVerbose);
- if (r.runUntilEscape_all && P.escaped_all(H)) break;
-
- }
-
- std::set<unsigned int> esc_var;
- unsigned int esc_num = 0;
- if (!r.runUntilEscape && !r.runUntilEscape_all) esc_num = P.escape_variant(H, esc_var); // default behavior for backwards compatibility
- if (r.runUntilEscape_all) esc_num = P.escape_variant_all(H, esc_var);
- if (r.runUntilEscape) esc_num = P.escape_variant(H, esc_var);
- // should behave better if both are true
- // but more likely to escape one than all, so that one is output
-
- fprintf(supout,"%d\t%d",i,esc_num);
+ if ((i+1) % r.write_mod == 0) {
+ P.write_population(popout,i+1);
+ }
+
+ if (r.runUntilEscape && P.escaped(H)) break;
- //for (std::set<unsigned int>::iterator iter=esc_var.begin(); iter!=esc_var.end(); ++iter) fprintf(supout,"\t%d",*iter);
+ if (r.runUntilEscape_all && P.escaped_all(H)) break;
+
+ }
+
+ std::set<unsigned int> esc_var;
+ unsigned int esc_num = 0;
+ if (!r.runUntilEscape && !r.runUntilEscape_all) esc_num = P.escape_variant(H, esc_var); // default behavior for backwards compatibility
+ if (r.runUntilEscape_all) esc_num = P.escape_variant_all(H, esc_var);
+ if (r.runUntilEscape) esc_num = P.escape_variant(H, esc_var);
+ // should behave better if both are true
+ // but more likely to escape one than all, so that one is output
+
+ fprintf(supout,"%d\t%d",i,esc_num);
- // print sequence as CSV (comma-separated)
- fprintf(supout,"\t");
- std::set<unsigned int>::iterator ms_iter=esc_var.begin();
- if (ms_iter != esc_var.end()) {
- fprintf(supout,"%d",*ms_iter);
- ++ms_iter;
- }
- for (; ms_iter!=esc_var.end(); ++ms_iter)
- fprintf(supout,",%d",*ms_iter);
+ //for (std::set<unsigned int>::iterator iter=esc_var.begin(); iter!=esc_var.end(); ++iter) fprintf(supout,"\t%d",*iter);
- fprintf(supout,"\n");
+ // print sequence as CSV (comma-separated)
+ fprintf(supout,"\t");
+ std::set<unsigned int>::iterator ms_iter=esc_var.begin();
+ if (ms_iter != esc_var.end()) {
+ fprintf(supout,"%d",*ms_iter);
+ ++ms_iter;
+ }
+ for (; ms_iter!=esc_var.end(); ++ms_iter)
+ fprintf(supout,",%d",*ms_iter);
+
+ fprintf(supout,"\n");
+
+ fflush(supout);
+
+ }
- fflush(supout);
-
}
- }
-
-
- // Run (w/out targeted epitope)
-
- else {
-
- for (unsigned int n=0; n<r.num_runs; n++) {
- Hamiltonian H(r.couplingsInfile);
- H.set_temp(r.bh, r.bJ);
- Population P(H, r.n, r.mu, r.initPop, r.initFrac);
-
- unsigned int i;
- for (i=0; i<r.g; ++i) {
+ // Run (w/out targeted epitope)
+
+ else {
+
- for (unsigned int n=0;n<r.num_runs;n++) {
++ for (unsigned int n=0; n<r.num_runs; n++) {
- P.next_generation(H, rnd, r.useRelative, r.useVerbose);
- P.write_population(popout,i+1);
+ Hamiltonian H(r.couplingsInfile);
+ H.set_temp(r.bh, r.bJ);
+ Population P(H, r.n, r.mu, r.initPop, r.initFrac);
+
+ unsigned int i;
+ for (i=0; i<r.g; ++i) {
+
+ P.next_generation(H, rnd, r.useRelative, r.useVerbose);
+ P.write_population(popout,i+1);
- if (r.runUntilEscape && P.escaped(H)) break;
+ if (r.runUntilEscape && P.escaped(H)) break;
+ }
+
}
}
-
- }
-
+ }
+
gsl_rng_free(rnd); //Free up memory from random number generator
- fclose(popout); // close file handles
- if(!r.useTwoSite) fclose(supout);
+ // close file handles
+ fclose(popout);
- fclose(supout);
++ if(!r.useTwoSite)
++ fclose(supout);
}