Practical Computing Skills for Omics Data (PLNTPTH 5006)
Jelmer Poelstra
August 31, 2026
Learn best practices for:
Two guiding principles (Noble 2009):
- Someone unfamiliar with your project should be able to look at your computer files and understand in detail what you did and why.
- Everything you do, you will probably have to do over again.
Keep these principles in mind while we discuss the recommendations below!
Thoughtful and systematic project documentation and organization:
In turn, why does reproducibility matter?
You’ll learn more about this in “Five selfish reasons to work reproducibly” (Markowetz 2015), this week’s reading.
We’ll now get into these one by one.
Use a separate folder for each project, which should contain:
All files related to that project,
and only those files
Subfolders to cleanly organize your files
This strategy makes it easier to:
Two project folder hierarchies. Each box is a folder.
Use subfolders to keep different kinds of files separate, such as:
Multiple reasonable ways exist to organize and name your project folders.
Use what works for you while keeping in mind these principles, and apply it consistently.
For example:

Where would you put each file?
data (e.g., data/seqs)data (e.g., data/meta)resultsscripts
Raw data files should not be edited once produced.
Any processing or correction of the data should be done on separate copies.
What if you need to add data to a file that is being updated over time?
If you are entering data piecemeal e.g. during a longer experiment, consider using separate files for each batch of data. At the very least, don’t combine directly entered data with data analysis or visualization in a single spreadsheet — the less you touch the raw data files, the better.
Avoid manually editing files with (intermediate) results — do this with code instead.
As Abdill et al. (2024) explain:
For example, if script A processes raw data into a table of gene expression levels, and script B summarizes this table by pathway, we should be concerned if there is a step after script A that requires a user to open the table and edit fields by hand to prepare the data for script B. Such quick fixes can be tempting, but they also add risk: A researcher could easily add a typo, corrupt a file in unexpected ways, or forget the step altogether.
Doing this with code has several advantages:
There is some nuance here, as some results may take many hours to regenerate.
Three key principles (from Jenny Bryan ) — file names should:
Don’t use spaces in file names.
Limit special characters to underscores (_), hyphens (-), and periods (.).
sample032_2016-05-03_low.txtsamples_soil_treatment-a_2019-01.txt“Name all files to reflect their content or function. For example, use names such as
bird_count_table.csv,manuscript.md, orsightings_analysis.py.” (Wilson et al. 2017)
One good scheme:
grass-and-soil.R1/R2 are fine).Write dates in the format YYYY-MM-DD (e.g., 2026-08-31).
Sorting with the M/D/YY format:
08/12/20 and 12/31/20).Use leading zeros in file names — for example, sample05 instead of sample5.
How many digits?
Choose the number of digits based on how many samples (or other items) you expect to have. For example, if you may get 100 or more samples, use three digits: sample001, sample002, …, sample999.
Optional, and when it makes sense: group similar files by prefix, and/or number files in order.
A numbering example:
Final Results May 3 2016 (2).xlsx
The main ones are:
May 3 2016 — doesn’t sort correctly; use 2016-05-03Additionally:
Which of these are plain-text formats, and which are not?
.xlsx.txt.csv.pdf.R.csv and .R files
.csv stands for “comma-separated values”, a tabular format with columns separated by commas..R files are “R scripts”: files containing code written in the R programming language..txt, .csv, and .R are plain-text files; .xlsx and .pdf are not.Plain-text files:
In this course, you’ll use Markdown (.md) files — a nice balance between ease of writing/reading and formatting options. More on Markdown later this week!
Plain-text files are preferable for reproducible science because they:
Can be accessed on any computer, including remotely, without needing any special or proprietary software
Can be operated on by Unix shell commands and any programming language
Are future-proof
Can be tracked line-by-line with version control (week 5)
Do you have a note-keeping/documentation system?
But you won’t have a clear picture a month later, and a collaborator won’t either.
Make a conscious effort to take a step back, slow down, and write down what you did and why.
Code is partially self-documenting, but that shouldn’t make you complacent about further documenting your work!
Documentation should contain all information needed to reproduce your research, e.g.:
README
(README.md in the top-level folder, and optionally in subfolders such as data/)
Lab notebook
(e.g., doc/diary.md)
Workflow/protocol
(e.g., doc/workflow.md)

Another take-home message: find your style and be consistent
File structures, file naming conventions, and documentation styles are not one-size-fits-all. Find a good approach that works for you, and then consistently apply that.
Click here to go to the next lecture, OSC
When it comes down to the details, multiple reasonable ways exist to organize your project folder. Some examples of possible alternatives to consider: