|Home Institution:||Rutgers University-New Brunswick|
|Project Topic:||Dynamical Systems|
Title: Analyzing gene regulatory networks by comparing the dynamics obtained via DSGRN (Dynamic Signatures Generated by Regulatory Networks) and RACIPE (Random Circuit Perturbation)
Abstract: In this research project, we are studying the analyses generated by Huang et al. using random circuit perturbation (RACIPE). After gaining a comprehensive understanding of Huang's paper, we will attempt to use RACIPE to reproduce these results. We will move from there to produce analogous results in DSGRN. After both sets of results have been generated, we will compare our RACIPE results to our DSGRN results. The results of the comparisons between our RACIPE and DSGRN results could potentially lead to a paper describing the results and could also lead to additional problems that could be studied during the research project or afterwards, such as applying these ideas to networks of biological interest, understanding how to sample for large networks, understanding how to apply these ideas to a broader range of dynamics, computing volumes of the DSGRN regions of parameter space, or understanding how the regions change as a function of more realistic parameters.
Week 1 (May 26 - 31)
This week, we began the remote 2020 DIMACS REU Program with orientation and an HTML workshop. I set up a Facebook messenger group as well as a discord server for the DIMACS REU 2020 participants. Both the introductions in orientation and these methods of communication allowed me to hear more about my fascinating peers! I also set up a meeting and introduced myself to my Aresty research partner, Prince Rawal. Additionally, I attended Parker's coffee hour on Mozilla hubs, which was very interesting! In terms of my research, I read the Huang paper below to begin understanding the mathematics underlying the research I will be conducting this summer. On Friday, I met with my mentors and Prince to discuss our plan for the summer and our immediate goals.
Week 2 (June 1 - 7)
This week, we started by giving short presentations on our projects for the summer (attached below). After my presentation, I successfully installed RACIPE and ran it for the three toggle-switch motifs on page 9 of the first Huang paper listed below. I also attended two coffee hour sessions and the lab meeting for those under Konstantin. During the lab meeting, Konstantin explained the mathematics behind DSGRN in detail. In addition, we had our first weekly project meeting (with Konstantin, Marcio, and Prince) to discuss our progress and goals. We went over the mathematics of the Huang paper and identified key questions for Prince and I to answer in the coming week, namely how they are doing random sampling, how they identify the region of parameter space they are sampling from, what is going on in their Hill functions, and, most importantly, the notion of the half-functional rule. Moreover, Prince and I met with Marcio to look into playing around with Hill functions in Matlab to better understand them. Finally, I attended the talk by Lydia Chilton, which was very interesting. I greatly appreciate the interdisciplinary sciences, and I was grateful to learn about the intersection between computer science, design, and marketing.
Week 3 (June 8 - 14)
Throughout this week, I participated in the Data Science boot camp. I found it very interesting, and I learned a good amount about Python, Python Notebooks, and Data Science. I also enjoyed attending the coffee half-hour and the informal meeting with Lazaros. Regarding my research project, I presented to Konstantin's Lab and everyone working under him on Tuesday. Konstantin, Marcio, Prince, and I met on Wednesday and discussed our progress and the notion of the half-functional rule given the second RACIPE paper and the supporting documents of both papers. We decided that the next step would be to look at the scripts to match the words of the paper to the code. On Thursday, after having looked at the code for the afternoon, I met with Marcio and Prince to discuss research goals and our more specific questions about the code and certain lines of both papers. This was extremely productive, and we went through the code in a way that truly gave us a better understanding of the half-functional rule, the Hill function for activators, and how they conduct their random sampling.
Week 4 (June 15 - 21)
This week, I enjoyed the talk by Mykhaylo Tyomkyn. After recently taking the algorithms course at Rutgers, I have developed a growing interest in graph theory. Thus, I found the seminar very interesting! Additionally, I attended the coffee half-hour and hosted an online escape room event with some of my fellow DIMACS REU participants! The event was a wonderful success! In terms of my research, this week was a very productive one! During the lab meeting, Prince presented what we had learned about both RACIPE and the half-functional rule in the last week. In this meeting, Konstantin inquired about the computational cost of the half-functional rule. I created two documents to answer the questions we set out to answer about RACIPE, which I will attach below. The first document was an extensive collection describing the random sampling of RACIPE. It included all relevant and valuable information across both papers and their additional information files on the half-functional rule. The second document was much more concise, containing the second paper's discussion of the computational cost of RACIPE. On Wednesday, we met and went over the random sampling of RACIPE by looking at the code and my document. We also went into the relevance of the rook fields from the initial lab presentation. We then decided that our next steps were to start simulating the toggle switches in RACIPE and DSGRN. Also, both Prince and I would recreate the rook fields for all nine regions of parameter space for the simplest toggle switch in Konstantin's initial presentation. Prince and I successfully completed this task, and I have attached my results below. Finally, I met with Marcio and gained a better understanding of essential parameters and their neighbors, working with Jupyter Notebook, and coding in DSGRN.
Week 5 (June 22 - 28)
During this past week, we started to work on running DSGRN in Jupyter Notebook. I also attended the 52nd ACM Symposium on Theory of Computing (STOC 2020)! While the talks were highly technical, I found the Junior-Senior Lunches to be quite enjoyable and worthwhile! Here, a group of undergraduates and graduate students would meet with a more experienced industry or academia professional for an hour to discuss whatever. On Tuesday, I met with Boaz Barak, where he provided good insights into specialization and the value of inexperienced researchers. On Thursday, I met with Aaron Potechin, where I learned some theoretical computer science related to 3-SAT. I also received some very good advice from him regarding fellowships and scholarships as well as specialization. In terms of our research, we started coding in DSGRN with essential parameters, their neighbors, and equilibria. During the Wednesday meeting, we discussed what we are actually trying to compare between DSGRN and RACIPE, that being the comparative usefulness in terms of factors like what networks can be input and computational cost. We also discussed how both methods treat the Hill coefficient and fit into the biological context they are attempting to model from. By the end of the week, we had generated our percentages of each of the stabilities (mono, bi, tri, etc.) for essential parameters and their neighbors for all three forms of toggle switch motifs (TS, TS1SA, and TS2SA) in DSGRN.
Week 6 (June 29 - July 5)
This week, I attended seminars on privacy and scientific writing, played with relevant customizable options in RACIPE, and constructed a data table made up of many RACIPE simulations on the TS2SA toggle switch. I really enjoyed Rebecca Wright's talk about privacy in contemporary society. Lazaros's talk on scientific paper writing was quite informative; the talk gave me a better understanding of the existent publication landscape. We also started messing with the options for RACIPE, including the Hill coefficient range, the number of models, which ODE solver is used, and the number of random initial conditions used to solve the ODEs. We decided to focus on TS2SA as it exhibits the highest levels of stability and the most interesting behavior of the three toggle switch motifs used in the RACIPE paper published in PLOS Comput. Biol. We messed with these options and affected the simulations with values chosen by Konstantin and Marcio. Finally, we created some simple tables (using the Euler ODE solver), where we varied the Hill coefficient value and the number of models generated.
Week 7 (July 6 - July 12)
Over the past week, I attended three seminars, presented my first draft of the data table in my bi-weekly lab presentation, and generated a more comprehensive and correct data table with RACIPE and DSGRN data. On Monday, I enjoyed the seminar on ethics in research and science by Lazaros. On Tuesday, I found the talk on Algorithmic Fairness by Vivek Singh to be quite interesting, as I have been contemplating the topic personally. After meeting with Konstantin and Marcio on Wednesday, Prince and I knew what values and ranges to use when running the RACIPE simulations. This included using the RK45 ODE solver, while my previous table had used the Euler ODE solver. We also set num_ode to 1000, made num_paras = 10000, and ranged N as follows: 2, 4, 6, 10, 20, 30. Between all of this, I generated three data tables with a lot of valuable information. My tables also included the running time of each RACIPE simulation. Furthermore, unlike the RACIPE simulations with the Euler ODE solver, I saved the output files for each of the RK45 simulations, which included the num_ode = 500, 1000, and 2000 table and the N = 2, 4, 6, 10, 20, 30 table. Finally, I found the graduate school panel on Friday to be worthwhile and enriching! The main factor that made it so valuable was the inclusion of admissions faculty on the panel, which allowed us to gain insight into the application process and the weights of the various parts of an application.
Week 8 (July 13 - July 20)
I began this week collaborating with Lun Zhang to input RACIPE data and find DSGRN parameter nodes. Using Lun's code, I created a script for TS. During our meeting, we found out that region 0 (with the regions being from 0 to 8 inclusive) doesn't correlate to our perception of what set of inequalities region 0 should represent. This is because the toggle switch parameter graph that was initially presented to us was visualized in a specific way, and the code did not reflect that visualization. This was no major problem, but it was a neat discovery. After our Wednesday meeting, during which Lun was present, we set out to create the scripts for TS1SA and TS2SA, add weights based on what parameter nodes included the most RACIPE models, and calculate the DSGRN stabilities with these weights in mind. We also wanted to show that, for nodes with self-activating links, the production rate could be split into its square root times its square root and into G and 1 with identical results. Using my completed TS1SA script, I tested this and found that they yielded the same results. Finally, I attended Cynthia Rudin's "Interpretability vs. Explainability in Machine Learning" talk on Friday. I found this incredibly interesting, and I was fascinated by her story about the competition where she won a special award.
Week 9 (July 21 - July 25)
This was the final week of the 2020 DIMACS REU Program! I primarily worked on my final presentation and paper throughout the week. On Monday, Prince and I met with Marcio and made good progress on the weighting code. I constructed a file for each of the three toggle switch networks. Prince focused on including essential parameters and their neighbors. For example, we wanted to check if the parameter nodes with the most RACIPE models were essential nodes, neighbors of essential nodes, or neither of those options. On Tuesday, I was delighted by Peter Winkler's awesome talk on mathematical puzzles. I am seriously considering buying his puzzle book now! Later that day, I presented the first draft of my presentation at the weekly lab meeting. On Wednesday, before our research meeting, I found a small problem in the three files and fixed it. In the meeting, we discussed our next steps, which included weighting for RACIPE models where N = 2, 4, 6, 10, 20, 30. We also had correct weighting stability percentages. These percentages, from DSGRN converting RACIPE data (where the Hill coefficient ranged from 1 to 6), were very close to the RACIPE percentages for high Hill coefficients like 20 and 30. This preliminary result was enticing. The rest of the week was filled with the end of the DIMACS REU and preparing my presentation and paper. I finished editing and cutting down my presentation on Wednesday night. On Thursday, I presented our work to the DIMACS REU. All of the participants' presentations were interesting and engaging! I drafted my paper, received edits, and finalized it on Thursday and Friday. On Saturday, I met with Lazaros, Parker, and REU participants to say farewell and reflect on the summer. Overall, I am very grateful for what has been an amazing summer! Thank you to my research partner, mentors, and scholarship for making my research experience thoroughly enjoyable! Additionally, I am appreciative of the friends I have made this summer among my REU peers. Finally, thank you to DIMACS, Lazaros, Parker, and everyone who organized and hosted the 2020 DIMACS REU Program!
Thank you to my mentors Konstantin Mischaikow and Marcio Gameiro for working with me this summer. Thank you to the 2020 David and Dorothy Bernstein Endowed Scholarship for Summer Research for supporting my research for the summer!