UR igem wiki


  • Endometriosis Risk Calculator
  • Inspiration

    Our modeling team has developed a predictive model that uses 42 clinical and demographic variables to conduct a binary classification of whether a person has endometriosis. When comparing our predictive model to many other models available in the field, we have found our model to be more accurate, less expensive, and more inclusive (Apostolopoulos et al., 2016, Droz & Howard, 2011, Fuldeore & Soliman, 2017, Peterson et al., 2013, Schliep et al., 2015). We thereby realize that our model has great potential to benefit society. Firstly, this predictive model can raise people’s awareness of endometriosis by letting people know the potential endometriosis risk factors. Secondly, people can use this model at home to conduct a self-assessment, evaluate their risk of having endometriosis, and decide whether they need to consult a doctor. Thirdly, this model can be developed as a diagnostic tool used by clinicians to assess a patient's risk of endometriosis. Therefore, to fully release these potentials and the model more accessible to the general public, we decided to integrate it into a software tool.

    Software Development

    To develop the software tool, we followed the classic six phases of the software development life cycle: requirement analysis, design, coding, testing, deployment, and maintenance.

    1. Requirement analysis

    First, considering the accessibility of our software tool, we wanted it to be approachable, free, and open to the general public. Moreover, the software should be user-friendly, which means that general users would be able to understand its function clearly, operate the software independently, and interpret the outcomes without any specialized guidance. In addition, we want the software to be as informative as possible: the software will not only calculate the users’ risk of endometriosis but also provide them with the basic knowledge about endometriosis and online resources. Finally, the software should protect users’ privacy. In other words, no user information will be stored or spread in any format.

    2. Design

    Above all, to make the software highly accessible, we decided to develop it in a way so that it can be published on the Internet for free. In addition, to make it user-friendly, we designed its format as a questionnaire. This questionnaire will contain questions asking users relevant clinical and demographic information, and users’ answers to these questions are collected as the 42 variables for endometriosis risk prediction. After completing the questionnaire, the users can click a “Run Prediction” button to run the software. When the button is clicked, the software will automatically plug the 42 collected variables into our predictive model, analyze the person’s risk of endometriosis, and present the result in a binary format, positive or negative, with its corresponding interpretations. Moreover, to make the software as informative as possible, it will contain basic description of endometriosis with image illustration and website links for available resources. Finally, to protect privacy, the questionnaire is anonymous, and the information users fill will not be stored anywhere. Therefore, to apply the above designs, we decided to develop a website application named Endometriosis Risk Calculator using R Shiny. R Shiny is chosen because it is easy-operating and widely used in Web App development. More importantly, since our predictive model was coded in R, which is the same language used for R Shiny, R Shiny allowed us to directly apply the model to our software.

    3. Coding

    To develop the test version of the Endometriosis Risk Calculator, all coding was performed in RStudio (version 1.3.1073) using R Shiny. The software was published to the Internet on, a Shiny Applications sharing platform, temporarily for testing. A website link was then generated for users to access the software tool. The below image illustrates the test version of the tool. The test version contains a title, developer information, instruction to the questionnaire, questionnaire, a “Run Prediction” button, and a result panel. Note: only question 1-6 and 40-42 are shown in the image; to see the complete list of the questionnaire, please download this pdf document.

    4. Testing

    The website link of the test version was sent for testing to people from our team as well as the general public who are within different age groups. More than 25 feedbacks were collected and summarized in terms of general design, operability, and readability. Based on these feedbacks, we revised our questionnaire in the following aspects. Firstly, we added descriptions to certain medical terminology including tubal ligation, uterine fibroids, ovarian cysts, rhythm contraceptive, since people found them make the questions difficult to understand. Secondly, we added “No Answer” options to all of our questions instead of just some of them, as some people do not have certain answers to those questions or they do not feel comfortable answering them. Thirdly, we included instructions for post-menopausal women, as it was not clear how post-menopausal women should answer questions like “How long is your period in the number of days?”. We also decided to include more general instructions about using our software and information about endometriosis.

    5. Deployment

    The updated version of the software was developed based on the original design and feedback. The below image illustrates the updated version of the tool. This version contains a title, developer information, general instruction, instruction to the questionnaire, questionnaire, a “Run Prediction” button, and a result panel. Note: only question 1-2 and 41-42 are shown in the image; to see the complete list of the questionnaire, please download this pdf document. This guidance to use the software is introduced in the Software Flow section of this Wiki page. The software was then deployed on for public access.

    6. Maintenance

    The software is maintained on where connections, memory usage, worker processes, CPU usage, and network usage can be monitored. Based on these data, the application had been used for 22.68 hours in total till Oct-25-2020. Also, by estimation, people average spent 5 to 10 minutes filling out the form and reading the results. Moreover, the source code is also free to be downloaded on

    Software Flow

    When the users first access the software, they will read a description about endometriosis. This information is included in case the users are not familiar with the disease. An image is also shown next to the text to facilitate the understanding. Then, the users will read about the purpose of this software and how to operate it.

    The users will then be presented with guidance for filling out the questionnaire. Specifically, they will understand how many questions to answer, how to answer some specific questions, and the terms of privacy. Next, the users will finish the questionnaire based on the guidance.

    After answering all required questions, the users will click the “Run Prediction” button, and the software will make the prediction and display the results within one second.

    The users will read the predicted result, its interpretation, and available resources in the result panel. The predicted result will be either positive or negative. The interpretation indicates that the predicted results are not a diagnosis and suggests that users should consult a doctor for further information. The available resources include our Endometriosis Educational Program (see Human-Education page of our Wiki) and URL to other online resources. After reading the result, users can either close the window or read more about the disease.

    Future Directions

    Our Endometriosis Risk Calculator is a free, online software tool that aims to assess users’ risk of having endometriosis. Besides the risk calculation function, it also contains a basic introduction to the disease as well as many useful resources. This endometriosis can potentially be tested and validated in clinics and subsequently be used to assist doctors’ diagnosis. Moreover, the software can be integrated in many mobile applications including menstrual tracking apps. In a nutshell, this online software still has great potential not only in medical diagnosis but also in general for women’s reproductive health.

  • Biomarker Database
  • Inspiration

    After our team set up the goal to detect endometriosis non-invasively, our wet lab team began to identify potential biomarkers for endometriosis. To do so, we spent more than two months reading primary research articles and consulting professionals in the field; we also went through the Wiki pages of previous iGEM teams who also chose endometriosis as their project. Although we successfully identified biomarkers for our project, we found this searching process time consuming, energy draining, and sometimes frustrating, as we cannot find enough information regarding the biomarker’s concentration, specificity, or standardized detection method. Meanwhile, we noticed that, from 2016 to 2020, on average 26 iGEM teams per year selected the diagnostic track, and most of them could not avoid the process of identifying biomarkers. In addition, although many teams tried to diagnose the same disease, they did not benefit from previous teams’ findings, as the processes of identifying biomarkers were not always well documented on their Wiki. Considering these situations, we decided to create a biomarker database where iGEM teams can store their information about biomarkers as a resource for future iGEM teams who work on the same topic.

    Software Development

    To develop the software tool, we followed the classic six phases of the software development life cycle as we were developing the endometriosis risk calculator: requirement analysis, design, coding, testing, deployment, and maintenance (Vlasova n.d.). Note: we combined coding and testing due to time constraints; we also combined deployment and maintenance, as the two procedures were closely related.

    1. Requirement analysis

    Considering this biomarker database was designed specifically for iGEM projects, we wanted it to be highly accessible to iGEM teams, especially to future iGEM teams. Also, since the database was aimed to simplify the biomarker identification process for future iGEM teams, we wanted it to include not only the biological information of the biomarker but also information about the project; for example, why was the biomarker chosen or not chosen for the project. Moreover, we wanted to expand our database by inviting more iGEM teams contributing their biomarker information, the database would have a function that allows users to add in biomarker information independently. Finally, the database would be maintained stably for long time use.

    2. Design

    First of all, to make the software accessible to all iGEM teams, we decided to develop an online database that iGEM teams all over the world can access and browse with Internet connection. Secondly, to include enough information for each biomarker, we decided to include 11 variables for each biomarker. The name and explanation of each variable are listed in the Table 1 below. Thirdly, to add new biomarker information conveniently, we decided to design a questionnaire with each question linked to each variable in the database. Users can fill the questionnaire with their biomarker information for it to be added automatically in the database. Finally, we decided to deploy the software on a cloud server, so it can be maintained for a long time.

    In summary, we wanted to create an online database integrated in a website that has four pages: Home page, Browse page, Contribution page, and About page. Home page will tell the user that biomarker database is created for iGEM teams; Browse page will display all 11 variables and allow users to search for their biomarker information by keywords; Contribution page will allow users to add new biomarker information to the database; and About page will have an introduction of this database as well as our contact information.

    3. Coding and Testing

    Coding process and testing process were combined due to time constraints. To increase productivity, we coded individual pages separately followed by the testing and revision until it satisfied our design.

    For coding, the biomarker database was coded using sql, and the website was coded in Java, html, and CSS. To make the data table displayed on the website as interactive as possible, we used DataTables designed and created by SpryMedia Ltd. © 2007-2020 MIT licensed (SpryMedia Ltd. 2020). Since this type of data table is coded in Java, we used Java instead of php to build the framework of the website to maximize the compatibility.

    During testing, several major changes were made to improve the function of the database. Firstly, we added another variable named “Disease” that clearly states which disease is the biomarker for. Now we have 12 variables in the updated database. Secondly, we realized that it was too crowded to display all variables in the website window, simply because there are too many words. Therefore, we selected the 7 most important variables among the 12 to be displayed on the web page. Descriptions about the 12 variables can be found in the Table 2 below. Meanwhile, we added a download function that will automatically generate an Excel sheet containing the entire 12 variables, so that users will be able to download and review the complete biomarker information. This approach allowed us to improve the functionality, neatness, and interactivity while ensuring data integrity.

    4. Deployment and maintenance

    The software is deployed and maintained on a Linux server running on Google Server. This server allows us to maintain the database and make necessary changes on the website. For the website link, we use the domain provided by our university. After deployment, we manually input all biomarker information contributed by five of our collaborators through the Contribution questionnaire. The biomarker database now contains information of 32 biomarkers contributed by six iGEM teams including ourselves. The names of the contributors and number of biomarkers contributed by each team are listed in the table below.

    Below are the introductions to each website page.

    Figure 1: Home Page

    Figure 1 shows the Home page. On the left, it shows the name of the website, biomarker database, and a sentence stating that the database is contributed by iGEM teams. On the right, there is an image describing a classic procedure of detecting biomarkers from a blood sample. On the top, there is a tap bar that directs users to the four web pages: Home page, Browse page, Contribute page, and About page.

    Figure 2: Browse Page

    Figure 2 shows the Browse page. The main data table is displayed at the center of this web page. The data table contains a Search function at the top right corner. This function will be introduced later in the Software Flow section. On the top left, it allows users to see how many entries, or number of biomarkers, are displayed on the data table. On the bottom left corner, it shows the number of biomarkers displayed and the total number of biomarkers in the database. The “Next” button on the bottom right allows users to change pages to view more biomarker information. In addition, below the data table is the Download function that allows users to download full information of the displayed biomarkers. This function will also be described in the Software Flow section.

    Figure 3: Contribution Page

    Figure 3 shows the Contribution page. It has a questionnaire containing 12 questions. By filling out the questionnaire and clicking the Submit button, users are able to add new biomarker information into the database.

    Figure 4: About Page

    Figure 4 shows the About page. This page contains an introduction of the database. This introduction states the designer, purpose, and function of the database. It also contains our contact information.

    Software Flow

    1. Browse the database

    Figure 5: Searching function

    To browse our database, users will need to click into the Browse page from the tap bar. Users can then search the database by entering key words in the Search Box at the top right corner. For example, suppose that users want to find biomarkers for CKD, Chronic kidney disease. They will enter CKD in the box, and the table will automatically display the biomarkers whose information contains the word CKD (Figure 5). In this example, the table displays 5 biomarkers that contain the word CKD by filtering from 32 total biomarkers. The users will first read about the information of selected 7 variables: biomarker name, type, disease, specimen, concentration, detection standard, and contributor. This will provide the users with basic biological information about the biomarker. If the users want to know more about the biomarker and the team’s project, they can search the official iGEM team page based on the contributor name or click the Download button to download an Excel sheet with full information.

    Figure 6: Downloading function: Download button

    By clicking the button, the browser will download the auto generated Excel sheet (Figure 6). Opening the Excel sheet, users can read information on the entire 12 variables of the selected 5 biomarkers for CKD (Figure 7).

    Figure 7: Downloading function: Excel Sheet

    2. Add new biomarker information

    To add new biomarker information, users will firstly need to click into the Contribution page from the tap bar. Then, they will fill out the questionnaire form (Figure 8). When finished, they will click the Submit button, and a new entry is automatically added. An example is given below. This example is the IP-10 biomarker information contributed by the MIT 2020 team.

    Figure 8: Contributing new biomarker information: filling out the questionnaire.

    After submitting, users would be able to find the biomarker information they just entered by searching for keywords in the Browse page. In the above example, users can search for the keyword MIT or IP-10, and the data table will display this piece of data (Figure 9). Users can also down the full Excel sheet using the Download function.

    Figure 9: Contributing new biomarker information: newly added data is displayed on the data table.

    Future Directions

    We have created an online biomarker database containing biomarker information contributed by iGEM teams. This biomarker database can be used by future iGEM teams to search for biomarkers and diseases studied by previous iGEM teams. This biomarker database will significantly simplify their biomarker identification process. In the future, to better maintain the database, a login system can be installed to monitor the number of users. Also, to increase interactivity, a database user interface can be installed for contributors to edit and update their biomarker information in the database.

  • Github Release
  • Here you can find the release of the Software Tools on Github

  • References
  • Apostolopoulos, N. V., Alexandraki, K. I., Gorry, A., & Coker, A. (2016). Association between chronic pelvic pain symptoms and the presence of endometriosis. ​Archives of gynecology and obstetrics​, 293(2), 439-445.

    Droz, J., & Howard, F. M. (2011). Use of the Short-Form McGill Pain Questionnaire as a diagnostic tool in women with chronic pelvic pain. ​Journal of minimally invasive gynecology, ​ 18(2), 211-217.

    Fuldeore, M. J., & Soliman, A. M. (2017). Prevalence and symptomatic burden of diagnosed endometriosis in the United States: national estimates from a cross-sectional survey of 59,411 women. ​Gynecologic and obstetric investigation​, 82(5), 453-461.

    Peterson, C. M., Johnstone, E. B., Hammoud, A. O., Stanford, J. B., Varner, M. W., Kennedy, A., ... & Louis, G. M. B. (2013). Risk factors associated with endometriosis: importance of study population for characterizing disease in the ENDO Study. ​American journal of obstetrics and gynecology, ​ 208(6), 451-e1.

    Schliep, K. C., Mumford, S. L., Peterson, C. M., Chen, Z., Johnstone, E. B., Sharp, H. T., ... & Buck Louis, G. M.(2015). Pain typology and incident endometriosis.​ Human reproduction,​ 30(10), 2427-2438.

    Vlasova, Anastasiia. n.d. 7 Steps for effective software product development. Accessed 10 25, 2020.

    SpryMedia Ltd. 2020. Add advanced interaction controls to your HTML tables the free & easy way. Accessed 10 26, 2020.