Difference between revisions of "Team:Munich/Software"

Line 82: Line 82:
 
                     #                        CascAID V1.0                            #
 
                     #                        CascAID V1.0                            #
 
                     #                                                                #
 
                     #                                                                #
                     #                  Wed Nov  1 04:23:54 2017                      #
+
                     #                  Thu Nov  2 04:23:54 2017                      #
 
                     #                                                                #
 
                     #                                                                #
 
                     #                      IGEM Munich 2017                          #  
 
                     #                      IGEM Munich 2017                          #  
Line 182: Line 182:
 
24      49                                                        # form basepairs
 
24      49                                                        # form basepairs
 
25      48                                                        # this would mean base 22  
 
25      48                                                        # this would mean base 22  
26      47                                                        # pairs with base 49
+
26      47                                                        # pairs with base 51
 
27      46
 
27      46
 
28      45
 
28      45

Revision as of 00:20, 2 November 2017


Software
                    ###################################################################
                    #                                                                 #
                    #                        CascAID V1.0                             #
                    #                                                                 #
                    #                   Thu Nov  2 04:23:54 2017                      #		
                    #                                                                 #
                    #                      IGEM Munich 2017                           # 
                    #                                                                 #
                    ###################################################################


CascAID is a potentially universal tool for nucleic acid detection. Fast adaptation of our platform to new targets requires in silico verification of the crRNA design. Crucial factors for the development of these crRNA designs are the binding of the crRNA to Cas13a, which is mainly determined by its secondary structure, and the uniqueness of the targeting sequence in the transcriptome (to rule out false positive results). To ensure the integrity of the Cas13a-crRNA complex, we developed a python script that uses the established program packages for secondary structures, NUPACK and Mfold. In order to verify the specificity of the targeting sequence, we used the BLASTN-short program to check for similar structures in a transcriptome databank. Additionally, we created a database of crRNA designs that have already worked and made it as extensive as possible given the limited time, checking for collaboration with other teams working with Cas13a, mainly TU Delft. The second branch of software we developed is needed for hardware control in our project. They allow user's devices such as computers and smartphones to control our hardware, Heatbringer and Lightbringer. The repository to our software can be found here.

crRNA Design Verification

There are two main problems regarding the design of crRNA for a diagnostic test. First, the secondary structure of the crRNA needed for Cas13a activity needs to be verified. Secondly, the sequence targeted by the crRNA has to be specific, i.e. there must be no identical sequence in the reference transcriptome of an healthy patient. Otherwise, off-target effects will lead to false positive results since Cas13a is activated even though the pathogen is not present. To address these issues, we developed a software relying on bioinformatic principles such as secondary structure prediction and Basic Local Alignment Search Tool (BLAST).

Secondary Structure Prediction

For secondary structure prediction of the crRNA we utilised the two established program packages in the field, NUPACK and Mfold to compare newly designed crRNA with secondary structures of crRNAs that were already known to be active. These reference crRNA structures were either obtained from actual crystallography data of crRNA in complex with Cas13a, or from structure prediction data of experimentally tested crRNAs. Using secondary structure verification we were able to rule out misfolding crRNA designs prior to experiment. We developed a script for the end user automating this procedure.

NUPACK


NUPACK is a RNA Secondary Structure Prediction package developed by several contributors under the guidance of Prof. Niles A. Pierce at the California Insitute of Technology (Caltech). The source-code is available free-of-charge for academic usage. NUPACK allows the analysis of the partition function, the minimum free energy and the equillibrium base-pairing probabilities of a RNA sequence. For offline usage, we implemented NUPACK locally. We proceeded to implement Mfold as a webserver request. This decision was made because we experienced that in certain cases, only one of the program packages was able to predict the secondary structure of crRNA as described in previous papers, predominantly the paper of Liu et al. published in Cell in 2017 "Two Distant Catalytic Sites Are Responsible for C2c2 RNase Activities". Also, a local run gives you the possibility of using the full spectrum of NUPACK's programs. By the use of several of the the final structure prediction, we estimated whether the crRNA would be active in Cas13a. Furthermore, we experienced that NUPACK sometimes predicts the right secondary structure, it just doesn't represent the most stable structure. With NUPACK's subopt, it is possible to predict more than just the most stable structure. This enables looking at less stable structures which might be more favourable when bound to the protein and comparing these to the structure databank. The output of a suboptimal prediction is given below as the second example. Explanations are included as comments after '#':

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
66                                                                 # length of the sequence
-9.400                                                             # free energy
.....................(.((((((.((((....)))).)))))).)............... # secondary structure
22      51                                                         # IDs of bases that form basepairs
24      49                                                         # form basepairs
25      48                                                         # this would mean base 22 
26      47                                                         # pairs with base 51
27      46
28      45
29      44
31      42
32      41
33      40
34      39
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
66
-9.300
.....................(((((((..((((....)))).)))))))................
22      50
23      49
24      48
25      47
26      46
27      45
28      44
31      42
32      41
33      40
34      39
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %

From this, we can extract the secondary structure in Vienna notation as well as the free energies of the RNA structure to predict the probability of formation in solution with help of the calculation of the full partition function. Using these results, the user can make qualitative assumptions about the activity of the corresponding Cas13a-crRNA complex.

Mfold


Mfold is a webserver for RNA secondary structure prediction developed by Michael Zuker based on his paper "Mfold web server for nucleic acid folding and hybridization prediction" that was published in Nucleic Acids Research in 2003. Since Mfold is not available as a locally buildable binary for every operating system, we developed a script that automatically requests a standardised RNA Fold job from the server, therefore making it available throughout all operating systems. Using the result obtained from this request, the secondary structure is checked via a string comparison in so-called "Vienna" notation. This notation gives base pairing as a string of dots and brackets where a dot represents a non-bonded base and brackets represents paired bases, clarified by a opening bracket "(" at the 5'-end and a closing bracket ")" at the 3'-end of each paired sequence. An example for the output of the program is given below:


#######################################################################################
#################### CascAID Secondary Structure Verification #########################
#######################################################################################



#######################################################################################
##################### NUPACK Secondary Structure Verification #########################
#######################################################################################
	

GOOD NEWS! YOU'VE GOT THE RIGHT SECONDARY STRUCTURE!
YOUR SEQUENCE WAS:

5' GGAUUUAGACUACCCCAAAAACGAAGGGGACUAAAACUGAUAAAGAAGACAGUCAUAAGUGCGGC  3'

      (((((....((((.........)))).)))))                               ####    MATCHED SECONDARY STRUCTURE
   ...(((((....((((.........)))).)))))..((((..........)))).........  ####  PREDICTED SECONDARY STRUCTURE
___________________________________________________________________

		YOUR BACKBONE SEQUENCE HAS BEEN FOUND IN THE DATABANK
		IT CORRESPONDS TO THE BACKBONE SEQUENCE OF: lwaCas13a
______________________________________________________________________________________

Job ended normally. Sun Oct 29 23:46:28 2017
Do you have internet connectivity? [yes/no]yes


#######################################################################################
#################### MFOLD SECONDARY STRUCTURE VERIFICATION ###########################
#######################################################################################



		#################### CAUTION! ##################### 
		mFOLD SECONDARY STRUCTURE DOES NOT FIT OUR DATA BANK
		#################### CAUTION! #####################


YOUR SEQUENCE AND MOST STABLE PREDICTED STRUCTURE IS:

5' GGAUUUAGACUACCCCAAAAACGAAGGGGACUAAAACUGAUAAAGAAGACAGUCAUAAGUGCGG 3'
   ..(((((((((.((((.........)))).......((.....)).....)))).)))))....
______________________________________________________________________________________

Job ended normally. Sun Oct 29 23:47:06 2017


This is also a good example to show that it might happen that one program recognizes the crRNA secondary structure while the other does not. In this case, NUPACK has predicted the structure while Mfold is not able to predict the structure. Even though this is an experimental construct that worked, we did not put the secondary structure prediction of this into the database for Mfold, since it was unable to predict the right structure.

Off-Target Effects

In order to rule out off-target effects for the designed crRNA in diagnostic applications, we developed a script that is able to BLAST the sequence either against whole databases online or a custom database we compiled. This database contains the human transcriptome and those of bacteria common in the human nasal tract as well as modell organisms used in our project:

  1. Homo Sapiens
  2. Escherichia Coli
  3. Bacillus subtilis
  4. Staphylococcus aureus
  5. Corynebacterium diphtheriae
  6. Streptococcus diphtheriae
  7. Haemophillus influenzae

Transcriptomes that are common in the nasal tract but were not available are, among others:

  1. Neisseria family
  2. Staphylococcus epidermidis
  3. Streptococcus pyogenes

All data was retreived from the Transcriptome Release #90 of the ENSEMBL project. The output is generated from the output of a blastn-short run and consists in the example below of all sequences that show sequence identity of 18 bp or higher. For an actual run, the identity would need to be 26 bp or higher in order to actually show off-target effects since Cas13a is selective up to 2 point mutations regarding the binding of crRNA and subsequent RNase activity. The expectation value here describes the number of hits one can expect to find in a random database the same size as the database used for the blastn-short run.

##################################################################
####################### Input Sequence ###########################
##################################################################

Your Sequence was:

GGAUUUAGACUACCCCAAAAACGAAGGGGACUAAAACUGAUAAAGAAGACAGUCAUAAGUGCGGC

Your target sequence thus is:
UGAUAAAGAAGACAGUCAUAAGUGCGGC

Sun Oct 29 23:49:22 2017

##################################################################



##################################################################
####### Following possible off-targets have been identified ######
##################################################################

>seq 0                                                               # ID of alignment
sequence:gnl|BL_ORD_ID|91933 ENSBTAT00000042836.3 cds chromosome:    # location of gene
UMD3.1:3:107697178:107698719:1 gene:ENSBTAG00000030338.3             # gene name and ID 
gene_biotype:protein_coding transcript_biotype:protein_coding        # type of gene
gene_symbol:GJA9 description:gap junction protein alpha 9            # Gene description
[Source:HGNC Symbol;Acc:HGNC:19155]
length:1542                                                          # Length of gene
e value:1.50536                                                      # expectation value
identity:18                                                          # sequence identity count
ATAAAGAAGACAGTCATAA...                                               # alignment
|||||||||||| ||||||...                                               # match/mismatches
ATAAAGAAGACACTCATAA...                                               # alignment

>seq 1
sequence:gnl|BL_ORD_ID|69018 ENSBTAT00000042836.3 cdna 
chromosome:UMD3.1:3:107697178:107698719:1 gene:ENSBTAG00000030338.3 
gene_biotype:protein_coding transcript_biotype:protein_coding gene_symbol:GJA9 
description:gap junction protein alpha 9 
[Source:HGNC Symbol;Acc:HGNC:19155]
length:1542
e value:1.50536
identity:18
ATAAAGAAGACAGTCATAA...
|||||||||||| ||||||...
ATAAAGAAGACACTCATAA... 
___________________________________________________________

Job ended normally. Sun Oct 29 23:49:22 2017


These results have also been saved in:              off_target.out
The full BLAST output can be found in:                     seq.xml

Database


The database program gives you an interface to interact with the MySQL database created for crRNAs that have been shown to work experimentally .


############         Available Detection Targets         #################

[1] Virus
[2] Bacteria

[0] Go back one step

What would you like to detect?2

############         Available Detection Targets         #################

[1] Escherichia coli
[2] Bacillus subtillis

[0] Go back one step

What would you like to detect?1

############             Choose your Target              #################
	
[1] E. Coli 16s rRNA

[0] Go back one step

What would you like to detect?1

###########      The sequence thou art looking for is : ################
	
ACUUUACUCCCUUCCUCCCCGCUGAAA



[9] Exit
[0] Go back one step


However, these still need to be tested for off-target effects experimentally since in silico screening can only confirm specificity to a certain amount of certainty.

Hardware control

The software for reading out the fluorescence detector is described in the Hardware section. All software developed for hardware can be found in our GitHub repository.

References

  1. . M. Dirks, J. S. Bois, J. M. Schaeffer, E. Winfree, and N. A. Pierce. "Thermodynamic analysis of interacting nucleic acid strands."(2007) SIAM Rev, 49:65-88.
  2. R. M. Dirks and N. A. Pierce. "An algorithm for computing nucleic acid base-pairing probabilities including pseudoknots." (2004) J. Comput. Chem., 25:1295-1304.
  3. R. M. Dirks and N. A. Pierce. "A partition function algorithm for nucleic acid secondary structure including pseudoknots." (2003) J Comput Chem, 24:1664-1677.
  4. M. Zuker, D. H. Mathews and D. H. Turner. "Algorithms and Thermodynamics for RNA Secondary Structure Prediction: A Practical Guide" (1999) RNA Biochemistry and Biotechnology 11-43 J. Barciszewski and B. F. C. Clark, eds., NATO ASI Series, Kluwer Academic Publishers, Dordrecht, NL
  5. J.-M. Rouillard, M. Zuker and E. Gulari. "OligoArray 2.0: Thermodynamicaly improved oligonucleotide design for microarrays." (2003) Nucleic Acids Res. 31:12, 3057-3062.
  6. S.F. Altschul, W. Gish, W. Miller, E.W. Myers and D.J. Lipman "Basic local alignment search tool." (1990) J. Mol. Biol. 215:403-410.