bb_project_setup - ampinzonv/BB3 GitHub Wiki
bb_project_setup
Function: Set up a standardized directory structure for a bioinformatics project.
π Description
This function creates a well-organized template of folders and documentation files for a new bioinformatics project. The structure follows community best practices and is inspired by resources like:
- Noble (2009), A Quick Guide to Organizing Computational Biology Projects: https://doi.org/10.1371/journal.pcbi.1000424
- Bioinformatics Core Training: https://bioinformatics-core-shared-training.github.io/shell-genomics/07-organization
βSomeone unfamiliar with your project should be able to look at your computer files and understand in detail what you did and why.β β Noble, 2009.
π Created Structure
20240605-ProjectName/
βββ about.md
βββ analysis/
β βββ 01/
β βββ 02/
β βββ 03/
β βββ 04/
β βββ README.analysis.md
βββ data/
β βββ raw_data/
β βββ other_data/
β βββ README.data.md
βββ docs/
β βββ README.docs.md
βββ manuscript/
βββ notebook.md
βββ results/
β βββ README.results.md
βββ sandbox/
β βββ README.sandbox.md
βββ tmp/
β βββ README.tmp.md
βββ tools/
β βββ scripts/
β βββ soft/
β βββ README.tools.md
Each directory includes a pre-filled README and/or placeholder content to help you document your process from the start.
π₯ Input
- The user must specify a project name via
--project_name
. - No positional arguments are allowed.
π€ Output
- A fully initialized project folder in the current directory.
π§ͺ Examples
Create a project folder named "my_project":
bb_project_setup --project_name my_project
Force overwrite if the folder already exists:
bb_project_setup --project_name my_project --force
Run silently:
bb_project_setup --project_name test_project --quiet
βοΈ Usage
bb_project_setup --project_name NAME [--quiet] [--force]
π§΅ Options
Option | Description |
---|---|
--project_name |
Name of the project (required) |
--quiet |
Suppress informational messages |
--force |
Overwrite project directory if it already exists |
π Notes
- Automatically adds the current date (
YYYYMMDD
) as a prefix to the project directory name. - Creates markdown-formatted README files to help organize and document project activities.
- Protects
raw_data
by recommendingchmod -R -w
after setup.