Falghane Week 6
The purpose of this assignment is to further analyze data by using gene regulatory networks.
Material and Methods
- This sheet contains initial guesses for the production rate parameters, P, for all genes in the network.
- Assuming that the system is in steady state with the relative expression of all genes equal to 1, (P/2) - lambda = 0, where lambda is the degradation rate, is a reasonable initial guess.
- The sheet contained two columns (from left to right) entitled, "id", "production_rate".
- The id is an identifier that is used to identify a particular gene. The "standard name" was used and the ids in the example worksheet were replaced with the ids from the "network" worksheet.
- The "production_rate" column then contained the initial guesses for the P parameter, which were all zero.
- The production rates were provided in a Microsoft Access database.
- Then a query was performed to grab the values as a group.
- The following steps were followed.
- The list of genes was inserted to a new table in the database. the "External Data" tab was clicked and the Excel icon with the "up" arrow on it was selected.
- The "Browse" button was clicked and Excel file containing the network that was used to upload to GRNsight was selected.
- After confirming that the button next to "Import the source data into a new table in the current database," "OK" was clicked.
- In the next window, the "network" worksheet was selected, if it hasn't already been automatically selected. "Next" Was clicked.
- In the next window, the "First Row Contains Column Headings" was checked. then "Next" was clicked.
- In the next window, the left-most column was highlighted. The "Field Name" was changed to "id" if it didn't say that already. then "Next" was clicked.
- In the next window, the button for "Choose my own primary key." was selected and the "id" field from the drop-down next to it was chosen. and then "Next" was clicked.
- In the next field, "Import to Table: network" was chosen and the finish button was clicked.
- In the next window, the import steps were not saved, so "Close" was clicked.
- A table called "network" appeared in the list of tables at the left of the window.
- The "Create" tab was clicked. Then the icon for "Query Design" was clicked.
- In the window that appeared, the "network" table was clicked and then "Add". then the "production_rates" table was clicked and then "Add". Then "Close" was clicked.
- The two tables appeared in the main part of the window. in order to tell Access which fields in the two tables correspond to each other. The word "id" in the network table was clicked and dragged the mouse to the "standard_name" field in the "production_rates" table and released. A line appears between those two words.
- a Right-clicked was made on the line between those words and "Join Properties" was selected from the menu that appeared. then from the menu, "Option 2: Include ALL records from 'network' and only those records from 'production_rates' where the joined fields are equal." was clicked then "OK" was clicked.
- After that, the "id" word in the "network" table was clicked and dragged to the bottom of the screen to the first column next to the word "Field" and released.
- The "production_rate" field was clicked in the "production_rates" table and dragged to the bottom of the screen to the second column next to the word "Field" and released.
- Then it was Right-clicked anywhere in the gray area near the two tables. In the menu that appeared, "Query Type > Make Table Query..." was selected.
- In the window that appeared, the table was named "production_rates_1" in order to differentiate it from the other production rate table. and the "Current Database" was selected and then "OK" was clicked.
- The "Query Tools: Menus" tab was clicked. Then the exclamation point icon was clicked. A window appeared that tells how many rows were pasted into a new table. then "Yes" was clicked.
- The new "production_rates_1" table appeared in the list at the left. It was then Double-clicked on that table name to open it.
- The data in this table was copied and pasted back into Excel workbook. And when it was pasted "Paste Special > Paste values" was used so that the Access formatting doesn't get carried along.
- This sheet contains degradation rates for all genes in the network, which were provided by the user.
- half-life data values were converted to the degradation rates by taking the natural log of the half-life and dividing by 2.
- The sheet contained two columns (from left to right) entitled "id", and "degradation_rate".
- The id is an identifier that user used to identify a particular gene.
T*he "degradation_rate" column should then contain the absolute value of the degradation rate for the corresponding gene as described above, rounded to four decimal places.
- To obtain these values, the same file, [Microsoft Access database, which you can Expression-and-Degradation-rate-database_2019.accdb that was used to obtain the production rates in the first worksheet was used. Again, the values were copied and pasted one-by-one or by following the instructions to execute a query, substituting the appropriate "degradation_rates" table in the query.
- re-importing the "network" table was not needed, the only thing was needed was to create and execute the query.
- Again it was noted that the genes should be listed in the same order in all the sheets in the Excel workbook.
Expression Data Sheets for Individual Yeast Strains
- Expression data can be provided for either a single strain or multiple strains of yeast (.
- Each strain had its own sheet in the workbook.
- Each sheet was given a unique name that follows the convention "STRAIN_log2_expression", where the word "STRAIN" is replaced by the strain designation, which appeared in the optimization_diagnostics sheet.
- Everyone in the class had at least one expression worksheet called "wt_log2_expression".
- Since the transcription factors GLN3, HAP4, and ZAP1 were added in the network. The expression data from the dGLN3, dHAP4, dZAP1 deletion strains was used in the workbooks as well, naming the worksheets "dgln3_log2_expression", "dhap4_log2_expression", and "dzap1_expression".
- Gene dzap1 was not in the network, therefore it was not included in the expression data.
- The sheet should have the following columns in this order: "id": list of all genes. The genes were listed in the same order in all the sheets in the Excel workbook.
- The next series of columns contained the expression data for each gene at a given time point given as log2 ratios (log2 fold changes). The column header was the time at which the data were collected, without any units. For example, the 15-minute timepoint would have a column header "15" and the 30-minute timepoint would have the column header "30". GRNmap supported replicate data for each of the timepoints. Replicate data for the same timepoint should be in columns immediately next to each other and have the same column headers. For example, three replicates of the 15-minute timepoint would have "15", "15", "15" as the column headers.
- If data were provided for multiple strains, each strain had data for the same time points, although the number of replicates can vary.
- The data for the 15, 30, and 60-minute timepoints was included, but not the 90 or 120-minute timepoints.
- The data used was contained in the Expression-and-Degradation-rate-database_2019.accdb file that was used to obtain the production and degradation rates.
- It is tedious to copy and paste all of these data by hand, a query was executed in Microsoft Access to do it.
- After the data was imported into Excel, the column headers were changed to "15", "15", etc., as described above.
- The network derived from the YEASTRACT database for the Week 5 assignment was copied and pasted into this sheet directly. The contents of cell A1 might have been edited, but the rest was good to go (especially since you previewed it in GRNsight). The description below explains what is already in this worksheet.
- This sheet contains an adjacency matrix representation of the gene regulatory network.
- The columns correspond to the transcription factors and the rows correspond to the target genes controlled by those transcription factors.
- A “1” means there is an edge connecting them and a “0” means that there is no edge connecting them.
- The upper-left cell (A1) should contain the text “cols regulators/rows targets”. This text is there as a reminder of the direction of the regulatory relationships specified by the adjacency matrix.
- The rest of row 1 should contain the names of the transcription factors that are controlling the other genes in the network, one transcription factor name per column.
- The rest of column A should contain the names of the target genes that are being controlled by the transcription factors heading each of the columns in the matrix, one target gene name per row.
- The transcription factor names should correspond to the "id" in the other sheets in the workbook. They should be capitalized the same way and occur in the same order along the top and side of the matrix.
- The matrix needs to be symmetric, i.e., the same transcription factors should appear along the top and left side of the matrix. The genes should be listed in the same order in all the sheets in the Excel workbook.
- Each cell in the matrix should then contain a zero (0) if there is no regulatory relationship between those two transcription factors, or a one (1) if there is a regulatory relationship between them. Again, the columns correspond to the transcription factors and the rows correspond to the target genes controlled by those transcription factors.
These are the initial guesses for the estimation of the weight parameters, w. Since these weights are initial guesses which will be optimized by GRNmap, the content of this sheet can be identical to the "network" sheet.
- The optimization_parameters sheet had two columns (from left to right) entitled, "optimization_parameter" and "value".
- The worksheet was copied from the sample workbook provided. The only row that needed modifying was row 15, "Strain". Including just the strain designations for which it had a corresponding STRAIN_log2_expression sheet.
- I the dgln3, dhap4, or dzap1 expression sheets were not there, then those from this row were deleted and no gaps between cells were left.
- below is an explanation of what the optimization_parameters mean.
- alpha: Penalty term weighting (from the L-curve analysis)
- kk_max: Number of times to re-run the optimization loop. In some cases re-starting the optimization loop can improve performance of the estimation.
- MaxIter: Number of times MATLAB iterates through the optimization scheme. If this is set too low, MATLAB will stop before the parameters are optimized.
- TolFun: How different two least squares evaluations should be before the program determines that it is not making any improvement
- MaxFunEval: maximum number of times the program will evaluate the least squares cost
- TolX: How close successive least squares cost evaluations should be before the program determines that it is not making any improvement.
- production_function: = Sigmoid (case-insensitive) if sigmoidal model, =MM (case-insensitive) if Michaelis-Menten model
- L_curve: =0 if an L-curve analysis should NOT be run or =1 if an L-curve analysis SHOULD be run. The L-curve analysis will automatically run sequential rounds of estimation for an array of fixed alpha values (0.8, 0.5, 0.2, 0.1,0.08, 0.05,0.02,0.01, 0.008, 0.005, 0.002, 0.001, 0.0008, 0.0005, 0.0002, and 0.0001). GRNmap makes a copy of the user's selected input workbook and changes alpha to the first alpha in the list. The estimation runs and the resulting parameter values are used as the initial guesses for the next round of estimation with the next alpha value. This process repeats until all alpha values have been run. New input and output workbooks are generated for each alpha value, although currently, the graphs are only saved for the last run.
- estimate_params =1 if want to estimate parameters and =0 if the user wants to do just one forward run
- make_graphs =1 to output graphs; =0 to not output graphs
- fix_P =1 if the user does not want to estimate the production rate, P, parameter, just use the initial guess and never change; =0 to estimate
- fix_b =1 if the user does not want to estimate the b parameter, just use the initial guess and never change; =0 to estimate
- expression_timepoints: A row containing a list of the time points when the data was collected experimentally. Should correspond to the timepoint column headers in the STRAIN_log2_expression sheets.
- Strain: A row containing a list of all of the strains for which there is expression data in the workbook. Should correspond to the "STRAIN" portion of the names of the STRAIN_log2_expression sheets for each strain. Note that GRNmap will run the model for the wild type network (all genes present in the network) and for networks where the gene deleted from the designated STRAIN has been deleted from the network.
- simulation_timepoints: A row containing a list of the time points at which to evaluate the differential equations to generate the simulated data. This does not need to correspond to the actual measurement times but should be in the same units (e.g. minutes).
These are the initial guesses for the estimation of the threshold_b parameters.
- There should be two columns.
- The left-most column should contain the header "id" and list the standard names for the genes in the model in the same order as in the other sheets.
- The second column should have the header "threshold_b" and should contain the initial guesses, we are going to use all 0.
Dynamical Systems Modeling of your Gene Regulatory Network
Running the model and analyzing the results. The software we used was called GRNmap, which stands for Gene Regulatory Network Modeling and Parameter Estimation. It is written in MATLAB and can be run from code or run as a stand-alone executable if you don't have MATLAB installed. However, it can only be run in Windows, not on Macs.
- The following Input Worksheet was used to run the model
- To run GRNmap from code, MATLAB R2014b must be installed on the computer.
- The GRNmap v1.10 code from the GRNmap Downloads page was downloaded.
- This is a direct link to start downloading (81 MB).
- The file. (Right-click, 7-zip > Extract here) was unzipped
- MATLAB R2014b was launched.
- The GRNmodel.m was opened, which was in the directory that was unzipped GRNmap-1.10 > matlab
- The Run button (green "play" arrow) was clicked.
- The input workbook was selected.
- Yan optimization diagnostics graphic was seen which showed the progress of the estimation.
- When the run is over, expression plots displayed.
- Output .xlsx and .mat files were saved in the same folder as the input folder, along with .jpg files containing the optimization diagnostic and individual expression plots, these files were saved.
- it was noted that if you need to run GRNmap again, you should not use the same directory for the input file. Currently, GRNmap will overwrite previous output.
- The output .xlsx file was uploaded into GRNsight to visualize the results
I successfully ran the model and it gave the following results.
- I contacted Dr. Kam D. Dahlquist via email to help with this assignment and she also helped me in class.
- Except for what is noted above, this individual journal entry was completed by me and not copied from another source.