BIOL478/S14:Microarray Data Analysis
From OpenWetWare
(deleted scaling and centering step) |
(→Perform statistical analysis on the ratios: fixed referenes to wt and normalization) |
||
Line 41: | Line 41: | ||
* Insert a new worksheet into your Excel spreadsheet and name it "statistics". | * Insert a new worksheet into your Excel spreadsheet and name it "statistics". | ||
- | * Go back to the " | + | * Go back to the "normalized" worksheet, Select All and Copy. Go to your new "statistics" worksheet, click on the upper, left-hand cell (cell A1) and Select "Paste Special" from the Edit menu. A window will open: click on the radio button for "Values" and click OK. This will paste the numerical result into your new worksheet instead of the equation which must make calculations on the fly. |
** There may be some non-numerical values in some of the cells in your worksheet. This is due to errors created when Excel tries to compute an equation on a cell that has no data. We need to go through and remove these error messages before going on to the next step. | ** There may be some non-numerical values in some of the cells in your worksheet. This is due to errors created when Excel tries to compute an equation on a cell that has no data. We need to go through and remove these error messages before going on to the next step. | ||
- | ** Scan through your spreadsheet to find an example of the error message. Then go to the Edit menu and Select Replace. A window will open, type the text you are replacing in the "Find what:" field. In the "Replace with:" field, enter a single space character. Click on the button "Replace All" and record the number of replacements | + | ** Scan through your spreadsheet to find an example of the error message. Then go to the Edit menu and Select Replace. A window will open, type the text you are replacing in the "Find what:" field. In the "Replace with:" field, enter a single space character. Click on the button "Replace All" and record the number of replacements in your lab notebook. |
- | + | * Go to the empty columns to the right on your worksheet. Create new column headings in the top cells to label the average log fold changes that you will compute. Name them with the pattern <dSWI4>_<AvgLogFC>_<tx> where you use the appropriate text within the <> and where x is the time. For example, "dSWI4_AvgLogFC_t30". | |
- | * Go to the empty columns to the right on your worksheet. Create new column headings in the top cells to label the average log fold changes that you will compute. Name them with the pattern < | + | |
* Compute the average log fold change for the replicates for each timepoint by typing the equation: | * Compute the average log fold change for the replicates for each timepoint by typing the equation: | ||
=AVERAGE(''range of cells in the row for that timepoint'') | =AVERAGE(''range of cells in the row for that timepoint'') | ||
Line 52: | Line 51: | ||
Copy this equation and paste it into the rest of the column. | Copy this equation and paste it into the rest of the column. | ||
* Create the equation for the rest of the timepoints and paste it into their respective columns. ''Note that you can save yourself some time by completing the first equation for all of the averages and then copy and paste all the columns at once.'' | * Create the equation for the rest of the timepoints and paste it into their respective columns. ''Note that you can save yourself some time by completing the first equation for all of the averages and then copy and paste all the columns at once.'' | ||
- | * Go to the empty columns to the right on your worksheet. Create new column headings in the top cells to label the T statistic that you will compute. Name them with the pattern < | + | * Go to the empty columns to the right on your worksheet. Create new column headings in the top cells to label the T statistic that you will compute. Name them with the pattern <dSWI4>_<Tstat>_<tx> where you use the appropriate text within the <> and where x is the time. For example, "dSWI4_Tstat_t30". You will now compute a T statistic that tells you whether the normalized average log fold change is significantly different than 0 (no change in expression). Enter the equation into the second cell below the column heading: |
=AVERAGE(''range of cells'')/(STDEV(''range of cells'')/SQRT(''number of replicates'')) | =AVERAGE(''range of cells'')/(STDEV(''range of cells'')/SQRT(''number of replicates'')) | ||
For example, your equation might read: | For example, your equation might read: | ||
=AVERAGE(C2:F2)/(STDEV(C2:F2)/SQRT(4)) | =AVERAGE(C2:F2)/(STDEV(C2:F2)/SQRT(4)) | ||
(NOTE: in this case the number of replicates is 4. Be careful that you are using the correct number of parentheses.) Copy the equation and paste it into all rows in that column. Create the equation for the rest of the timepoints and paste it into their respective columns. ''Note that you can save yourself some time by completing the first equation for all of the T statistics and then copy and paste all the columns at once.'' | (NOTE: in this case the number of replicates is 4. Be careful that you are using the correct number of parentheses.) Copy the equation and paste it into all rows in that column. Create the equation for the rest of the timepoints and paste it into their respective columns. ''Note that you can save yourself some time by completing the first equation for all of the T statistics and then copy and paste all the columns at once.'' | ||
- | * Go to the empty columns to the right on your worksheet. Create new column headings in the top cells to label the P value that you will compute. Name them with the pattern < | + | * Go to the empty columns to the right on your worksheet. Create new column headings in the top cells to label the P value that you will compute. Name them with the pattern <dSWI4>_<Pval>_<tx> where you use the appropriate text within the <> and where x is the time. For example, "dSWI4_Pval_t30". In the cell below the label, enter the equation: |
=TDIST(ABS(''cell containing T statistic''),''degrees of freedom'',2) | =TDIST(ABS(''cell containing T statistic''),''degrees of freedom'',2) | ||
For example, your equation might read: | For example, your equation might read: |
Revision as of 13:47, 29 April 2014
Laboratory 10: Microarray Data Analysis Tuesday, April 29, and Thursday, May 1
- Please complete the CURE post-course survey.
Contents |
Background
This is a list of steps required to analyze DNA microarray data.
- Quantitate the fluorescence signal in each spot
- Calculate the ratio of red/green fluorescence
- Log transform the ratios
- Normalize the ratios on each microarray slide
- Steps 1-4 are performed by the GenePix Pro software.
- Normalize the ratios for a set of slides in an experiment
- Step 5 was performed for you by Katrina using a script written in the R statistical programming language
- You will perform the following steps:
- Perform statistical analysis on the ratios
- Compare individual genes with known data
- Steps 6-7 are performed in Microsoft Excel
- Pattern finding algorithms (clustering)
- We will use software called STEM for clustering
- Map onto biological pathways
- We will use software called GenMAPP for mapping onto biological pathways
We will combine the data that you obtained in the Δswi4 cold shock and recovery experiment for flasks 3 and 4 with data obtained by the Spring 2013 class for flasks 1 and 2.
You will download an Excel spreadsheet that contains the normalized log fold changes from MyLMUConnect <insert link> for use in the following protocol.
Experimental Design
- On the spreadsheet, each row contains the data for one gene (one spot on the microarray). The first column (labeled "MasterIndex") numbers the rows in the spreadsheet so that we can match the data from different experiments together later. The second column (labeled "ID") contains the gene identifier from the Saccharomyces Genome Database. Each subsequent column contains the normalized log_{2} ratio of the red/green fluorescence from each microarray hybridized in the experiment (steps 1-5 above having been done for you by the scanner software and R).
- Each of the column headings from the data begin with the experiment name ("dSWI4" for the Δswi4 data). "LogFC" stands for "Log_{2} Fold Change" which is the Log_{2} red/green ratio. The timepoints are designated as "t" followed by a number in minutes. Replicates are numbered as "-1", "-2", etc. after the timepoint, indicating which flask the cells were harvested from.
- The timepoints are t30, t60 (cold shock at 13°C) and t90 and t120 (cold shock at 13°C followed by 30 or 60 minutes of recovery at 30°C).
- There are four replicates for each timepoint.
Perform statistical analysis on the ratios
We are going to perform this step on the normalized data that you downloaded from MyLMUConnect.
- Insert a new worksheet into your Excel spreadsheet and name it "statistics".
- Go back to the "normalized" worksheet, Select All and Copy. Go to your new "statistics" worksheet, click on the upper, left-hand cell (cell A1) and Select "Paste Special" from the Edit menu. A window will open: click on the radio button for "Values" and click OK. This will paste the numerical result into your new worksheet instead of the equation which must make calculations on the fly.
- There may be some non-numerical values in some of the cells in your worksheet. This is due to errors created when Excel tries to compute an equation on a cell that has no data. We need to go through and remove these error messages before going on to the next step.
- Scan through your spreadsheet to find an example of the error message. Then go to the Edit menu and Select Replace. A window will open, type the text you are replacing in the "Find what:" field. In the "Replace with:" field, enter a single space character. Click on the button "Replace All" and record the number of replacements in your lab notebook.
- Go to the empty columns to the right on your worksheet. Create new column headings in the top cells to label the average log fold changes that you will compute. Name them with the pattern <dSWI4>_<AvgLogFC>_<tx> where you use the appropriate text within the <> and where x is the time. For example, "dSWI4_AvgLogFC_t30".
- Compute the average log fold change for the replicates for each timepoint by typing the equation:
=AVERAGE(range of cells in the row for that timepoint)
into the second cell below the column heading. For example, your equation might read
=AVERAGE(C2:F2)
Copy this equation and paste it into the rest of the column.
- Create the equation for the rest of the timepoints and paste it into their respective columns. Note that you can save yourself some time by completing the first equation for all of the averages and then copy and paste all the columns at once.
- Go to the empty columns to the right on your worksheet. Create new column headings in the top cells to label the T statistic that you will compute. Name them with the pattern <dSWI4>_<Tstat>_<tx> where you use the appropriate text within the <> and where x is the time. For example, "dSWI4_Tstat_t30". You will now compute a T statistic that tells you whether the normalized average log fold change is significantly different than 0 (no change in expression). Enter the equation into the second cell below the column heading:
=AVERAGE(range of cells)/(STDEV(range of cells)/SQRT(number of replicates))
For example, your equation might read:
=AVERAGE(C2:F2)/(STDEV(C2:F2)/SQRT(4))
(NOTE: in this case the number of replicates is 4. Be careful that you are using the correct number of parentheses.) Copy the equation and paste it into all rows in that column. Create the equation for the rest of the timepoints and paste it into their respective columns. Note that you can save yourself some time by completing the first equation for all of the T statistics and then copy and paste all the columns at once.
- Go to the empty columns to the right on your worksheet. Create new column headings in the top cells to label the P value that you will compute. Name them with the pattern <dSWI4>_<Pval>_<tx> where you use the appropriate text within the <> and where x is the time. For example, "dSWI4_Pval_t30". In the cell below the label, enter the equation:
=TDIST(ABS(cell containing T statistic),degrees of freedom,2)
For example, your equation might read:
=TDIST(ABS(AE2),3,2)
The number of degrees of freedom is the number of replicates minus one, so in our case there are 3 degrees of freedom. Copy the equation and paste it into all rows in that column.
- Insert a new worksheet and name it "final".
- Go back to the "statistics" worksheet and Select All and Copy.
- Go to your new sheet and click on cell A1 and select Paste Special, click on the Values radio button, and click OK. This is your final worksheet from which we will perform biological analysis of the data.
- Select all of the columns containing Fold Changes. Select the menu item Format > Cells. Under the number tab, select 2 decimal places. Click OK.
- Select all of the columns containing T statistics or P values. Select the menu item Format > Cells. Under the number tab, select 4 decimal places. Click OK.
- Upload the .xls file that you have just created to LionShare. Give Dr. Dahlquist (username kdahlqui) permission to download your file. Send an e-mail to Dr. Dahlquist with the link to the file.
Sanity Check: Number of genes significantly changed
Before we move on to the biological analysis of the data, we want to perform a sanity check to make sure that we performed our data analysis correctly. We are going to find out the number of genes that are significantly changed at various p value cut-offs.
- Open your spreadsheet and go to the "final" worksheet.
- Click on cell A1 and select the menu item Data > Filter > Autofilter. Little drop-down arrows should appear at the top of each column. This will enable us to filter the data according to criteria we set.
- Click on the drop-down arrow on one of your "Pval" columns. Select "Custom". In the window that appears, set a criterion that will filter your data so that the P value has to be less than 0.05.
- How many genes have p value < 0.05?
- What about p < 0.01?
- What about p < 0.001?
- What about p < 0.0001?
- Answer these questions for each timepoint in your dataset.
- When we use a p value cut-off of p < 0.05, what we are saying is that you would have seen a gene expression change that deviates this far from zero less than 5% of the time.
- We have just performed 6189 T tests for significance. Another way to state what we are seeing with p < 0.05 is that we would expect to see this magnitude of a gene expression change in about 5% of our T tests, or 309 times. Since we have more than 261 genes that pass this cut off, we know that some genes are significantly changed. However, we don't know which ones.
- There is a simple correction that can be made to the p values to increase the stringency called the Bonferroni correction. To perform this correction, multiply the p value by the number of statistical tests performed (in our case 6189) and see whether any of the p values are still less than 0.05.
- Perform this correction and determine whether and how many of the genes are still significantly changed at p < 0.05 after the Bonferroni correction.
- There is a simple correction that can be made to the p values to increase the stringency called the Bonferroni correction. To perform this correction, multiply the p value by the number of statistical tests performed (in our case 6189) and see whether any of the p values are still less than 0.05.
- The "AvgLogFC" tells us the magnitude of the gene expression change and in which direction. Positive values are increases relative to the control; negative values are decreases relative to the control. For the timepoint that had the greatest number of genes significantly changed at p < 0.05, answer the following:
- Keeping the "Pval" filter at p < 0.05, filter the "AvgLogFC" column to show all genes with an average log fold change greater than zero. How many meet these two criteria?
- Keeping the "Pval" filter at p < 0.05, filter the "AvgLogFC" column to show all genes with an average log fold change less than zero. How many meet these two criteria?
- Keeping the "Pval" filter at p < 0.05, How many have an average log fold change of > 0.25 and p < 0.05?
- How many have an average log fold change of < -0.25 and p < 0.05? (These are more realistic values for the fold change cut-offs because it represents about a 20% fold change which is about the level of detection of this technology.)
- In summary, the p value cut-off should not be thought of as some magical number at which data becomes "significant". Instead, it is a moveable confidence level. If we want to be very confident of our data, use a small p value cut-off. If we are OK with being less confident about a gene expression change and want to include more genes in our analysis, we can use a larger p value cut-off.
- The expression of the gene NSR1 (ID: YGR159C)is known to be induced by cold shock. Find NSR1 in your dataset. Is it's expression significantly changed at any timepoint? Record the average fold change and p value for NSR1 for each timepoint in your dataset.
- Which gene has the smallest p value in your dataset (at any timepoint)? You can find this by sorting your data based on p value (but be careful that you don't cause a mismatch in the rows of your data!) Look up the function of this gene at the Saccharomyces Genome Database and describe it in your report. Why do you think the cell is changing this gene's expression upon cold shock?
Clustering and Gene Ontology Analysis with STEM
- Begin by downloading and extracting the STEM software. Click here to go to the STEM web site.
- Click on the download link, register, and download the
stem.zip
file to your Desktop. - Unzip the file. In Seaver 120, you can right click on the file icon and select the menu item 7-zip > Extract Here.
- This will create a folder called
stem
. Inside the folder, double-click on thestem.cmd
to launch the STEM program.- In Seaver 120, we encountered an issue where the program would not launch on the Windows XP machines due to a lack of memory. To get around this problem, launch STEM from the command line.
- Go to the start menu and click on Programs > Accessories > Command Prompt.
- You will need to navigate to the directory (folder) in which the STEM program resides. If you followed the instructions above and extracted the stem folder to the Desktop, type the following:
cd Desktop\stem
and press "Enter". - To launch the program then type:
java -mx512M -jar stem.jar -d defaults.txt
and press "Enter". This will launch the program with less memory allocated to it.
- In Seaver 120, we encountered an issue where the program would not launch on the Windows XP machines due to a lack of memory. To get around this problem, launch STEM from the command line.
- Click on the download link, register, and download the
- Prepare your microarray data file for loading into STEM.
- Using the Excel spreadsheet from the analysis above, insert a new worksheet and name it "stem".
- Select all of the data from your "final" worksheet and paste it into your "stem" worksheet.
- Your leftmost column should have the column header "MasterIndex". Rename this column to "SPOT". Column B should be named "ID". Rename this column to "Gene Symbol".
- Delete all of the data columns EXCEPT for the AvgLogFC columns for each timepoint.
- Rename the data columns with just the time and units (for example, 30m, 60m, etc.).
- Save your work. Then use Save As to save this spreadsheet as Text (Tab-delimited) (*.txt). Click OK to the warnings and close your file.
- Running STEM
- In section 1 (Expression Data Info) of the the main STEM interface window, click on the Browse... button to navigate to and select your file.
- Click on the radio button No normalization/add 0.
- Check the box next to Spot IDs included in the data file.
- In section 2 (Gene Info) of the main STEM interface window, select Saccharomyces cerevisiae (SGD), from the drop-down menu for Gene Annotation Source. Select No cross references, from the Cross Reference Source drop-down menu. Select No Gene Locations from the Gene Location Source drop-down menu.
- In section 3 (Options) of the main STEM interface window, make sure that the Clustering Method says "STEM Clustering Method" and do not change the defaults for Maximum Number of Model Profiles or Maximum Unit Change in Model Profiles between Time Points.
- In section 4 (Execute) click on the yellow Execute button to run STEM.
- In section 1 (Expression Data Info) of the the main STEM interface window, click on the Browse... button to navigate to and select your file.
- Viewing and Saving STEM Results
- A new window will open called "All STEM Profiles (1)". Each box corresponds to a model expression profile. Colored profiles have a statistically significant number of genes assigned; they are arranged in order from most to least significant p value. Profiles with the same color belong to the same cluster of profiles. The number in each box is simply an ID number for the profile.
- Click on the button that says "Interface Options...". At the bottom of the Interface Options window that appears below where it says "X-axis scale should be:", click on the radio button that says "Based on real time". Then close the Interface Options window.
- Take a screenshot of this window (on a PC, simultaneously press the
Alt
andPrintScreen
buttons to save the view in the active window to the clipboard) and paste it into a new PowerPoint presentation to save your figures.
- Click on each of the profiles to open a window showing a more detailed plot containing all of the genes in that profile.
- Take a screenshot of each of the individual profile windows and save the images in your PowerPoint presentation.
- At the bottom of each profile window, there are two yellow buttons "Profile Gene Table" and "Profile GO Table". For each of the profiles, click on the "Profile Gene Table" button to see the list of genes belonging to the profile. In the window that appears, click on the "Save Table" button and save the file to your desktop. Make your filename descriptive of the contents, e.g. "wt_profile#_genelist.txt", where you replace the number symbol with the actual profile number.
- Upload this file to LionShare and provide a link to Dr. Dahlquist.
- For each of the profiles, click on the "Profile GO Table" to see the list of Gene Ontology terms belonging to the profile. In the window that appears, click on the "Save Table" button and save the file to your desktop. Make your filename descriptive of the contents, e.g. "wt_profile#_GOlist.txt", where you use "wt", "dGLN3", etc. to indicate the dataset and where you replace the number symbol with the actual profile number. At this point you have saved all of the primary data from the STEM software and it's time to interpret the results!
- Upload this file to LionShare and provide a link to Dr. Dahlquist.
- A new window will open called "All STEM Profiles (1)". Each box corresponds to a model expression profile. Colored profiles have a statistically significant number of genes assigned; they are arranged in order from most to least significant p value. Profiles with the same color belong to the same cluster of profiles. The number in each box is simply an ID number for the profile.
- Analyzing and Interpreting STEM Results
- Select one of the profiles you saved in the previous step for further intepretation of the data. We suggest that you choose one that has a pattern of up- or down-regulated genes at the early (first three) timepoints. Answer the following:
- Why did you select this profile? In other words, why was it interesting to you?
- How many genes belong to this profile?
- How many genes were expected to belong to this profile?
- What is the p value for the enrichment of genes in this profile? Bear in mind that in the protocol above, you computed p values to determine whether each individual gene had a significant change in gene expression at each time point. This p value determines whether the number of genes that show this particular expression profile across the time points is significantly more than expected.
- Open the GO list file you saved for this profile in Excel. This list shows all of the Gene Ontology terms that are associated with genes that fit this profile. Select the third row and then choose from the menu Data > Filter > Autofilter. Filter on the "p-value" column to show only GO terms that have a p value of < 0.05. How many GO terms are associated with this profile at p < 0.05? The GO list also has a column called "Corrected p-value". This correction is needed because the software has performed thousands of significance tests. Filter on the "Corrected p-value" column to show only GO terms that have a corrected p value of < 0.05. How many GO terms are associated with this profile with a corrected p value < 0.05?
- Select 10 Gene Ontology terms from your filtered list (either p < 0.05 or corrected p < 0.05). Look up the definitions for each of the terms at http://geneontology.org. Write a paragraph that describes the biological interpretation of these GO terms. In other words, why does the cell react to cold shock by changing the expression of genes associated with these GO terms?
- Select one of the profiles you saved in the previous step for further intepretation of the data. We suggest that you choose one that has a pattern of up- or down-regulated genes at the early (first three) timepoints. Answer the following:
Clustering the Δswi4 Data
- Download the file named "Compiled_dSWI4_data_for_STEM.txt" from LionShare.
- Perform steps 3-4 of the STEM protocol on this new file.
- Do you see the same clusters coming up as significant in the Δswi4 data? Which ones?
- If so, we want to do a comparison to see if the clusters contain the same genes. We can do this by comparing the gene lists for the clusters in Excel. Choose one cluster that is the same in both sets of data. The general protocol for how to do determine whether both gene lists have the same genes is on this page. Follow this protocol and determine how many genes are the same in both lists and how many are different.
- Look at the Gene Ontology results for the cluster that is the same. Are the same terms showing up or are they different? This is probably easier to do by eye than comparing the gene lists, but you could also use the same protocol as above if you wish.