I’ve been working today on adding a final pass to phenotype development for structural genes. Before I go any further I’ll provide an analogy to explain my motivation.
Okay lets say you have a gene for a nose. Where are you going to place that nose? Is there a gene for a head that it will be placed on? Or can it be placed directly on a body and does a gene need to exist to specify the placement. Well if this is the case obviously you wouldn’t want to generate a phenotype for that nose if it’s gene can not function without the presence of other genes. So before you can fully generate the nose phenotype you need to generate the dependent genes.
That gives you two passes to phenotype generation. The generation of the nose and then inclusion dependent on the existence of other prototypes. However that is not really enough. Would a nose be expected to function different if placed on a foot vs a head? What about the angle of placement? What if the organism has 3 fold symmetry and 3 noses are placed? So obviously further refinement is necessary.
That leaves us currently with three passes for structural gene phenotype generation. Identification of the base phenotype, inclusion or exclusion based on the existence of other phenotype, and finally refinement based on the included phenotype base set. One could argue for an iterative refinement. However, in the hopes of restraining complexity and processor requirements we hopefully will not have to go there.