GRASP - Generating random alanine scanned peptides is a peptide mutator that performs conserved substitutions based on inputs from an alanine scan. This was a crucial step in significantly increasing the scope of possible mutations. Existing softwares in the domain only consider surface-level information, ignoring any conformational changes that may occur. GRASP creates combinations of conserved substitutions on selected amino acids that fall within the specified range. Then, five random sequences are chosen from the sample set created. These are then tested and subjected to further analysis. Thus, our software is a one-of-a-kind approach to automating and exponentially simplifying the process of random conserved mutations. This process can be employed to potentially increase the affinity of the peptide to its interacting ligands.
Peptide sequence mutator through Alanine Scanning
For more information, refer to this page on our wiki: Engineering success
Checkout the software at: MIT_MAHE Software tools
The software comprises of the following modules:
Alanine Scan \( \Delta \Delta G \) values BUDE Alanine scan is employed to obtain \( \Delta \Delta G \) values of each residue present in the input.
Conservative mutations
Conserved mutation is a process in which mutations are made within the same type of residues.
For example: We replaced amino acids within the same group, for example, hydrophobic re 3—hydrophobic residues with hydrophobic residues or amino acids of same charge with each other.
Random sampler
Random peptides are selected as samples from the huge sequence list received to reduce the user workload. Note that this selection is pseudo-random.
Command Line Interface (CLI) We can use the software locally on command prompt.
Integrable modules
Our software consists of different modules for the mutator and alanine scan to integrate them into different and more extensive networks by other iGEM teams and parties.
Mutation lock To prevent the mutation of an already modified residue, that part of the sequence was put under a mutation lock
Aggrescan
Inclusion of a BASH script, which takes the output and prepends FASTA headers to each sequence in the text file.
Protein engineering is modifying a protein through substitution, insertion, or deletion to exhibit desired characteristics and properties.
During the process of designing our peptide, we came across the problem of having an extensive sample set of substitutions through trial and error. However, even after this, we could not guarantee an increase in affinity compared to the original peptide as needed in our case. To overcome this problem, we designed this software to provide all the most probable mutations that increase the binding affinity.
Furthermore, we explored other point mutation softwares for our problem; however, they only took surface information into consideration. We decided to take \( \Delta \Delta G \) value of a residue as the parameter for mutation which give an increase in the accuracy of the mutation.
We take \( \Delta \Delta G \)value of each residue derived from BUDE alanine scan as a parameter to do mutations. To make these mutations we set a threshold \( \Delta \Delta G \)range for each residue (in our case, 0 to 1). Only if the \( \Delta \Delta G \) value lies between this range will it be mutated.
Cartesian Product: The Cartesian Product of sets \(A\) and \(B\) is defined as the set of all ordered pairs \((x, y)\) such that \(x\) belongs to \(A\)and \(y\) belongs to \(B\) For example, if \(A = {1, 2}\) and \(B = {3, 4, 5}\), then the Cartesian Product of A and B is \({(1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5)}\). Originally, during a test run, the computational time that the software took for making 3 mutation positions was 2 hours 20 mins. After incorporating the cartesian product into the mutator, the time reduced to 11 mutation positions in 10 seconds.
We first create a Mutater object, which support the following three formats:
The Alanine scanning results from BUDE Alanine scan are parsed through which results in a position array over which mutations are possibly required.
The sequence is taken as a template over which a special array is constructed, with the following steps:
The special array is then passed to the itertools.product()
function, which
evaluates the Cartesian product on the elements of the special array. This results in an iterable object that
contains all the final sequences, which is then stored in the text file.
A trivial random sampler is implemented using random.sample()
on the
sequences array, and then stored in a text file.