Visualising Biological Data
January 31, 2024
Following the recent blog update, I wanted to go into detail about my internship with Goodwright, a company that creates software for scientists. I will go into detail about what I worked on, and talk about the technologies that aided me on this venture (spoiler alert - it was primarily React.js and Highcharts).
From Philosophical Inquiry to Front End Exploration: My Unexpected Path
My path to Front End Development was as unconventional as it was fascinating, beginning not in a computer lab, but amidst the pages of a philosophy book. As a student deeply immersed in philosophical theories and critical thinking, I developed a unique lens for viewing the world. Philosophy taught me to question, analyse, and seek deeper understanding, skills that would later prove invaluable in the realm of technology.
Diving into Front End Development, I began to see parallels between philosophical inquiry and coding. Both required a structured approach to problem-solving, a keen attention to detail, and an ability to make complex ideas comprehensible. As I learned JavaScript and explored React.js, I found myself applying the critical thinking skills honed during my philosophy studies.
I joined the internship with Goodwright at the start of September, and it spanned until the beginning of December. As a Front End Software Development Intern, I was tasked with an exciting challenge: to create dynamic data visualisation tools for biological data. This role was not just about coding; it was about storytelling, about translating the language of biology into visual narratives that were intuitive and engaging. It was here that my philosophical background and newfound passion for technology converged, allowing me to approach each project with a unique perspective.
In the next sections, I’ll share insights into the art of data visualisation in biology and the specific technologies I embraced. Stay tuned!
Visualising the Invisible: The Power of Data Visualisation in Biology
In the world of biology, the unseen and complex often hold the keys to understanding. However, this complexity can be daunting, especially when it comes to interpreting vast sets of biological data. This is where the art of data visualisation becomes not just useful, but essential.
Data visualisation in biology is more than just an aesthetic exercise; it's a critical tool that transforms abstract numbers into visual stories, making intricate data accessible and understandable. As a Front End Development Intern, I quickly learned that my role was akin to that of a translator - converting the intricate language of biological data into clear, intuitive visual formats.
The challenge, however, was significant. Biological data sets are often large, multidimensional, and nuanced. They require a keen eye for detail and a deep understanding of the underlying science to be represented accurately and effectively. My philosophical background, with its emphasis on analysis and interpretation, proved to be an unexpected ally in this endeavour. It equipped me with the ability to approach these data sets not just technically, but also conceptually, pondering over the best ways to present information that is both scientifically accurate and easily comprehensible.
This journey through the intricacies of biological data visualisation taught me an invaluable lesson: the best visualisations are those that tell a story, that guide the viewer through the data in a way that is both engaging and enlightening. It's a delicate balance of art and science, creativity and accuracy, a balance I strived to achieve in each project I undertook during my internship.
My Toolkit: React.js and Highcharts
React.js: Building with Efficiency and Flexibility
React.js stood out as a cornerstone of my development work. Its component-based architecture allowed me to build reusable, efficient visualisation components. This was particularly valuable in biology, where similar data patterns often recur across different studies. React's ability to manage state and props efficiently made it easier to handle dynamic data, crucial for visualisations that needed to update in real-time as users interacted with them.
Moreover, React's emphasis on declarative UI was a game-changer. It enabled me to create interfaces that were not just functional but also clean and user-friendly. React encouraged a modular approach to development, where I could focus on individual components, making the whole process more manageable and less prone to errors.
Highcharts: Bringing Data to Life
When it came to actually plotting the data, Highcharts became my go-to library. Its wide range of chart types and ease of customisation made it an ideal choice for visualising complex biological data sets. Whether it was creating a 3D plot for Principal Component Analysis or a sophisticated volcano plot for RNA sequencing data, Highcharts offered the flexibility and depth required to meet the project's needs.
One of the most significant advantages of Highcharts was its interactivity. Users could not just view the data but interact with it, exploring different aspects through zooming, hovering, and clicking. This interactivity was vital in making the data visualisation tools not just informative but also engaging. It transformed static charts into dynamic stories that users could explore and understand on their own terms.
Together, React.js and Highcharts formed a powerful duo in my toolkit. They allowed me to build applications that were robust, scalable, and, most importantly, effective in conveying complex biological information in an intuitive and interactive manner.
Responsive Design: Making Data Accessible Everywhere
In the digital age, user experience is paramount, and this holds especially true in the realm of data visualisation. During my internship, a key focus was enhancing user experience through responsive design. The goal was simple yet challenging: to ensure our visualisations were accessible and functional across various devices and screen sizes.
Responsive design is more than just a technical requirement; it's about inclusivity and accessibility. In the world of biology, where researchers and students might access data on different devices, from high-powered desktops to handheld tablets, it was crucial that our visualizations adapted seamlessly. This adaptability meant that whether a bioinformatician was analysing data in a lab or a student was viewing it on a smartphone, the experience remained consistent and intuitive.
Through this focus on responsive design, I learned a valuable lesson: good design is invisible. Users might not always notice when a site is responsive, but they will definitely feel the friction when it's not. This aspect of my internship was not just about coding; it was about empathizing with the end-user and ensuring that their interaction with our data was as effortless and meaningful as possible.
Bringing Data to Life: My Key Projects
- Principal Component Analysis Plot: The first major project I tackled was creating a Principal Component Analysis (PCA) plot. This tool was designed for bioinformaticians to check the quality of sequencing data samples. The PCA plot visualises data conditionally in either 2D or 3D, depending on the number of Principal Components selected. Each point represents a sample, with the distance between points indicating the similarity between samples.One of the highlights was the incorporation of a Scree plot, which shows the variance explained by each component in the analysis. Building this tool with React.js and integrating it with Highcharts was a complex yet rewarding process. The interactivity aspect, allowing users to switch between 2D and 3D views and to interact with individual data points, was particularly challenging. I had to ensure that the visualisations were not only accurate but also intuitive for the users to manipulate and understand.
- Volcano Plot for RNA Sequencing Data: The second standout project was the development of a volcano plot for visualising RNA sequencing data. This tool was essential for identifying statistically significant genes, allowing users to test for differential gene expression. It measures the log2FoldChange (the degree to which a gene is up or downregulated) and the p-value (the significance of this change) between the control and test sample.What made this volcano plot special was the dynamic threshold adjustment feature, enabling a more comprehensive and interactive data analysis experience. Users could set their thresholds for log2FoldChange and p-value, which allowed them to tailor the visualisation to their specific research needs.This project demanded not just technical skills but also a deep understanding of the biological context. The challenge was to create a tool that was scientifically robust yet user-friendly, a balance that I constantly strove to achieve.
Reflecting on a Journey and Looking Ahead
As my internship journey concludes, I find myself at the intersection of philosophy, technology, and biology – a unique crossroads that has shaped my approach to problem-solving and innovation. This experience has not only enhanced my technical skills but also deepened my appreciation for the power of data visualisation in science.
Looking ahead, I'm excited to continue exploring this fascinating confluence of disciplines. Whether it's delving deeper into front-end technologies, tackling new challenges in data visualisation, or finding novel ways to blend philosophical inquiry with technological solutions, the possibilities seem endless. This internship was just the beginning of a lifelong journey of learning and exploration.