Team:UESTC-Software/Validation.html

From 2014.igem.org

Validation | UESTC Software 2014

Validation

Complexity Analysis

1 Notation

n Number of candidate sgRNAs

nh Number of hits in cache

nm Number of misses in cache

nt System will only output nt results

m Number of possible-o_target sgRNAs

l Length of sgRNA

tcd Time cost on connecting database

trd Approximate time cost on one database operation

2 Analysis

1. System will connect to Database, which costs tcd.

2. Retrieve data from database, which costs trd* (n + m).

3. System calculate each n candidate sgRNAs' scores. For nh sgRNAs which has already calculated before, system will cost only O(nh). For nm others, system will calculate the scores. According to our algorithm, those sgRNAs will compare every m possible- o_target sgRNAs. In each comparison, algorithm compare all l nucleobase, make a little adds and multiplies, package result to strings and save strings to database. All nm calculation will cost nm* (m*l + trd).

4. System will sort all n result, which cost O(n log2 n).

5. Output result costs O(nt).

3 Run Time

tcd + trd* (n + m) + O(nh) + nm* (m* l + trd) + O(n log2 n) + O(nt)

Software Validation

In order to verify the availability of our software, we used the CRISPR-P and Optimized CRISPR Design these two CRISPR tools, under the condition of the same input sequence, to compare their results with ours.

We use the same input sequence:

TTTGAGGTCAATACAAATCCTATTTCTTGTGGTTTTCTTTCCTTCACTTAGCTATGGATGGTTTATCTTC ATTTGTTATATTGGATACAAGCTTTGCTACGATCTACATTTGGGAATGTGAGTCTCTTATTGTAACCTTA GGGTTGGTTTATCTCAAGAATCTTATTAATTGTTTGGACTGTTTATGTTTGGACATTTATTGTCATTCTT
(NC_003070.9,Arabidopsis thaliana ,chromosome 1,211-420)

The output results of CRISPR-P, Optimized CRISPR Design and CRISPR-X respectively are:

CRISPR-P

Optimized CRISPR Design

CRISPR-X

Comparison:

(a)The number of sgRNA results

As we have seen, the number of sgRNA results of three software are all 14, in addition, the 14 sgRNA sequences are all the same(just the rank are different), proves our software’s approach to find sgrna is correct.

(b)The ranking of sgRNA results

Since three software have different scoring algorithm, so the rankings are not exactly the same. In addition, for our scoring which contains an efficacy score, so the rank of CRISPR-X and the other two software vary greatly. However, for specific scores, in some degree, the ranking trend of our software and the other two software are similar.

Species:Arabidopsis thaliana ,location:chromosome 1,211-420
Sequence Specificity scoe Efficacy score Total score Rank (CRISPR-P) Rank (CRISPR - X Specificity) Rank (Optimized CRISPR Design)
TTCCTTCACTTAGCTATGGATGG 49 15 64 1 1(3) 5
AGTCTCTTATTGTAACCTTAGGG 48 0 48 2 3(8) 2
TCTTATTGTAACCTTAGGGTTGG 48 0 48 3 4(7) 1
CTTGAGATAAACCAACCCTAAGG 49 15 64 4 2(2) 3
GCTTTGCTACGATCTACATTTGG 48 32 80 5 5(1) 4
TTCTTTCCTTCACTTAGCTATGG 47 0 47 6 7(9) 7
AACCATCCATAGCTAAGTGAAGG 48 15 63 7 6(5) 6
AATACAAATCCTATTTCTTGTGG 45 0 45 8 8(10) 9
GAGTCTCTTATTGTAACCTTAGG 45 17 63 9 9(4) 8
CAAGAATCTTATTAATTGTTTGG 43 0 43 10 10(11) 11
CTTTGCTACGATCTACATTTGGG 42 0 42 11 11(12) 10
TTGTTTGGACTGTTTATGTTTGG 36 0 36 12 12(13) 12
TTTATCTTCATTTGTTATATTGG 29 0 29 13 14(14) 13
GAAAGAAAACCACAAGAAATAGG 35 17 53 14 13(6) 14
 In parentheses represents the total rank

(c) The position and strand of sgRNA results

Through our careful comparison, we found that the location information of sgrna of CRISPR-X is exactly the same with CRISPR-P (Optimized CRISPR Design pages doesn’t show the exact location), the results further illustrate the the availability of our software.

Species:Arabidopsis thaliana ,location:chromosome 1,211-420
sgRNA sequence Position, strand
CRISPR-P CRISPR-X Optimized CRISPR Design
TTCCTTCACTTAGCTATGGATGG 249,"+" 249,"+" /
AGTCTCTTATTGTAACCTTAGGG 331,"+" 331,"+" /
TCTTATTGTAACCTTAGGGTTGG 335,"+" 335,"+" /
CTTGAGATAAACCAACCCTAAGG 346,"-" 346,"-" /
GCTTTGCTACGATCTACATTTGG 301,"+" 301,"+" /
TTCTTTCCTTCACTTAGCTATGG 245,"+" 245,"+" /
AACCATCCATAGCTAAGTGAAGG 251,"-" 251,"-" /
AATACAAATCCTATTTCTTGTGG 220,"+" 220,"+" /
GAGTCTCTTATTGTAACCTTAGG 330,"+" 330,"+" /
CAAGAATCTTATTAATTGTTTGG 365,"+" 365,"+" /
CTTTGCTACGATCTACATTTGGG 302,"+" 302,"+" /
TTGTTTGGACTGTTTATGTTTGG 380,"+" 380,"+" /
TTTATCTTCATTTGTTATATTGG 272,"+" 272,"+" /
GAAAGAAAACCACAAGAAATAGG 229,"-" 229,"-" /

For example, the comparison figure of the sgRNA of ranking 3rd and 12th (in CRISPR-P):

(d)The number of off-target sites(PAM is NGG) of sgRNA results

To verify the availability of a CRISPR software, the correctness of identifying potential off-target number is a very important indicator. For the number of off-target sites for 14 sgRNA, we draw the following table for statistical analysis (here, we only count off-target sites of the PAM is NGG, because the total number of off-target sites of the other two software are inconsistent, although we can find the number of off-target sites containing PAM is NGG and NAG).

Species:Arabidopsis thaliana ,location:chromosome 1,211-420
sgRNA sequence Specificity scoe Efficacy score Total score Number of off-target sites(PAM is NGG)
CRISPR-X CRISPR-P Optimized CRISPR Design
TTCCTTCACTTAGCTATGGATGG 49 15 64 3 3(4) 3(12)
AGTCTCTTATTGTAACCTTAGGG 48 0 48 4 4(4) 4(10)
TCTTATTGTAACCTTAGGGTTGG 48 0 48 3 3(5) 3(7)
CTTGAGATAAACCAACCCTAAGG 49 15 64 3 3(7) 3(10)
GCTTTGCTACGATCTACATTTGG 48 32 80 5 5(6) 5(11)
TTCTTTCCTTCACTTAGCTATGG 47 0 47 9 9(16) 9(31)
AACCATCCATAGCTAAGTGAAGG 48 15 63 5 5(11) 5(14)
AATACAAATCCTATTTCTTGTGG 45 0 45 13 13(17) 13(33)
GAGTCTCTTATTGTAACCTTAGG 45 17 63 8 8(11) 8(17)
CAAGAATCTTATTAATTGTTTGG 43 0 43 21 /(35) 21(57)
CTTTGCTACGATCTACATTTGGG 42 0 42 17 17(18) 17(22)
TTGTTTGGACTGTTTATGTTTGG 36 0 36 37 /(48) /(70)
TTTATCTTCATTTGTTATATTGG 29 0 29 57 /(96) /(157)
GAAAGAAAACCACAAGAAATAGG 35 17 53 44 /(94) /(158)
/ represents unknown, in parentheses represents the total number(including NAG and NGG)

Since CRISPR-P's results page displays only 20 off-target sites, Optimized CRISPR Design’s results page displays only 50 off-target sites, so we can see from the table: For the previous 11 sgRNA, the number of our software’s NGG off-target sites are exactly the same with the other two software. This result can be a strong evidence for the availability of our software.

For example, the comparison figure of the sgRNA of ranking 5rd (in CRISPR-P):

CRISPR-P-------5 NGG off-target sites

CRISPR-X------5 NGG off-target sites

Optimized CRISPR Design ------5 NGG off-target sites

The comparison figure of the sgRNA of ranking 9th (in CRISPR-P):

CRISPR-P-------8 NGG off-target sites

CRISPR-X------8 NGG off-target sites

Optimized CRISPR Design ------8 NGG off-target sites

In summary, in the case of the same input sequence, the output sgRNA results of our software have the same number of the output sgRNA, the same sequence information, the same location information and the same NGG off-target sites with the other two CRISPR design tools—CRISPR-P and Optimized CRISPR Design. Therefore, our software—CRISPR-X, is valid and available.

Algorithm Validation

In order to confirm our software is consistent with the experimental results, we use the experimental data on the MLE Cleavage with the different mismatches, and we compare our scoring results to corresponding to the experimental data, in addition find the correlation coefficient of them.

(A)Single mismatch

First, we use aggregate data from single-mismatch guide RNAs for 15 EMX1 targets in literature [1] (It’s relation figure is figure 2C, heat map for relative SpCas9 cleavage efficiency for each possible RNA: DNA base pair).

Heat map for relative SpCas9 cleavage efficiency for each possible RNA:DNA base pair

We use this set of data to determine the relationship between our software score with the MLE Cleavage for single mismatch position. MATLAB program is shown below:

	data=load('E:\matlab\work\igem_data.mat');
	[m n]=size(data.dataigem);
	for i=1:n
	    ave(i)=mean(data.dataigem(:,i));
	end
	M=[0,0,0.014,0,0,0.395,0.317,0,0.389,0.079,0.445,0.508,0.613,0.851,0.732,0.828,0.615,0.804,0.685,0.583];
	for j=2:20
	S(j-1)=(4*exp(1-M(j)))/((4*j+19)/19);
	end
	x=19:-1:1;
	figure(1);%title('Single mismatch,correlation coefficient=0.8840');

	subplot(1,2,1);
	stem(x,ave);
	title('The relaition between the single mismatch location and cleavage activity ');
	xlabel('location/nt');ylabel('cleavage activity');
	subplot(1,2,2);
	stem(x,S,'g');
	title('The figure of the single mismatch location and mismatch score  ');
	xlabel('location/nt');ylabel('score');

	figure(2);
	plot(x,ave,'b',x,S,'r');
	legend('mismatch cleavage activity','mismatch score');
	title('The contrast figure of the single mismatch cleavage activity and mismatch score  ');
	xlabel('location/nt');ylabel('amplitude');
	p=polyfit(ave,S,1)
	y=p(1)*ave+p(2);%Fitting equation of the straight line
	figure(3);
	plot(ave,S,'b',ave,y,'r');
	title('The relation of the single mismatch location and mismatch score  ');
	xlabel('Mismatch cleavage activity');ylabel('Mismatch score');
	legend('Relation curve','Fitting straight line');

	R=corrcoef(ave,S)%find the correlation coefficient

The result and figures are:

Therefore, the correlation coefficient between the single mismatch cleavage activity and CRISPR-X mismatch score is 0.8840. And the fitting equation of the straight line is: Y=0.1872*X+0.0987. (X stands for mismatch score).

(B) Multiple mismatches

We next explored the effect between multiple base mismatches on SpCas9 target activity and our mismatch score. We use data of sets of guide RNAs that contained varying combinations of mismatches to investigate the effect of mismatch number, position and spacing on SpCas9 target cleavage activity for four targets within the EMX1 gene. [1]

SpCas9 target cleavage activity for multiple mismatches [1]

(a) Two concatenated mismatches

MATLAB program is shown below:

	data=load('E:\matlab\work\data2misc.mat');
	[m n]=size(data.data2misc);
	for i=1:n
	    ave(i)=mean(data.data2misc(:,i));
	end
	N=[19 20;17 18;15 16;13 14;11 12;9 10;7 8;5 6;3 4];
	M=[0,0,0.014,0,0,0.395,0.317,0,0.389,0.079,0.445,0.508,0.613,0.851,0.732,0.828,0.615,0.804,0.685,0.583];
	for j=1:n
	    d0(j)=mean(N(j,:));
	    S(j)=(exp(1-M(N(j,1)))+exp(1-M(N(j,2))))/((4*d0(j)+19)/19);
	end
	x=1:n;
	subplot(1,2,1);
	stem(x,ave);
	title('The two concatenated mismatches cleavage activity ');
	xlabel('The serial number');ylabel('cleavage activity');
	subplot(1,2,2);
	stem(x,S,'g');
	title('The two concatenated mismatches score  ');
	xlabel('The serial number');ylabel('score');
	p=polyfit(S,ave,1)
	y=p(1)*S+p(2);%Fitting equation of the straight line
	figure(2);
	plot(S,ave,'b',S,y,'r');
	title('The relation of the two concatenated mismatches cleavage activity and mismatch score  ');
	xlabel('Mismatch score');ylabel('Mismatch cleavage activity');
	legend('Relation curve','Fitting straight line');
	R=corrcoef(ave,S)

The result and figures are:

Therefore, the correlation coefficient between the two concatenated mismatches cleavage activity and CRISPR-X mismatch score is 0.8902. And the fitting equation of the straight line is: Y=0.0445*X-0.0103. (X stands for mismatch score).

(b) Two interspaced mismatches

MATLAB program is shown below:

	data=load('E:\matlab\work\data2misi.mat');
	[m n]=size(data.data2misi);
	for i=1:n
	    ave(i)=mean(data.data2misi(:,i));
	end
	N=[18 20;15 20;11 20;6 20;1 20;16 18;13 18;9 18;4 18;14 16;11 16;7 16;2 16];
	M=[0,0,0.014,0,0,0.395,0.317,0,0.389,0.079,0.445,0.508,0.613,0.851,0.732,0.828,0.615,0.804,0.685,0.583];
	for j=1:n
	    d0(j)=mean(N(j,:));
	    S(j)=(exp(1-M(N(j,1)))+exp(1-M(N(j,2))))/((4*d0(j)+19)/19);
	end
	x=1:n;
	subplot(1,2,1);
	stem(x,ave);
	title('The two interspaced mismatches cleavage activity ');
	xlabel('The serial number');ylabel('cleavage activity');
	subplot(1,2,2);
	stem(x,S,'g');
	title('The two interspaced mismatches score  ');
	xlabel('The serial number');ylabel('score');
	p=polyfit(S,ave,1)
	y=p(1)*S+p(2);%Fitting equation of the straight line
	figure(2);
	plot(S,ave,'b',S,y,'r');
	title('The relation of the two interspaced mismatches cleavage activity and mismatch score  ');
	xlabel('Mismatch score');ylabel('Mismatch cleavage activity');
	legend('Relation curve','Fitting straight line');
	R=corrcoef(ave,S)

The result and figures are:

Therefore, the correlation coefficient between the two interspaced mismatches cleavage activity and CRISPR-X mismatch score is 0.7688. And the fitting equation of the straight line is: Y=0.0866*X-0.0353. (X stands for mismatch score).

(c) Three concatenated mismatches

MATLAB program is shown below:

	data=load('E:\matlab\work\data3misc.mat');
	[m n]=size(data.data3misc);
	for i=1:n
	    ave(i)=mean(data.data3misc(:,i));
	end
	N=[17 18 19;14 15 16;11 12 13;8 9 10;5 6 7;2 3 4];
	M=[0,0,0.014,0,0,0.395,0.317,0,0.389,0.079,0.445,0.508,0.613,0.851,0.732,0.828,0.615,0.804,0.685,0.583];
	for j=1:n
	    d0(j)=mean(N(j,:));
	    S(j)=4/9*(exp(1-M(N(j,1)))+exp(1-M(N(j,2)))+exp(1-M(N(j,3))))/((4*d0(j)+19)/19);
	end
	x=1:n;
	subplot(1,2,1);
	stem(x,ave);
	title('The three concatenated mismatches cleavage activity ');
	xlabel('The serial number');ylabel('cleavage activity');
	subplot(1,2,2);
	stem(x,S,'g');
	title('The three concatenated mismatches score  ');
	xlabel('The serial number');ylabel('score');
	p=polyfit(S,ave,1)
	y=p(1)*S+p(2);%Fitting equation of the straight line
	figure(2);
	plot(S,ave,'b',S,y,'r');
	title('The relation of the three concatenated mismatches cleavage activity and mismatch score  ');
	xlabel('Mismatch score');ylabel('Mismatch cleavage activity');
	legend('Relation curve','Fitting straight line');
	R=corrcoef(ave,S)

The result and figures are:

Therefore, the correlation coefficient between the three concatenated mismatches cleavage activity and CRISPR-X mismatch score is 0.8560. And the fitting equation of the straight line is: Y=0.0175*X-0.0082. (X stands for mismatch score).

(d) Three interspaced mismatches

MATLAB program is shown below:

	data=load('E:\matlab\work\data3misi.mat');
	[m n]=size(data.data3misi);
	for i=1:n
	    ave(i)=mean(data.data3misi(:,i));
	end
	N=[16 18 20;14 17 20;12 16 20;10 15 20;14 16 18;12 15 18;10 14 18;8 13 18];%The matrix element represents the position of the sgrna
	M=[0,0,0.014,0,0,0.395,0.317,0,0.389,0.079,0.445,0.508,0.613,0.851,0.732,0.828,0.615,0.804,0.685,0.583];%The weight of each position
	for j=1:n
	    d0(j)=mean(N(j,:));
	    S(j)=4/9*(exp(1-M(N(j,1)))+exp(1-M(N(j,2)))+exp(1-M(N(j,3))))/((4*d0(j)+19)/19);%Find the Smm
	end
	x=1:n;
	subplot(1,2,1);
	stem(x,ave);
	title('The three interspaced mismatches cleavage activity ');
	xlabel('The serial number');ylabel('cleavage activity');
	subplot(1,2,2);
	stem(x,S,'g');
	title('The three interspaced mismatches score  ');
	xlabel('The serial number');ylabel('score');
	p=polyfit(S,ave,1)
	y=p(1)*S+p(2);%Fitting equation of the straight line
	figure(2);
	plot(S,ave,'b',S,y,'r');
	title('The relation of the three interspaced mismatches cleavage activity and mismatch score  ');
	xlabel('Mismatch score');ylabel('Mismatch cleavage activity');
	legend('Relation curve','Fitting straight line');
	R=corrcoef(ave,S)%Find the the correlation coefficient

The result and figures are:

Therefore, the correlation coefficient between the three interspaced mismatches cleavage activity and CRISPR-X mismatch score is 0.6092. And the fitting equation of the straight line is: Y=0.0065*X-0.0018. (X stands for mismatch score).

In summary, the correlation coefficient of the above-mentioned five different conditions (single mismatch, two concatenated mismatches, two interspaced mismatches, three concatenated mismatches and three interspaced mismatches) respectively are: 0.8840, 0.8902, 0.7688, 0.8566, and 0.6092. The correlation coefficients are all over 0.6, and three correlation coefficients are over 0.85. In some extent, this result demonstrated the validity and availability of our scoring algorithm.

    Reference:
  • [1] Hsu, P. D., Scott, D. A., Weinstein, J. A., Ran, F. A., Konermann, S., Agarwala, V., ... & Zhang, F. (2013). DNA targeting specificity of RNA-guided Cas9 nucleases. Nature biotechnology, 31(9), 827-832.

Complexity Analysis
Software Validation
Algorithm Validation