Team:UCSD Software/Notebook

From 2014.igem.org

(Difference between revisions)
Line 212: Line 212:
#top-section { /*-- styling for default menu bar (edit, page, history, etc.) --*/
#top-section { /*-- styling for default menu bar (edit, page, history, etc.) --*/
-
background-color: #003D99;//#383838;
+
background-color: #efefef; //#003D99;//#383838;
border: 0 none;
border: 0 none;
height: 14px; // 46 px
height: 14px; // 46 px

Revision as of 00:31, 16 October 2014


Week
















Entries

Justin Huang

When Jenhan first approached me about mentoring undergraduate students for a summer software project in synthetic biology, I was initially very excited at the opportunity, but at the same time I was nervous. Many of the students we recruited had very little experience programming, and our project was very ambitious. We spent the better part of the Spring quarter teaching skills to the undergraduates ranging from synthetic biology concepts, to algorithm development, to learning how to read scientific papers. I was pleased and impressed at how quickly the undergraduate students were able to pick up these new skills, and when summer arrived, we were ready to hit the ground running.

My undergraduate background was in biology and mathematics, but all of my research experience had been in bioinformatics up to this point. I had never worked on a synthetic biology project either, but after attending IWBDA 2014, I was able to learn more about the field, giving me the confidence to move forward in mentoring this group of undergraduates. Software development was also a new project style for me, so the process has also been a great learning experience for me as well. Much of my summer was spent helping the students develop and analyze algorithms to perform searches and queries across our manually-curated networks. I was also involved with the database schema development to better represent the network we were trying to present. As a member of the Trey Ideker lab at UCSD, I have spent the past year working closely with network biology and tools used in network biology, which has been important to the development of both the back-end database and the front-end application.

Additionally, as a new graduate student, I felt it was an excellent opportunity to begin sharpening my skills as a teacher and mentor to students not only on their projects but also their academic careers. I have found that I myself have a great love for teaching and lecturing, and it has truly been rewarding to see how far many of these students have come this year. This year, we have also been part of UCSD's very first iGEM team ever, which in itself, comes with a unique set of challenges. Our team did all of its own fundraising to pay for the registration costs of iGEM as well as the travel costs to Boston. Along the way, we have also pitched our team in addition to the project itself to several labs at UCSD in hopes of creating a sustainable team for years to come. However, even with these limited resources and barriers to our project's development, particularly in terms of our wet lab validation for this project, I am extremely pleased with what we've been able to accomplish this summer and I am proud to have been a part of UCSD's first iGEM team.

Week 1

Huwate (Kwat)
  1. Generated Pydoc
  2. Learnt SQL
  3. Learnt Petri Nets
  4. Read about past IGEM teams and projects
  5. Read emailed papers and also helped others understand their assigned papers
  6. Read more about synthetic biology theories and concepts
Lauren
  1. Did Learn Python the Hard Way
  2. Read Python Wiki
Gary
  1. Read Cytoscape.js API
Joaquin
  1. Learnt Boolean Networks
  2. Continued Petri Nets
  3. Learnt Dynamic Programming and Path Traversal
Rohit
  1. Learnt Cytoscape
  2. Learnt Python
  3. Learnt Petri Nets
  4. Attempted to develop basic parser for Pigeon commands
  5. Read up on synthetic biology and Pigeon images
Fernando
  1. Finished command line interface
  2. Acquired snippet of Linh's database

Week 2

Huwate (Kwat)
  1. Learnt boolean networks
  2. Continued learning Petri Nets
  3. Looked for useful Python packages for the project
Lauren
  1. Learnt Boolean networks
  2. Continued learning Petri nets
Gary
  1. Continued playing with Cytoscape.js add/remove nodes
Joaquin
  1. Learnt Boolean Networks
  2. Learnt reachability treees
  3. Developed Entity Relationship Diagram
Rohit
  1. Learnt Boolean networks
  2. Found SNAKES- a Python package that utilizes Petri nets
Fernando
  1. Learnt Boolean networks
  2. Disambiguated Linh's device composition

Week 3

Huwate (Kwat)
  1. Learnt SQL
  2. Learnt traversal algorithms
  3. Read assigned papers to populate database
  4. Read about past IGEM teams and projects
Lauren
  1. Petri net reading
  2. CodeAcademy Python tutorials
  3. BFS/DFS algorithms
  4. Read papers to fill in database
Gary
  1. Learnt basics of Angular.js
  2. Meet with CyNetShare team
  3. Got approval to use CyNetShare code
Joaquin
  1. SQl columns modification
  2. Read papers to fill in database
Rohit
  1. Learnt SQL
  2. Conceptualized traversal algorithms
  3. Read assigned papers to populate database
Fernando
  1. Found possible approach to weigh our edges using "Quantitative Estimation of Activity and Quality for Collections of Functional Genetic Elements" and its database
Valeriy
  1. Started relearning python to work with the traversal as suggested by Jenhan
  2. Read a few chapters from different books about Jquery functions to use for data loading onto the website

Week 4

Huwate (Kwat)
  1. Learnt HTML
  2. Went over everyone else's codes
  3. SQL cleanup
Lauren
  1. Wrote code for BFS and DFS
  2. Learn Python the Hard Way
  3. Prepared presentation for expanded BFS on Monday
Gary
  1. Continued shifting through CyNetShare code and annotate functions
Joaquin
  1. Learnt Bioservices for Miriam
  2. Read papers to fill in database
  3. scheme for UUID
  4. add implicit output list to device table
  5. promoter sequence database (biobrick registry)
  6. insert_into_database fix
  7. determine necessary data for device input
Rohit
  1. Worked on traversal algorithm
Fernando
  1. Continued debugging network
  2. Updated database
Valeriy
  1. Learnt Angular.js main functions to use for the website
  2. Went over more CyNetShare code
  3. Read a few articles about visualizing data using JSON files and different techniques to do so

Week 5

Huwate (Kwat)
  1. Created database structure
  2. Normalization complete
  3. Working on algorithm
  4. Reading on petri nets
  5. Learning about designing wiki
  6. Populating new database
  7. Learnt more about Petri Nets
  8. Learnt more about SQL and its functions
  9. Met with Joaquin and Fred to brainstorm the traversal algorithm
Lauren
  1. Edited the Petri Net traversal to accept multiple inputs
  2. Formatted integration of Bolean logic and multiple outputs
Gary
  1. Busy with Final Exams
  2. Began outlining Web part of presentation
Joaquin
  1. Designed a new structure for the database and the traversal
Rohit
  1. Improved BFS algorithm
  2. Populated database
  3. Kept journal clean
Fernando
  1. Incorporated NetworkX into script
  2. Began Boolean Satisfiability Problem
Valeriy
  1. Worked on designing a specific JSON file to visualize database with CyNetShare
  2. Played around with more JSON data to add more key values and data
KP
  1. Enabled CyNetShare on his server
  2. Cleaned up web dev part of master branch
Fred
  1. Met with Joaquin and Huwate (Kwat), improved database structure, finished database normalization, prepared for presentation and traversal algorithm

Week 6

Huwate (Kwat)
  1. Cleaned the database and commented on everyone's data
  2. Worked on search algorithm
  3. Read about Petri nets
  4. Tried to modify traverse algorithm to fit Petri Net model
Lauren
  1. Edited the database
  2. Fixed errors in traversal
Gary
  1. Continued to clean up database
  2. Added NOT gate entries to AND gates involving repressors
  3. Contributed to website portion of presentations
  4. Learnt scale vector graphs for possible plotting
Joaquin
  1. Filled database PowerPoint presentation
  2. Filled database section
Rohit
  1. Improved BFS algorithm
  2. Populated database
  3. Kept journal clean
  4. Worked on presentation
Fernando
  1. Incorporated NetworkX into script
  2. Began Boolean Satisfiability Problem
Valeriy
  1. Worked on designing a specific JSON file to visualize database with CyNetShare
  2. Looked over database
  3. Thought about possible website designs
  4. Played around with JSON data
  5. Edited more database information
KP
  1. Enabled CyNetShare on his server
  2. Cleaned up web dev part of master branch

Week 7

Huwate (Kwat)
  1. Made a script that parses a user input, searches graph and returns one more more linear searchable space
  2. Learned SNAKES
  3. Learned SQL stored function
  4. Provided Fernando data for analysis
Lauren
  1. Added traversal algorithm to presentation
  2. Updated slides for iGEM presentation and added figures explaining overall traversal algorithm
  3. Wrote project description
Gary
  1. Continued to clean up database
  2. Got CyNetShare running on NetBeans
  3. Discussed implementing Ryan’s modeling to the application
Joaquin
  1. Worked on presentation
  2. Started script to get JSON information
Rohit
  1. Added minimum spanning tree slides to presentation
  2. Started learning JSON
  3. Wrote project description
Fernando
  1. Read Overpowering the Component Problem and Circuit Simulation of Genetic Networks
Valeriy
  1. Designed web app page
  2. Worked on wiki
  3. Added slides to presentation

Week 8

Huwate (Kwat)
  1. Finished parser
  2. Finished database structure
  3. Wrote pseudocode for search algorithm
  4. Learnt SQL stored function
KP
  1. Changed size/shapes of nodes in CyNetShare
  2. Began learning Angular UI Bootstrap
  3. Began working on carousel within CyNetShare
Gary
  1. Added dynamic labels to graph that enumerates lines as they are added
  2. Got CyNetShare running on NetBeans
Joaquin
  1. Finished operon, plasmid I.D.s etc. In database
Rohit
  1. Worked on JSON
  2. Edited presentation
Tiffany
  1. Modified pigeon command generator for plasmid to generate commands for each individual operon
  2. Modified logo
Valeriy
  1. Designed web app page
  2. Worked on wiki
  3. Added slides to presentation

Week 9

Huwate (Kwat)
  1. Got inputs on parser working
  2. Began working on outputs and verifying codes
KP
  1. Remote
Gary
  1. Finished adding line removal buttons to legend
  2. Cleaned up Web Dev branch
Joaquin
  1. Populated working data
Rohit
  1. Worked on JSON
  2. Began learning NetworkX
  3. Revisited learning Cytoscape

Week 10

Huwate (Kwat)
  1. Patched codes together
  2. Finished database with Joaquin
  3. Worked on reachability
  4. Worked on convergence
KP
  1. Remote
Gary
  1. Validated database
  2. Drafted JSON format
  3. Went remote
  4. Learnt how to use database
Joaquin
  1. Parsed excel file into database
  2. Prepared for presentation
Rohit
  1. Wrote Python script that takes SQL query and outputs JSON
  2. Began learning Cytoscape.js
  3. Began learning igraph

Week 11

Huwate (Kwat)
  1. Worked on poster
  2. Worked on presentation outline
  3. Updated traverse code
  4. Updated Google Drive
  5. Updated Parser again
  6. Updated reachability analyzer again to not return AND logic
KP
  1. Remote
Gary
  1. Remote
Joaquin
  1. Designed master Python
  2. Designed device insert page
Rohit
  1. Read up on network motif algorithms (mfinder, color-coding, Kavosh)
  2. Decided on Kavosh
  3. Began learning CytoKavosh
Fernando
  1. Almost finished JSON graph constructor
Lauren
  1. Verified database code compatibility with network traversal

Week 12

Huwate (Kwat)
  1. Populated and finalized database
  2. Combined visualization property with traverse code
  3. Tested and debugged traversal algorithm
  4. Started working on presentation
KP
  1. Remote
Gary
  1. No longer remote
  2. Met with Ryan and Jenhan to refine modeling development directoin
  3. Decided to use dictionaries of each operon's modeling information
  4. Stored equations locally for reference
Joaquin
  1. Populated new database structure
  2. Implemented dictionaries necessary for traversal
Rohit
  1. Continued network analysis with Kavosh
  2. Began validating database
Fernando
  1. Remote
Lauren
  1. Generated DOT file creator to retrieve node coordinates from GraphViz

Week 13

Huwate (Kwat)
  1. Worked on reachability
  2. Worked on convergence
  3. KP
    1. Remote
    Gary
    1. Rendered full network JSON
    2. Tweaked HTML and laid down function frameworks for search box
    3. Reorganized app HTML for easier styling and positioning
    Joaquin
    1. Fixed operon I.D.s in database creator
    2. Fixed operon to output transition mapping
    3. Connected positions to JSON creator
    4. Worked on Pidgeon
    Rohit
    1. Rendered full network on CytoScape
    2. Attempted to run Linux VirtualBox on my machine to run CytoKavosh
    Fernando
    1. Remote
    Lauren
    1. Debugged JSON file creator

Week 14

Huwate (Kwat)
  1. Worked on update functions
  2. Worked on documentation
  3. Worked on testers for traversal algorithm
KP
  1. Remote
Gary
  1. Connected algorithms and servlet between database and SBIDer
  2. Modified GET requests to accept JSON strings instead of JSON files
  3. Edited color scheme and style of nodes
Joaquin
  1. Connected algorithms to servlet between database and SBIDer
  2. Integrated database into file creator
Rohit
  1. VirtualBox did not work
  2. Ran CytoKavosh on CSE lab Linux machines and found motifs
Fernando
  1. Worked on SBML modeling script
  2. Finished QualitativeSpecies class and Modeling class
Lauren
  1. Integrated database into file creator

Week 15

Huwate (Kwat)
  1. Worked on update functions
  2. Worked on documentation
  3. Worked on testers for traversal algorithm
KP
  1. No longer remote!
Gary
  1. Brought all basic functionality online remotely
Rohit
  1. Made wiki notebook for past 15 weeks
  2. Wrote network analysis/Kavosh documentation
  3. Updated slides to include motifs found with Kavosh and sent to Jenhan/Justin/Ben
Lauren
  1. New names for pigeon files
  2. Added colors to each species so that no color repeats within a single operon