Learn Biocomputing
General Resources / Courses
Software Carpentry
https://software-carpentry.org/lessons/
Code Academy
https://www.codecademy.com/
edX Computer Science Courses
https://www.edx.org/course/subject/computer-science
Learning R
The programming language R was originally designed for statistical analysis, but researchers now use it for a wide variety of data analysis and visualization tasks.
Download R here:
https://www.r-project.org Use the RStudio IDE to write and run R code. Download here:
https://rstudio.com
Primers on RStudio Cloud
https://rstudio.cloud/learn/primers
These are short interactive lessons that let you write R code in your web browser. They use the "tidyverse" style of R coding, which we recommend for all new users. The first 4 lessons: "Basics", "Work with Data", "Visualize Data", and "Tidy your Data" give a strong foundation for writing R code to explore your data.
Primers on data analysis/visualization in R
https://wilkelab.org/classes/SDS348_spring_2020.html (first half of lectures)
R for Data Science
https://r4ds.had.co.nz/index.html
Free online textbook that covers how to process data in R with tidyverse.
Learning Python (for biology)
Python has become a dominant programming language for asking and answering many different questions in biology. This is because of its relative simplicity yet powerful flexibility, and also because Python has extensive library support for various biological tools.
Python Installation
There are many different ways to run Python, but one of the easiest choices to get started is
Google Colabroratory. This is essentially an online
Jupyter Notebook, which has many popular packages pre-installed, and removes much of the hassle that can come from a local intallation of python.
Jupyter Notebooks are a great tool for keeping track of what the user has tried, and also seamlessly integrating spaces where the user can describe their thought process or add other notes. It is conceptually similar to a lab notebook that one might use in a wet lab.
If a local installation of Python is preferred, use a flavor of
Conda such as miniconda to manage your install. Install the
Mamba package to speed things up. In addition to Python, Conda/Mamba is exceptionally useful for installing many other command-line bioinformatics programs and their dependencies. Learn about
environments and use them!
Anaconda may be a good choice if you want a graphical interface for controlling package installation, but
be aware that installing it may cause some future clashes if you want to switch to the flexibility of Conda/Mamba later. Anaconda is a data science platform that installs many useful tools, including Jupyter Notebook, and allows for easier package management. Packages contain libraries of useful code that other people have written making Python easier to use.
Biopython is one such such library, and contains indispensable tools such as FASTA/GBK parsers/writers, and tools for manipulating DNA/protein sequences.
Classes/resources
Codecademy offers short lessons that teach the basics of Python
syntax. Professor Claus Wilke of The University of Texas at Austin has
a great class posted online (second half of lectures) that introduces how to use Python in a biological context.
TutorialsPoint offers a nicely laid-out reference to the basics of Python syntax and common operations.
Git / GitHub
Git is currently the dominant tool for version control and distribution of open-source code. Learning Git is useful for organizing, versioning, saving, and backing up your own code as you develop it, but it is especially useful for working on code collaboratively as part of a group and making sure that it will be available into the future to others after you are done working on it. It's good to try using the command line a bit when learning git to understand how it works and have a way of doing power-user commands if you need them. There are many GUI clients for Git that you'll probably transition to using day-to-day, like GitHubDesktop or clients built into IDEs like VSCode or XCode.
Interactive Git lesson
https://github.com/jlord/git-it-electron
Setup Git for Barrick Lab
Common Workflows
Best Practices for Creating Bioinformatics Software
Ten recommendations for creating usable bioinformatics command line software
https://doi.org/10.1186/2047-217X-2-15
Recommended Books
Practical Computing for Biologists by Steven Haddock and Casey Dunn
Buy on Amazon
This book provides an exceptionally clean and well written introduction for biologists to begin working with computational data. The beginning focus on regular expressions and working with text files will help anyone starting out with coding.
Bioinformatics Data Skills: Reproducible and Robust Research with Open Source Tools by Vince Buffalo
Buy on Amazon
This book is one of the few available "intermediate" level bioinformatic texts. Once you have mastered some basics in UNIX or Python/R programming, this books introduces more advanced concepts like workflow management and dealing with specific biological data.