Why did we do it?

In 2019 iGEM Calgary introduced iGAM into the iGEM landscape. iGAM or if you are fearful of acronyms, international Genetic Algorithm Machine, is a genetic algorithm R program that optimizes the sequence of a protein-based on a fitness function selected by the user. This was utilized in 2019 for the optimization of the 6GIX protein. For that model, please visit our 2019 page here. This model was a great success in generating the modified protein. Along with the proteins page the 2019 iGAM 1.0 can be viewed here.

This introduction was shaky at best as the script was introduced as a proof of concept only capable of being used for one protein with one fitness function. This greatly decreased its reproducibility and its effectiveness for other teams.

To ensure that this software would have a more substantial impact, we made minor changes and reformated the file. These edits highlighted below will allow more people to use and improve the iGAM software. The iGAM 2.0 software has also been edited for the use by the Kings College London iGEM team. Their feedback and usage experience will be utilized into a hopeful iGAM 3.0 come 2021.


What is different here?

First off, some packages utilized in iGAM were installed before writing. Therefore there is a chance that users may not have these essential packages. To combat this possibility, the packages used are installed by command at the start of the script. This can be seen below:

The next usability edit was the direction to prompt the user to change the protein sequence being used. If the user has the amino acid sequence for their protein as a string, they can make iGAM work. This variable still carries the legacy variable name gix and is accessible in the following code 'chunk'. Star file.

Now that we can edit the protein and we are sure that we have all the necessary packages, it is time to pick a fitness function. This can be done in a multitude of ways and, in all circumstances, will require tweaking and experimentation. These can be accomplished through the use of the 'Eval' function. Simply change 'fu' to be your protein sequence after the modifications. Then operate your fitness function on fu and have it provide a numerical value for 'Gcrit'. Then you are in business.

After running iGAM you will be greeted by a little graph outlining the fitness values of your simulation and the highest point achieved.


For anyone looking to work with iGAM please visit the iGAM page on the UCalgary Github. iGAM Github Page


Gagolewski M. and others (2019). R package stringi: Character string processing facilities.

Osorio, D., Rondon-Villarreal, P. & Torres, R. Peptides: A package for data mining of antimicrobial peptides. The R Journal. 7(1), 4-14 (2015).