diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 732f7d8..0b90ec9 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -1,6 +1,5 @@ -name: nf-core linting +name: markdown linting # This workflow is triggered on pushes and PRs to the repository. -# It runs the `nf-core lint` and markdown lint tests to ensure that the code meets the nf-core guidelines on: push: pull_request: diff --git a/.gitignore b/.gitignore index 0ebe9ff..7e2ace3 100644 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,146 @@ vignettes/*.pdf # R Environment Variables .Renviron +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + + ###################### ## PROJECT SPECIFIC ## ###################### diff --git a/05-results/example.txt b/05-results/example.txt deleted file mode 100644 index e69de29..0000000 diff --git a/06-reports/example.txt b/06-reports/example.txt deleted file mode 100644 index e69de29..0000000 diff --git a/07-publication/example.txt b/07-publication/example.txt deleted file mode 100644 index e69de29..0000000 diff --git a/README.md b/README.md index 1882d63..25f5bdb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Opinionated Bioinformatics Project Directory Structure +# Cookiecutter opinionated bioinformatics project structure -![Version Badge](https://img.shields.io/badge/Version-1.0.1-brightgreen?style=for-the-badge) +![Version Badge](https://img.shields.io/badge/Version-1.0.2-brightgreen?style=for-the-badge) ## Table of Contents @@ -20,6 +20,16 @@ To ensure reproducibility and readability within bioinformatics projects, we pro This structure has been developed out of (meta)genomics projects, however it should be generic enough for other fields to adopt. +## How to install + +To use this bioinformatics project skeleton, you will need to use [Cookiecutter](https://cookiecutter.readthedocs.io/en/1.7.2/first_steps.html). Head over to the [Cookiecutter documentation for installation instructions](https://cookiecutter.readthedocs.io/en/1.7.2/installation.html), we recommend you to use conda. + +Once Cookiecutter is installed, it's just a matter of: + +```bash +cookiecutter https://github.com/paleobiotechnology/analysis-project-structure +``` + ## General Organisation The three main concepts for this structure is as follows: diff --git a/cookiecutter.json b/cookiecutter.json new file mode 100644 index 0000000..33c0445 --- /dev/null +++ b/cookiecutter.json @@ -0,0 +1,6 @@ +{ + "project_name": "MyCoolPaleoBiotechnologyProject", + "project_description": "This is a project about cool data with nicely documented analysis", + "authors": "John Doe", + "version": "1.0.2" +} \ No newline at end of file diff --git a/{{cookiecutter.project_name}}/01-documentation/README.md b/{{cookiecutter.project_name}}/01-documentation/README.md new file mode 100644 index 0000000..0ce3f0b --- /dev/null +++ b/{{cookiecutter.project_name}}/01-documentation/README.md @@ -0,0 +1,3 @@ +# This is the documentation of {{cookiecutter.project_name}} + +You can use the [Markdown syntax](https://www.markdownguide.org/basic-syntax/) to organize your documentation. diff --git a/{{cookiecutter.project_name}}/02-scripts/README.md b/{{cookiecutter.project_name}}/02-scripts/README.md new file mode 100644 index 0000000..9acd11b --- /dev/null +++ b/{{cookiecutter.project_name}}/02-scripts/README.md @@ -0,0 +1,5 @@ +# This directory contains the scripts used in the {{cookiecutter.project_name}} project + +**TODO**: Please list your scripts and described what they do + +You can use the [Markdown syntax](https://www.markdownguide.org/basic-syntax/) to organize your documentation. diff --git a/{{cookiecutter.project_name}}/05-results/README.md b/{{cookiecutter.project_name}}/05-results/README.md new file mode 100644 index 0000000..1cb8710 --- /dev/null +++ b/{{cookiecutter.project_name}}/05-results/README.md @@ -0,0 +1,5 @@ +# This directory contains the results of {{cookiecutter.project_name}} project + +**TODO**: Please list your results and described what they are + +You can use the [Markdown syntax](https://www.markdownguide.org/basic-syntax/) to organize your documentation. diff --git a/01-documentation/example.txt b/{{cookiecutter.project_name}}/06-reports/example.txt similarity index 100% rename from 01-documentation/example.txt rename to {{cookiecutter.project_name}}/06-reports/example.txt diff --git a/02-scripts/example.txt b/{{cookiecutter.project_name}}/07-publication/example.txt similarity index 100% rename from 02-scripts/example.txt rename to {{cookiecutter.project_name}}/07-publication/example.txt diff --git a/CHANGELOG.md b/{{cookiecutter.project_name}}/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to {{cookiecutter.project_name}}/CHANGELOG.md diff --git a/{{cookiecutter.project_name}}/README.md b/{{cookiecutter.project_name}}/README.md new file mode 100644 index 0000000..358189d --- /dev/null +++ b/{{cookiecutter.project_name}}/README.md @@ -0,0 +1,11 @@ +# {{cookiecutter.project_name}} + +![Version Badge](https://img.shields.io/badge/Version-{{cookiecutter.version}}-brightgreen?style=for-the-badge) + +## Introduction + +{{cookiecutter.project_description}} + +## Authors + +{{cookiecutter.authors}} diff --git a/conda_environment.yml b/{{cookiecutter.project_name}}/conda_environment.yml similarity index 91% rename from conda_environment.yml rename to {{cookiecutter.project_name}}/conda_environment.yml index bb6bb86..8f48004 100644 --- a/conda_environment.yml +++ b/{{cookiecutter.project_name}}/conda_environment.yml @@ -1,7 +1,7 @@ ## You can use this file, or make multiple files, to create a conda environment for this project: ## conda env create -f environment.yml -name: NAME_OF_PROJECT_UPDATE_ME +name: {{cookiecutter.project_name}} channels: - conda-forge - bioconda