/*Style pour modifier la police d'écriture*/ body { font-family: 'Montserrat', Arial, sans-serif; }

Make a useful contribution for future iGEM teams. Use this page to document that contribution.

Votre Page

Our Contributions for future iGEM Teams

Dry lab contribution : The codon optimisation algorithm

Pseudomonas bacteria preferentially use codons rich in GC (in 60 to 70% of cases) when several codons are possible to encode the same amino acid. If we want to optimally express the enzymes encoded by the plasmid, it is better to replace certain codons which come from yeast with codons preferred by Pseudomonas, at the risk of strongly limiting transcription. For example, the AGA codon, which codes for arginine, is used in only 1% of cases, while the CGC codon, which also codes for arginine, is used in 60% of cases. We have developed an algorithm for codon optimization. With the aim of maximizing the production of proteins in the biosynthetic pathways of sophorolipids and rhamnolipids, we have created an algorithm that provides us with the most optimal DNA sequence. By leveraging the redundancy of the genetic code to our advantage, we can design our sequence in such a way that the codons in our sequence are those most commonly used. In this way, we have maximized the production of our target proteins. We bequeath this optimization algorithm to future iGEM teams so that they too can harness the redundancy of the genetic code to transform their model organism into an efficiently optimized production factory.

Optimisation algorythm code


               from Bio.Seq import Seq
               from Bio import SeqIO
               from Bio import Align
               from Bio.Seq import MutableSeq
               from Bio.SeqRecord import SeqRecord

               # Example here of codon optimization with one of our protein
               # Loading the lactone esterase gene sequence from NCBI
               for lactonase in SeqIO.parse("lactonase.fasta", "fasta"):
                  eukaryotic_lactonase= lactonase.translate(table=1) # Translation of the sequence with the standard table
                  prokaryotic_lactonase= lactonase.translate(table=11) # Translation of the sequence with the bacterial table
                  # Saving sequences in FASTA format
                  SeqIO.write(eukaryotic_lactonase, "eukaryotic_lactonase.fasta", "fasta")
                  SeqIO.write(prokaryotic_lactonase, "prokaryotic_lactonase.fasta", "fasta")

               # Define aligner
               aligner = Align.PairwiseAligner(match_score = 1.0)
               # Calculation and representation of alignments to compare translations from the two tables
               alignements = aligner.align(eukaryotic_lactonase, prokaryotic_lactonase)
               for alignement in alignements:
                  print(alignement)

               # Replacement of low-scoring codons
               def bias_codon(sequence):
                  i = 0
                  list_seq = [sequence[i:i+3] for i in range(0, len(sequence), 3)]
                  print(list_seq)
                  lysine = ['AAG' if elem == 'AAA' else elem for elem in list_seq]
                  threonine = ['ACC' if elem == 'ACA' else elem for elem in lysine]
                  threonine2 = ['ACC' if elem == 'ACT' else elem for elem in threonine]
                  arginine = ['CGC' if elem == 'AGA' else elem for elem in threonine2]
                  arginine2 = ['CGC' if elem == 'CGA' else elem for elem in arginine]
                  arginine3 = ['CGC' if elem == 'AGG' else elem for elem in arginine2]
                  serine = ['AGC' if elem == 'TCA' else elem for elem in arginine3]
                  isoleucine = ['ATC' if elem == 'ATA' else elem for elem in serine]
                  glutamine = ['CAG' if elem == 'CAA' else elem for elem in isoleucine]
                  leucine = ['CTG' if elem == 'CTA' else elem for elem in glutamine]
                  leucine2 = ['CTG' if elem == 'TTA' else elem for elem in leucine]
                  glycine = ['GGC' if elem == 'GGA' else elem for elem in leucine2]
                  str_seq = ''.join(glycine)
                  print(str_seq)
                  
                  str_seq = SeqRecord(Seq(str_seq), id="sble.putida", description="Bias codon transformed gene") # Saving the result in a FASTA file
                  SeqIO.write(str_seq, "bias_codon.fasta", "fasta")

               # Alteration of codons for lactone esterase
               lactonase_gene = str(lactonase.seq)
               bias_codon(lactonase_gene)
               # Alignment test to compare the old to the new translated sequence to verify that there were no errors
               for bias_codon in SeqIO.parse("bias_codon.fasta", "fasta"):
                  bias_protein = bias_codon.translate(table=11)
                  alignements = aligner.align(bias_protein, prokaryotic_lactonase)
                  for alignement in alignements:
                     print(alignement)

                  

Dry lab contribution : The Modeling Guide

Our modeling team has meticulously crafted a comprehensive Flux Balance Analysis Guide, designed to serve as an invaluable resource for your journey in model creation for your chosen organism. Within this guide, each step is intricately detailed, allowing you to not only learn but also actively engage in the process. It empowers you to navigate the intricacies of model construction independently. Whether you're a seasoned researcher or new to the field, this guide is tailored to accommodate varying levels of expertise, ensuring that you can confidently embark on the path of modeling with enhanced knowledge and skills.

Our Tips & Tricks for Future iGEMers!

During the brainstormings of the PseudoMagazine content, we thought about what we would have wanted to know before and during our iGEM adventures. In that way, we came up with a dedicated tips & tricks section in our mag, with the Do's and Dont's of the iGEM experience, a guide on how to run a meeting, and also personal advice from members of the team !