How to learn Bioinformatics?
Bioinformatics is an interdisciplinary field which is hard to define the boundaries. It combines biology, genomics, statistics, computer science and machine learning or artificial intelligence. As a learner in bioinformatics, you might feel that after going through all the basic tutorials of everything, you still find difficult to structure your own knowledge field for bioinformatics. In this article, I want to discuss some thoughts and advices I have in learning bioinformatics.
Learning can be liken as climbing a mountain. Many people love this activity, but they might have totally different goal, preparation and approaches. If you aim to conquer the high peak, you might prepare a pair of professional shoes and a climbing stick. And then you will plan your route and calculate the consumption of your energy. But if you just aim for a relax afternoon, you will wear something comfortable and take an easy approach so that you can enjoy the fresh air in the forest.
Learning bioinformatics is the same as climbing a mountain, but this mountains have many hills, big or small. You just need different strategies to climb them and enjoy the journey. Here I want to discuss three crucial objectives in this learning process: thinking, knowledge, and implementation. These three objectives constitute a bioinformatician.
Thinking
Thinking is our intellectual response in encountering problems or searching for a solution. This usually determines our direction of many decisions. As bioinformaticians, we need to learn the following thinkings:
- Ask the scientific questions based on observation.
- Answer according to the qualitative and quantitative evidence, rather than gut feeling
- Not be satisfied with your tool in hand. There must be a better solution some where.
- Biology is a fantastic study object, rather than a discouraging puzzle.
- Computer is your powerful friend who is able to assist you if you define a clear request.
- Statistics is a reliable consultant. Trust it even if you don’t fully understand it, but use it with caution.
These thinkings are not something you can suddenly gain by understanding it. We just need to be reminded again and again.
Knowledge
Because of its nature as an interdisciplinary field, there are many fields intervened together in bioinformatics, such as:
- Biology
- Genomics
- Epigenomics
- Cellular biology
- Molecular biology
- Statistics
- Computer science
- Machine learning
- Sequencing technologies
- Single cell technologies
These knowledge need to be refreshed time to time and serve as the comprehensive ability in solving the issues. It is impossible to master everything, but it is amazing to combine the knowledge which are not relevant in the first thought. Bioinformatics is an art of applying computational method to solving biological problems.
Implementation
When you have a brilliant idea, you still need the capability to implement your idea into a workable method. This realization of the abstract idea is the key to the success. The crucial skills are mainly programming skills because this is how we can utilize the power of computers.
- IDE
- VS-code
- Atom
- vim
- Programming languages
- Shell scripting, e.g. bash
- Python
- R
- Web app development
- HTML, CSS and Javascript
- Shiny app in R
- Streamlit in Python
- System administration
- Linux system
- Network configuration
- Package management
- Software development
- Github and git
- Python package development
- R package development
- Workflow Management Systems
- Snakemake
- Nextflow
- Containerization Tools
- conda
- Docker
- Singularity
- renv
- Machine learning implementation
- scikit-learn
- Deep learning
- tensorflow
- pytorch
Without these implementation skills, there is no way for you to work in bioinformatics. The learning curve of these skills is steep, but the reward is solid.
This article is a brief summary of learning bioinformatics according to my experience.