Team:Wellesley HCI/Notebook/VeronicaNotebook

From 2012.igem.org

Revision as of 15:09, 8 September 2012 by Vlin (Talk | contribs)

Wellesley HCI iGEM Team: Veronica's Notebook

Veronica's Notebook


Contents

May 29: First day of the summer session!

Today, we attended the Summer Research Program Orientation - we got to meet our fellow researchers and faculty. Orit presented an introduction about human-computer interaction and the design process we will be following. We received our mentors and were also split into subgroups to start our research. My group - Casey, me and Nicole - is researching semantic search and the importance of it in a synthetic biology setting.

May 31: Intro to the surface

I conducted some research, reading up on documents about semantic search and synthetic biology. Later, I learned how to program in C# today through some tutorials on the Microsoft Surface. The tutorials led me through some basic tasks, such as creating an image and allowing it to be resized with a maximum and minimum length and width, grouping multiple objects in categories, and setting an object's initial placement on the surface. For using C# and the Microsoft Surface for the first time, it did not seem too difficult - I am excited to start coding projects on the surface.

June 1: More surface tutorials

Microsoft Design Tutorial

I learned about the design principles and guidelines of Microsoft Surface applications. I read about the Windows 8 OS and was introduced to the metro-style apps of the new user interface. Many of the general guidelines were similar to the ones I learned for designing iOS applications, such as focusing on the user and making important objects larger. Other principles were specific to the Windows 8 environment, such as considering how the user navigates the app based on location of controls and gestures. I started the tutorial on the Microsoft surface, but continued it on my computer. Afterwards, I read some more documents and articles about semantic search.

June 4: Field trip to Microsoft NERD Center!

Microsoft NERD Center in Cambridge, MA
The new Windows 8 Interface

In the morning, I continued my research about semantic search. At lunch, I attended a workshop on Statistics, where we reviewed the concepts of descriptive and inferential statistics. During the afternoon, we all took a field trip to Microsoft NERD Center in Cambridge. The Microsoft building was very interesting - while everything was simple and clean, the colors of the interior made for an environment that was both inspiring and peaceful. After viewing parts of the building, two Microsoft employees sat down with us to chat about Windows 8 and our project. They started with a demo of the new Windows 8 operating system on the new Microsoft tablet. Its first unique feature was the picture password to log in - instead of choosing a numerical password, the user could choose a photo and tap a particular pattern on the photo (i.e. connecting certain faces or going around specific objects) to log in. The next component of the operating system was the main user interface; Windows 8 uses a metro user-interface that displays icons in titled groups. It includes a semantic zoom feature, which allows users to display either the groups, as a big picture, or each group specifically, by pinching the screen. Windows 8 also connects users by enabling users to log in to several social media networks at once and displaying all of the contacts' statuses and photos in one place. Furthermore, the touch-based gestures all follow a different logic - for example, swiping from the right displays a charms menu, swiping from the left switches the application, and swiping down brings up additional menus. I found that the gestures made the tablet fairly difficult to navigate at first, as it took some time and practice to get used to all the various gestures. After watching the Windows 8 demo, we learned about developing metro-style apps through Visual Studio 11 and Blend for Visual Studio. It was similar to Xcode in the way that the developer could drag objects into the view and write code for more detailed functionality. Ultimately, the most important thing I learned was the semantic zoom feature of the Windows 8 OS - since my team is researching semantic search and semantic zoom, it was encouraging to see how easily semantic zoom could be integrated into the apps. Semantic zoom would allow the users to view the provided information at a glance without scrolling through all of the information. Overall, it was a very productive day.

Jun 5: A day in the wet lab

Watching Professor Kuldell's presentation
In the wet lab!
Smelling the banana in E.coli

We spent the entire day at MIT with Professor Natalie Kuldell. In the morning, she presented several lectures. She introduced the field of synthetic biology and explained the typical process of synthesis, abstraction, and standardization. We learned about the more technical side of synthetic biology - how researchers find the section of the gene they want, how the cell duplicates genes, etc. Professor Kuldell then discussed "Eau d'coli," an iGEM submission from MIT in 2006. It was very interesting to learn about their project, as it is a real application of synthetic biology that our software project aims to improve. MIT's goal was to genetically engineer E.coli cells to smell like banana and wintergreen. We covered their entire process, as well as that of the cells and cell parts. In addition, we watched a video of MIT's presentation at iGEM to fully understand the challenges they came across. As I learned, I connected their process with our semantic search project, and wondered a couple things - how did they search the smells and narrow them down to only banana and wintergreen? How did they know what promoter to use? Was it written somewhere that indole was what produced the natural smell of E.coli? After Professor Kuldell's lectures, we went through a lab safety lecture and then headed to the lab to conduct some experiments of our own. The first lab, titled "What a Color World," was related to the MIT iGEM's "Eau d'coli" project. We prepared 2 different E.coli strains for transformation and then transformed them with purple-color generator and green-color generator. In the second lab, titled "iTunes device," we examined promoter and RBS (ribosome-binding site) combinations to optimize beta-galactosidase output. We used test tubes, pipets, petri dishes, and a spectrophotometer to determine which combination was the best. I was shocked by how precise the measurements had to be, the length of time it took to see any results in experiments, and how much work had to be done to prove one small thing. Our day ended with an overview of the day and our impressions of synthetic biology.

Jun 6: Continuing research

We spent the day conducting more research and preparing for our presentations. My team discussed the possibilities of using semantic search in a synthetic biology environment. We examined several semantic search engines with APIs we could potentially implement. In addition, we brainstormed advantages of using semantic search and semantic zoom.

Jun 7: More research

Celebrating my birthday in the lab!

Today's my birthday! The lab surprised me with a cake, lots of fruit, and ice cream at lunch...probably the best study break ever. After researching in the morning, we met with Orit and Consuelo in the afternoon. They gave us several helpful suggestions - they encouraged us to research more about how semantic search and semantic zoom can be implemented in a multitouch environment, and how it is relevant in human-computer interaction. They also asked us to check out specific API's to determine the feasibility of semantic search in our application. In addition, they gave us more direction with the research, suggesting that we look up abstracts on ACM's (Association for Computing Machinery) Digital Library.

Jun 8: Even more research

After exploring some of Orit and Consuelo's suggestions in the morning, we met with Eni, another computer science professor at Wellesley who is more familiar with the semantic web. She gave us many tips and ideas to explore. She explained RDF and OWL, and suggested an article from the American Scientific Journal about the origins of the word "semantic." She also encouraged us to check out Google's Knowledge Graph, which is essentially the same thing as a semantic search engine. Eni referred us to the International Conference on the Semantic Web, and then gave us short summaries of Apache Jena and Apache Lucene to help us with possibilities of implementing semantic search and semantic zoom. Overall, it was a very helpful meeting - we spent the remainder of the afternoon researching her suggestions.

Jun 11: Presenting the research

Starting the brainstorming process
More brainstorming

Today we wrapped up the research on semantic search. We spent half of the morning putting our presentation together, and we spent the other half watching Madeline Albright and Hillary Clinton speak at the Women in Public Service Institute opening ceremony. We began our presentations right after lunch. Each group presented their topic for about 15-30 minutes, and then the entire lab group discussed the topic and brainstormed potential challenges, features and methods of implementation. After each group finished, our lab team split into two groups, each of which came up with 5 different project ideas. My group had a variety of ideas - one was a "bubble-themed" way of organizing the menu and data on a tabletop surface. Another was using the paper-lens feature to display different characteristics of a gene through a projection. The day enabled me to learn about other topics in Human Computer Interaction and to brainstorm ambitiously about potential projects.

Jun 12: Another day in the wet lab

Learning at BU

We spent the entire day at Boston University's Photonics Building with their iGEM wet lab team. We began the morning with an introduction to synthetic biology and biology basics: we learned the definition of synthetic biology - as quoted from Ahmad Khalil and James Collins, two well-known researchers in the field, "Synthetic biology is bringing together engineers and biologists to design and build novel bimolecular components, networks and pathways, and to use these constructs to rewire and reprogram organisms." We then went on to cover the parts of a transcriptional unit, including the definitions of a promoter, a ribosome binding site, a gene and a terminator. In addition, we reviewed plasmids and bacterial transformation. Finally, we learned about the methods that the BU wet lab team is using; knowledge of their experimental process enables us to better understand the needs of our potential users. We also shared our researched features and potential projects. Overall, it was a valuable experience to learn about a real wet lab team's process and to share our ideas.

Jun 13: Demoing and Brainstorming!

Demoing the Beast to Agilent rep
Brainstorming project ideas about semantic search

As a continuation of yesterday's brainstorming, the Boston University iGEM team came to Wellesley today. Before they arrived, we gave a demo of our Beast surface and its applications to a representative from Agilent. He gave us some thoughtful feedback. In the afternoon, we all gathered in a room and covered the walls with ideas. We had four different categories - the Lab Organization Tool (originally the eLab Notebook), the Beast (both micro and macro features), Semantic Search, and Art. For the first hour, everyone wandered around the room, exploring the ideas and notes already written and then adding their own. Then, we sat together as a group and discussed each topic. We came up with several great ideas for each topic, and we have our work clearly cut out for us.

Jun 14-15: More brainstorming

More brainstorming of project ideas

Unfortunately, there was a personal emergency and I was unable to show up in the lab these 2 days. From my understanding, the lab continued researching and brainstorming. My team aimed to look at the registry and attempt to convert it to RDF to investigate how easily semantic search could be implemented.

Jun 18: Brainstorming and Researching

Today, I spent the morning catching up on all the brainstorming I missed. In the afternoon, I researched previous iGEM teams on the iGEM archives to see if any teams had already converted the iGEM registry into RDF format. I found a couple teams who had worked with the registry, but none of them converted it to RDF. At the end of the day, we decided to approach the problem differently.

Jun 19: Using Google Custom Search

We examined other ways access data from the Parts Registry and the iGEM registry. First, we looked into using a web crawler. However, we decided to try mining data from Google Custom Search first. We figured out how to use the Google Custom Search results through Visual Studio and have the results display in a data grid. We had a team meeting with Orit in the afternoon to discuss the MoClo Planner and the work we had done so far - she was happy we had figured out how to implement Google Custom Search.

Jun 20: Creating a Web Crawler

As we examined our work from yesterday, we realized that our data grid of the Google Custom Search results could only display 10 results, and those 10 results did not match those that came up online. Again, we had to abandon that approach. We resorted to creating a crawler, using a previous PubMed crawler as a template. Our first job was to customize it to pull data from the Parts Registry.

Jun 21-22: Continuing with the crawler

Nicole and I continued to work on the back-end - we created two files: one to access the data on the Parts Registry and one to grab specific data to put in each part's data sheet. We worked with a few other team members to come up with a comprehensive data sheet template.

Jun 25: Still working on the crawler

Today, we made some more progress on the web crawler - we got RegList to extract data from the Parts Registry. We also used the tentative data sheet template to do some basic coding on RegDataSheet. Nicole and I are getting better at pair programming.

Jun 26: Almost finished with the crawler

We're getting closer to finishing the Parts Registry web crawler. We worked on it all day, and by the end of the day, we were able to have the console print out a tentative "data sheet," complete with the name of the part, its link, its type, and its regulation. It also showed some basic information, including the part's SBOL image, its availability and usefulness, its sequence, its length and number of twins. Finally, it could display some protocol information as well as references, including the authors of the part, the group and the date.

Jun 27: Last parts of the crawler

This morning, we encountered a problem in our crawler - the same exception kept coming up, so we spent all morning fixing it. In the afternoon, we met with Linda to see what she wanted from us in order to connect her front end and our back end.

Jun 28: A new crawler

We reorganized our project so that our information is produced in a new text file, in a format and order that match that of the front end data sheet (produced by JavaScript and HTML). In the middle of the day, we met with Orit to discuss our progress and goals for the next few days. I was split off into a different project - my new goal was to create a web crawler for the iGEM archive by the middle of next week.

Jun 29: iGEM Bonding at MIT

We spent the entire day at MIT - in the morning, we met up with the MIT and BU iGEM teams to attend Professor Walter Lewin's physics lecture. Although this is his last lecture series, his enthusiasm does not reflect his age at all. His talk was very informative and interesting. After the lecture, we went to lunch and bonded with the other teams. Following lunch, the MIT iGEM team took us to their lab - we got to see their lab area, their lab robot, and their other team members. Overall, today was a great opportunity to get some of our questions answered - we each got to explain our project and then we exchanged feedback.

July 2-3: Working on the iGEM Crawler

I spent both days working on the iGEM Archive Crawler, as there were many bugs and kinks. By the end of the two days, the web crawler could extract results from the archive (years 2006 - 2011) and display the title and the content of each result.

July 9: Packaging the iGEM Crawler

Today, I finished up the iGEM Archive Crawler. I added comments and properties, and also packaged the project for Kara and Nahum, our "MoClo people." They will add it to their interface and make a working search function. In addition, I made an executable of my crawler for Linda - I learned how to make a console application and have it accept a search query in the command prompt. In the afternoon, I began a new project: the primer designer. I attained some of last year's code (the Optimus Primer) to read over and understand the project.

July 10: Beginning the Primer Designer Backend

I actually began working on the back end of the primer designer today. I made several methods - one to generate the hairpin possibilities when given a primer sequence, one to eliminate the first and last possibilities, and other methods that run various tests on the sequence to determine if it can be used or not.

July 11: Continuing the Primer Designer Backend

Today, I continued to work on the primer designer logic. I added more methods, including one to calculate Gibbs' Free Energy and one to return the worst case of Gibbs Free Energy. These methods are used to conduct three tests: the hairpin test, the self-dimer test, and the hetero-dimer test, all of which return the worst case scenario.

July 12: Finishing the backend

I spent the morning fixing bugs, and by noon, the backend was working very well. When a sequence is put in, the system runs through the tests and returns a primer with all the alignments shown. In the afternoon, I began designing the primer designer user interface - I followed our paper prototype and coded on Microsoft Visual C# 2010.

July 13: Working on the UI

First page of the Primer Designer UI so far!
Second page of the Primer Designer UI

I dedicated the entire day to the primer designer UI - the appearance is mostly done, with text labels, buttons and textfields. The SurfaceListBox does not have items in it yet. I followed several tutorials throughout the day to get the hang of the syntax and styling.

July 16-17: Problem with touch

I used a majority of both days to figure out how to drag and drop from the SurfaceListBox to a ScatterView. I tried several scenarios, changing ScatterViews to SurfaceListBoxes and StackPanels, but was unsuccessful in getting it to work. I was stuck for a long time because the touch did not seem to register at all on the SurfaceListBoxItems, so I went back to my methods and went through them many times. By the end of the day, I still could not figure out the problem.

July 18: Demo & Resolving the touch problem

This morning, we demoed the Beast and the art project to international high school counselors. As we prepared for the demo, I learned how to calibrate the Beast. It was a very tedious process. The demo took about an hour - we presented to two groups of counselors and they all had many questions for us about the experience and studying computer science. After the demo, most of the lab went to the beach for the CS Department Beach Day - I opted to stay in the lab and work. I continued to work on the Primer Designer - after talking to Consuelo, we finally figured out why the touch was not working. The computer I was working on did not have the input simulator installed, and could not be installed because of the Windows 8. We decided I would continue the primer designer on the Microsoft Surface.

July 19: Demo #2 & Continuing UI

Batman: The Dark Knight Rises

We spent the morning demoing the Beast and the art project to 8 Upward Bound Chemistry students. They were very engaged with the presentation and activities, which was nice to see. After the demo, I worked with Kara on the Primer Designer - we got drag and drop to work. We made it so that when an item is selected in the SurfaceListBox, an image of the site shows up and can be dragged to certain StackPanels on the visualizer at the bottom. At night, the entire lab went to watch the premiere of "Batman: The Dark Knight Rises." It was a great bonding experience.

July 20: Presentation of our work

After the long night, we all came in a little later and prepared for the presentation at lunch. We went through all of the slides to make last-minute changes, and then at lunch, we presented our sub-projects and overall work to the rest of the Computer Science Department. It wasn't the best presentation, but it was definitely a great learning experience for all of us. After the presentation, we went back to working - I joined Kara in completing the front end of the primer designer, and adding the files from my back end.

July 23: Experiencing setbacks

Lunch meeting to discuss progress

Today, we encountered some setbacks - the executable file of my iGEM Archive Crawler was written in C#, so Linda discovered that it would not work with our CS department's Python server. I spent a majority of the morning trying to rewrite my program in Java - however, the two toolkits I used (HTMLAgilityPack and HTMLWebRequest) didn't seem to have equivalents in Java. I was able to change a lot of the syntax and replace some of the toolkits with code, but it was a very difficult process. In the early afternoon, we met with Orit and she suggested using a Windows server somehow - she told me to hold off on converting to Java until we really have no other options. After the meeting, I went back to working on the primer designer - we decided to redo the user interface so that the first page has less wasted space and can display the three tests that I coded for the backend. Before I left, I checked out the code from last year's primer designer to see their conditions for placing a checkmark or not. Hopefully by tomorrow, we will be close to finishing the front end and back end of the primer designer.

July 24: Adding the backend to the UI

While other students in the lab conducted user studies today, Kara and I worked on the primer designer. We realized that we could not put the alignment tests on the first primer designer page, so we changed the UI to add the test check boxes and text displays to the second primer designer page. After finishing the UI, we began to add the back end code to the main project. We added several new methods on top of the old ones we had - we discovered that we needed to test both the left sequence (also referenced as the forward sequence) and the right sequence (also referenced as the reverse sequence) for each test, so we made 6 different check boxes and text boxes. Once we finished that, we attended the BBQ that the Science Center Research Program was hosting. We all had hamburgers and hot dogs - it was a great end of the day.

July 25: Improving the Primer Designer

We started the morning off testing the backend methods for the alignment tests. Unfortunately, we ran into two errors (ContextSwitchDeadlock and "not a valid win32 application") and struggled for a few hours before fixing them. We finally got the three tests to run correctly and then show the results on the second primer designer page. We were also able to improve the first primer designer page - we allowed users to create their own fusion sites (they can type in their own four-letter sequence and drag it into the visualizer) , and we created a function for the "generate random fusion sites" button. The primer designer is definitely coming together.

July 26: User studies at Wellesley

Today was one of the most stressful days so far - I conducted three user studies with three pairs of Wellesley biology students. My job was to watch the users, restart the system if needed, and take notes of everything the users were doing and saying. Before the user studies in the morning, we prepared the MoCloPlanner project by fixing last minute bugs and putting try-catches around all of our code. We had one study in the morning, and the system didn't crash at all - we discovered several errors that we could improve on. We had a special good-bye lunch for our high school intern, and then conducted two more studies in the afternoon that weren't quite as successful as the morning one. During the first user study of the afternoon, the system crashed 4 times - search was slow, and then they pressed the same button too many times and there was a memory overload. The last study of the day was not as disastrous, but they were confused a lot. Overall, it was a long day but a great learning experience.

July 27: User studies at MIT

This morning, we prepared the system to be tested with the MIT iGEM team. Again, we fixed last minute bugs and tested search several times to prevent crashes during the study. I helped the team load our Microsoft Surface (named Uppy) into the car so they could take it to MIT. Once our 3 lab mates left for MIT, Kara and I continued to work on the MoClo Planner - however, since they took the surface we usually use, we had to downgrade to a different computer that was much slower. It wasn't very efficient, but we were able to fix a few issues. At lunch we attended a computer science talk - three groups of students presented about their summer research. One was about a nano car, one was about Euclidean geometry and one was about a freshmen orientation web application. They were all very interesting, and I am impressed by how much everyone has accomplished in such a short time. After lunch, we continued to work out bugs for the rest of the day. We received a report about the MIT studies; they gave us a pretty lengthy list of things to fix before Monday's BU user study. Kara and I worked over the weekend to finish it all.

July 30: User studies at BU

Today, we conducted user studies again. Consuelo, Kara and I prepped our system, loaded the surface into the car, and headed to Boston to test with the BU iGEM team. We wheeled Uppy to the meeting room and set up our camera and audio recorder. Similar to the last user studies we did, I took notes on the dialogue, actions and timestamps. First, we observed Traci and Sonya test our scenarios - Traci is a PI and the leader of BU's iGEM team, and Sonya is one of her graduate students. They had many suggestions for how to improve our system. Next, we tested with Shawn and Monique, the two members of BU's iGEM wet lab team. They didn't seem quite as picky, but offered a lot of helpful insight. By the time we finished, it was already 4 pm, so we headed back to the lab to update the rest of our team. We had a meeting when we got back and discussed all the things we still need to work on - much of the primer designer's logic was flawed, and we also had some UI issues.

July 31: Working on the poster and abstract

File:Postermoclo.pdf
The MoClo Planner/SynBio Poster

We had our work cut out for us, so we started the morning trying to fix some of the smaller issues. We fixed the interface of the second primer designer page so that it shows the complete sequence in a huge box, rather than having to scroll (like in the previous version). We also rechecked the sequence to make sure that the correct primer sequence was shown. In addition, we labeled everything, added the "GC" content of the sequence, and changed the manual tab to be the default tab of every page. For lunch, Kara and Kathy cooked pasta and Consuelo brought pie and ice cream. It was a great treat considering how much work we had to do. Overall, we finished more than half of the MoClo Planner to-do list, although many of the leftover tasks were the more difficult ones. In the afternoon, we spent awhile putting our poster and abstracts together.

Aug. 1: Correcting MoClo Issues

Discussing the poster speeches

Our to-do list still isn't empty, so we spent our morning fixing some more problems. We threaded the data sheet and changed the appearance of parts to display their common names instead of their Parts Registry Gene ID. We also changed the primer designer of Level 0 parts so that it only shows one fusion site on each side, instead of the two we had before. Kara and I got a little stuck figuring out how to set a default fusion site for a certain part, and so we spent awhile thinking about how to restructure certain parts of the primer designer. The art sub-team had to borrow Uppy for the afternoon, so we took a break and discussed the poster speeches instead. Our team also printed our final posters in the afternoon.

Aug. 2: Last day of the summer session!

Presenting our MoClo Planner Poster at the Poster Session!
Eating dinner at the Cuban restaurant

Today's the last day of the summer session! It seems like yesterday when I first met my lab mates. It was a pretty relaxed morning - I couldn't work on Uppy because the art team was preparing to demo their application on Uppy, so I wrote an audio transcription for one of my lab mate's interviews about the electronic lab notebook. It was one of our originally brainstorming ideas, but we decided to focus on other projects instead - the interview was interesting to listen to anyways. At lunch, the entire lab got together for about two hours and practiced introducing our project and answering potential questions. After that, at 2:00 pm, we all headed down to the Wellesley Summer Research Program Poster Session - everyone who conducted research this summer was there with a poster of their project. Since we had a large team and not very much room, we took shifts. I got to go around and see what other people accomplished, and I also got to tell others about our project. It was a great experience. Afterwards, the whole lab went to a Cuban restaurant for dinner to celebrate the end of the summer session. The iGEM experience has been so much fun so far, and I can't wait to come back in 3 weeks to continue working on the MoClo Planner.