1. Preparation ( )

advertisement
1. Preparation
A. Download the R software and Matlab7.0 software from the Internet.
(http://www.r-project.org/)
B. Build the formatted excel file with the suffix “csv”, which will be connected to the software
in the next step. The formatted excel file should contain three lists as shown in FigS1.A.
FigS1.A
2. R software running (Take ΔCt [β-actin] for example)
Part 1: R code for equation building
> setwd("C:/users/Desktop")
——Illustration: We set the software running environment to be the computer path input.
> data1 = read.csv(file="AI.csv",header=T)
> anit=data1[data1$index=="anit"]
> anideltact=data1[data1$index=="anideltact"]
> anipmi=data1[data1$index=="anipmi"]
——Illustration: “data1” connects the file “AI.csv” to the running procedure. The parameters
that will be used in the running procedure are meanwhile connected to the corresponding items in
the excel file “AI.csv”. The “AI.csv” file contains the animal information; “anit” is short for
“animal temperature”, “anideltact” is short for “animal △Ct value” and “anipmi” short for “animal
pmi”.
> fit1_A=lm(anideltact~anit+I(anit*anipmi)+anipmi+I(anipmi^2),data=data1);
> summary(fit1_A);
——Illustration: Fitting the animal data in “AI.csv” to the hypothetical equation
“anideltact=anit+I(anit*anipmi)+anipmi+I(anipmi^2)” and the R software will summarize the
result of the fitting to the surfaced equation. The “I” means the coefficient of each item.
Call:
lm(formula = anideltact ~ anit + I(anit * anipmi) + anipmi + I(anipmi^2), data = da
ta1)
Residuals:
Min
1Q Median
3Q
Max
-0.95520 -0.28573 -0.01434 0.28790 1.08491
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)
2.867e+00 1.830e-01 15.668 < 2e-16 ***
anit
4.511e-02 7.600e-03 5.936 4.52e-07 ***
I(anit * anipmi) 5.654e-04 1.134e-04 4.986 1.06e-05 ***
anipmi
3.803e-02 5.240e-03 7.257 5.48e-09 ***
I(anipmi^2)
-1.579e-04 3.469e-05 -4.552 4.33e-05 ***
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4338 on 43 degrees of freedom
Multiple R-squared: 0.9417, Adjusted R-squared: 0.9362
F-statistic: 173.5 on 4 and 43 DF, p-value: < 2.2e-16
——Illustration: Whether the items are of statistical significance is shown by the software.
Anything with a P value less than 0.01 will get a “*” and the equation will be combined. So, for
example, the final equation here will be:
“anideltact=0.04511*anit+0.0005654*anit*anipmi+0.03803
*anipmi-0.0001579*anipmi^2+2.867”. The coefficient and the numbers of items to combine in the
equation will change if other markers are used.
> par(mfrow=c(2,2))
> plot(fit1_A)
Hit <Return> to see next plot:
——Illustration: This step shows whether the residuals between the actual Ct and fitted Ct
exhibit a standard normal distribution.
Part 2: R code for estimation of the difference between real PMI and estimated PMI in the
36 verification samples
> data2 = read.csv(file="36I.csv",header=T);
> 36deltact=data2[data2$index=="36deltact"]
> realpmi=data2[data2$index=="36pmi"]
——Illustration: “data2” connects the file “36I.csv” to the running procedure. The parameters
that will be used in the running procedure are meanwhile connected to the corresponding items in
the excel file “36I.csv”. The “36I.csv” file contains information about the 36 rat samples. The
“realpmi” is the known PMI of the 36 verification samples, while “36deltact” is short for their
△Ct value.
> PMI = seq(from=0,to=120,by=0.1)
> PMI
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
[12] 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1
……
[1200] 119.9 120.0
> str(PMI)
num [1:1201] 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 ...
——Illustration: This step sets the “PMI” as a series of number from 0 to 120 using an interval
of 0.1. In the next step, the software searches these “PMI” until the smallest deviation between
its corresponding △Ct value and the known △Ct value is found, outputting the optimal PMI as
our estimated PMI.
> estPMI=rep(NA,nrow(data2));
——Illustration: This step sets estPMI as a series of numbers that correspond to each verification
samples in data 2.
> for (i in 1:nrow(data2)) {36deltact = data2$36deltact[i];
+ 36t = data2$36t[i];
+ id =
which.min(abs(0.04511*36t+0.0005654*36t*PMI+0.03803*PMI-0.0001579*PMI^2+2.867-36
deltact));
+ estPMI[i] = PMI[id];}
> estPMI
[1] 78.1 92.9 63.3 85.5 67.0 55.9 62.4 21.8 92.9 74.4 31.9
……
[144] 38.9 54.0 8.6 120.0
——Illustration: This step is a cycle operation that searches “PMI” until it finds the smallest
deviation between its corresponding △Ct value and the known △Ct value in data2, and then
outputs the optimal PMI as our estimated PMI.
> realPMI=data2$realPMI
> realPMI
[1] 5.50 36.00 25.00 11.00 13.50 5.50 10.00 20.50 14.50 7.00 4.00
……
[144] 20.33 13.00 6.50 10.00
> estPMI-realPMI
[1] 72.60 56.90 38.30 74.50 53.50 50.40 52.40 1.30 78.40 67.40
……
[141] 10.00 112.00 112.33 18.57 41.00 2.10 110.00
> write.csv(estPMI-realPMI, file="pmiESTIMATION.csv")
——Illustration: The final step is to output the deviation between the estimated PMI and the real
PMI of each case as an excel file.
3. Matlab code for transforming the equation into visual 3 dimensional mathematical
model (Take △Ct [β-actin] for example)
x=0:1:35;
y=0:4:144;
[x,y]=meshgrid(x,y);
z=0.04511*x+0.0005654*x.*y +0.03803*y -0.0001579*y.^2+2.867
surf(x,y,z);
set(gca,'XTick',[5:10:35],'FontWeight','bold');
set(gca,'YTick',[0:24:144],'FontWeight','bold');
xlabel('\bftemperature'),ylabel('\bfPMI'),zlabel('\bf\DeltaCt value');
title('\bfMyocardium(\itActb)');pause;
——Illustration: First, this step should transform the equation from
“anideltact=0.04511*anit+0.0005654*anit*anipmi+0.03803*anipmi −0.0001579*anipmi^2+2.867”
to “z=0.04511*x+0.0005654*x.*y +0.03803*y−0.0001579*y.^2+2.867”. The horizontal and
vertical coordinates are set as the starting point and ending point with the interval value between
them. There is no more tautology here regarding the general setting of the font and title. The
software will output the model as FigS1.B.
FigS1.B
Download