# How titus organizes projects and files
---
## Directories
- always linked to a git(hub) repository;
- named `YEAR-LONG_PROJECT_NAME` so that I can search for them;
- for big projects: `scripts/`, `workflows/`, `notebooks/`, `inputs/` and `outputs/`;
- sometimes I will copy or link data into `data/`, other times I'll just refer to an absolute path.
...and that's about it. I don't believe there's one perfect organizational scheme and just constantly refactor my project until it's done or I abandon it.
---
## A spectrum of code
Maybe a more useful spectrum to communicate:
- most of my code: janky scripts or notebooks full of code fragments
- sometimes that moves to: a reusable script that (often) sits in its own github repo
- rarely: I bundle the code into an installable application or library so that others can use it with standard mechanisms;
- almost never: I thoroughly test, maintain, document, and update the app/library;
---
## Papers I like
[Best Practices for Scientific Computing](https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745), Wilson et al., 2014.
[Ten simple rules for making research software more robust](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005412), Taschuk and Wilson, 2017
[Good enough practices in scientific computing](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005510), Wilson et al., 2017.
[Principles for data analysis workflows](https://journals.plos.org/ploscompbiol/article?id=10.1371%2Fjournal.pcbi.1008770), Stoudt et al, 2021
{"title":"How titus organizes things","description":"tags: bcb298","contributors":"[{\"id\":\"fbac64b8-20e4-4eb4-85a6-d4048a601d72\",\"add\":1620,\"del\":20,\"latestUpdatedAt\":1769636017151}]"}