Welcome to the Computational Biology Starter Kit! This repository aims to help scientists, especially those new to computational biology, get started with the essential tools, skills, and best practices in the field. Whether you're a biologist interested in coding or a computational enthusiast diving into biology, this guide provides a structured path to help you begin your journey.
Start with this selection of articles that provide an overview of computational biology and getting started.
These articles were very helpful in shaping my own path in computational biology, and I hope they will be useful to you as well.
- So you want to be a computational biologist?
- Best Practices for Scientific Computing
- Good Enough Practices in Scientific Computing
- Ten simple rules for biologists learning to program
- Ten Simple Rules for Reproducible Computational Research
- A Quick Guide to Organizing Computational Biology Projects
- This article is a bit old, but the principles are still relevant.
- I recommend reading this MIT article on file structure and using a directory structure similar to this
Overall, these articles help you learn some best practices before diving into a project or learning git, Unix, Python, or R.
- Basics of version control with Git and GitHub
- Navigating the Unix command line
- Introduction to scripting with Python and R
- Best practices for reproducibility in computational biology
- Workflow management and automation tips
There are multiple paths a person can take to learn computational biology. Here is a suggested path I am providing that would have been helpful to me when I was starting out.
In general, you should have a project in mind before jumping into these tutorials. This will help you apply what you learn and make the learning process more engaging.
- Why Learn This? The command line is the backbone of many computational biology workflows, allowing you to automate tasks, manage files, and run bioinformatics software.
- Topics to Cover:
- Basic commands (
ls
,cd
,mv
,cp
,rm
,grep
,find
) - File permissions and environment variables
- Writing and executing simple bash scripts
- Data manipulation with
awk
,sed
, andcut
- Basic commands (
- Best Practices:
- Always back up your data before running destructive commands.
- Use comments in scripts to document your code.
- Why Learn This? Version control is crucial for managing your code, collaborating with others, and maintaining reproducibility in your research.
- Topics to Cover:
- Basic Git commands (
init
,clone
,commit
,push
,pull
) - Creating and managing repositories on GitHub
- Branching, merging, and resolving conflicts
- Writing good commit messages and maintaining a clean commit history
- Basic Git commands (
- Best Practices:
- Commit often with descriptive messages.
- Use branches for new features or experiments.
- Regularly sync with the main branch and keep it stable.
- Why Learn This? Python is a versatile language widely used in data analysis, machine learning, and bioinformatics.
- Topics to Cover:
- Basic syntax, data types, and control structures
- Libraries for data analysis (
pandas
,numpy
,matplotlib
) - Bioinformatics libraries (
Biopython
,scikit-bio
) - Writing functions and organizing code into modules
- Best Practices:
- Write clean, readable code with meaningful variable names.
- Use virtual environments to manage dependencies (
venv
,conda
).
- Why Learn This? R is especially powerful for statistical analysis and data visualization, often used in genomics and other biology-related data analysis.
- Topics to Cover:
- Basic syntax and data structures
- Data visualization with
ggplot2
- Data manipulation with
dplyr
andtidyverse
- Writing reproducible reports with R Markdown
- Best Practices:
- Keep scripts organized and well-commented.
- Use R projects for organizing related scripts and data.
- Reproducibility: Document your workflows and use version control for code and data. Consider using Jupyter notebooks, R Markdown, or similar tools to create reproducible research documents.
- Data Management: Keep raw data unchanged and well-documented. Use clear naming conventions for files.
- Coding Standards: Follow PEP 8 (Python) or Tidyverse style guide (R) for code readability.
- Collaboration: Use GitHub issues, pull requests, and project boards to manage work and collaborate effectively.
We welcome contributions! Please read our CONTRIBUTING.md guide for more details.