[Avida-cvs] [avida-svn] r809 - development/source/analyze
brysonda@myxo.css.msu.edu
brysonda at myxo.css.msu.edu
Thu Jul 6 17:21:43 PDT 2006
Author: brysonda
Date: 2006-07-06 20:21:43 -0400 (Thu, 06 Jul 2006)
New Revision: 809
Modified:
development/source/analyze/cMutationalNeighborhood.cc
Log:
Adjust mutational neighborhood task calculations to exclude fatal mutations from being counted
Modified: development/source/analyze/cMutationalNeighborhood.cc
===================================================================
--- development/source/analyze/cMutationalNeighborhood.cc 2006-07-06 23:58:49 UTC (rev 808)
+++ development/source/analyze/cMutationalNeighborhood.cc 2006-07-07 00:21:43 UTC (rev 809)
@@ -157,16 +157,18 @@
m_fitness[cur_site][cur_inst] = test_fitness;
- const tArray<int>& cur_tasks = test_info.GetColonyOrganism()->GetPhenotype().GetLastTaskCount();
- bool knockout = false;
- bool anytask = false;
- for (int i = 0; i < m_base_tasks.GetSize(); i++) {
- if (m_base_tasks[i] && !cur_tasks[i]) knockout = true;
- else if (!m_base_tasks[i] && cur_tasks[i]) anytask = true;
+ if (test_fitness != 0.0) { // Only count tasks if the organism is alive
+ const tArray<int>& cur_tasks = test_info.GetColonyOrganism()->GetPhenotype().GetLastTaskCount();
+ bool knockout = false;
+ bool anytask = false;
+ for (int i = 0; i < m_base_tasks.GetSize(); i++) {
+ if (m_base_tasks[i] && !cur_tasks[i]) knockout = true;
+ else if (!m_base_tasks[i] && cur_tasks[i]) anytask = true;
+ }
+ if (knockout) odata.task_knockout++;
+ if (anytask) odata.task_total++;
+ if (m_base_tasks.GetSize() && !m_base_tasks[m_target] && cur_tasks[m_target]) odata.task_target++;
}
- if (knockout) odata.task_knockout++;
- if (anytask) odata.task_total++;
- if (m_base_tasks.GetSize() && !m_base_tasks[m_target] && cur_tasks[m_target]) odata.task_target++;
ProcessTwoStep(ctx, testcpu, test_info, cur_site, mod_genome);
}
@@ -211,21 +213,23 @@
if (test_fitness >= m_neut_min) tdata.site_count[line_num]++;
- const tArray<int>& cur_tasks = test_info.GetColonyOrganism()->GetPhenotype().GetLastTaskCount();
- bool knockout = false;
- bool anytask = false;
- for (int i = 0; i < m_base_tasks.GetSize(); i++) {
- if (m_base_tasks[i] && !cur_tasks[i]) knockout = true;
- else if (!m_base_tasks[i] && cur_tasks[i]) anytask = true;
+ if (test_fitness != 0.0) { // Only count tasks if the organism is alive
+ const tArray<int>& cur_tasks = test_info.GetColonyOrganism()->GetPhenotype().GetLastTaskCount();
+ bool knockout = false;
+ bool anytask = false;
+ for (int i = 0; i < m_base_tasks.GetSize(); i++) {
+ if (m_base_tasks[i] && !cur_tasks[i]) knockout = true;
+ else if (!m_base_tasks[i] && cur_tasks[i]) anytask = true;
+ }
+ if (knockout) tdata.task_knockout++;
+ if (anytask) tdata.task_total++;
+ if (m_base_tasks.GetSize() && !m_base_tasks[m_target] && cur_tasks[m_target]) {
+ tdata.task_target++;
+ // Push both instructions as possible first mutations, for post determination of relative fitness
+ m_pending.Push(new sPendingTarget(cur_site, mod_genome[cur_site].GetOp()));
+ m_pending.Push(new sPendingTarget(line_num, inst_num));
+ }
}
- if (knockout) tdata.task_knockout++;
- if (anytask) tdata.task_total++;
- if (m_base_tasks.GetSize() && !m_base_tasks[m_target] && cur_tasks[m_target]) {
- tdata.task_target++;
- // Push both instructions as possible first mutations, for post determination of relative fitness
- m_pending.Push(new sPendingTarget(cur_site, mod_genome[cur_site].GetOp()));
- m_pending.Push(new sPendingTarget(line_num, inst_num));
- }
}
More information about the Avida-cvs
mailing list