The goal of my summer research seems fairly straightforward – build an application that takes in the DNA sequencing data of cancer cells and infer their evolutionary history. However, as I began to delve deeper into my project, I have encountered several challenges.

This is my first time undertaking a computational project at this scale. After two years in a “wet lab” where I spent my days culturing bacteria, purifying proteins, and running gels, transitioning to a purely computational “dry lab” required some adjustment. Instead of physically handling samples and dealing with instruments, now I do almost all of my work on my laptop. Although I had to adapt to this new setting and acquire a new toolkit for tackling my research question, some skills I picked up from the wet lab have been useful to computational research as well. Attention to detail and troubleshooting are invaluable, no matter the type of research.
One of the biggest hurdles that I faced in my first venture into computational research was bridging the gap between conceptualization and implementation. After identifying a goal for my application, I had to consider the complexities behind implementing it. Initially, due to my lack of experience, I struggled with creating suitable data structures and algorithms for my specific tasks. The flexibility of coding actually hindered my progress, because I tended to overthink every programming decision. Over time, I realized that while it is good to have a plan, sometimes it is impossible to anticipate every potential issue, and it may be more suitable to proceed with the implementation and address problems as they emerge.

Then, of course, with any coding project, there are always bugs to catch. At this point, I am more surprised when my code runs properly the first time than when it crashes or outputs something completely unexpected. As the project increases in scale and complexity, the bugs become harder to identify, which can be frustrating at times. The process of debugging has been an exercise in patience and problem-solving. Each bug has honed my ability to isolate the root cause of the problem and utilize online resources effectively.
Despite these challenges, I have made substantial progress in developing my application. Seeing various pieces of code slowly come together into a cohesive software has been immensely satisfying, and I am excited to begin testing and optimizing my program with simulated cancer datasets. Designing experiments to rigorously test how my program handles various scenarios that occur in real cancer cells will no doubt uncover more bugs and challenges. However, I view them as opportunities for further growth and refinement of my skills.
Your shift from the wet lab to computational research is really inspiring. It’s great to see how you’ve adapted to doing everything on your laptop and using your wet lab skills like attention to detail. Coding can be super tricky, especially when you’re starting out, but you’re handling it well by tackling problems as they come. Debugging sounds frustrating, but it’s awesome that you’re seeing it as a chance to learn. Seeing your code come together must feel amazing. Definitely continue using your resources although it’s adjustment you have mentors and advisors willing to aid and give advice when need be. Keep going—you’re doing an awesome job!
LikeLike