Team:Warsaw/Software
From 2011.igem.org
The most important thing about implementation is fact that it's recursive. Calling copy constructor dataStructures.Generation(Generation prevGen) causes automaticaly random recombination of adaptors, their mutation and calculation of expression srtength for all proteins defined in proteins array of particular Generation class instance. This simplifies rest of the code because recursive calling of Generation copy constructor is all you need to do for basic implementation of this algorithm. This functionality is illustrated in ExpressionAdaptorsGenerator.java.
Additionally ExpressionAdaptorsGenerator saves each generation of adaptors to separate file generationXXX.sav in save directory. This provides resume point i case of abnormal termination of the program and also serves as a data source for the second program - GenerationToFasta. It serves as data anlysis tool that picks best hits from all generations and produces file in FASTA format.