From a2e8086179ffaabafab8463ba7e3915dafe6ce44 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Mon, 25 Sep 2023 19:00:05 +0200 Subject: [PATCH] Move phylogenetic workflow from top-level to folder `phylogenetic` --- .github/workflows/rebuild-hmpxv1-big.yaml | 2 +- .github/workflows/rebuild-hmpxv1.yaml | 2 +- .github/workflows/rebuild-mpxv.yaml | 2 +- README.md | 98 +++-------------- phylogenetic/README.md | 102 ++++++++++++++++++ Snakefile => phylogenetic/Snakefile | 0 {bin => phylogenetic/bin}/notify-on-deploy | 0 {bin => phylogenetic/bin}/notify-on-error | 0 {bin => phylogenetic/bin}/notify-on-start | 0 {bin => phylogenetic/bin}/notify-on-success | 0 .../bin}/set-branch-ingest-config | 0 {config => phylogenetic/config}/clades.tsv | 0 .../config}/color_ordering.tsv | 0 .../config}/color_schemes.tsv | 0 .../config}/description.md | 0 .../config}/exclude_accessions.txt | 0 {config => phylogenetic/config}/genemap.gff | 0 .../config}/hmpxv1/auspice_config.json | 0 .../config}/hmpxv1/config.yaml | 0 .../config}/hmpxv1/include.txt | 0 .../config}/hmpxv1_big/auspice_config.json | 0 .../config}/hmpxv1_big/config.yaml | 0 .../config}/hmpxv1_big/include.txt | 0 {config => phylogenetic/config}/lat_longs.tsv | 0 {config => phylogenetic/config}/mask.bed | 0 .../config}/mask_overview.bed | 0 .../config}/mpxv/auspice_config.json | 0 .../config}/mpxv/config.yaml | 0 .../config}/mpxv/include.txt | 0 .../config}/nextstrain_automation.yaml | 0 .../config}/reference.fasta | 0 {config => phylogenetic/config}/reference.gb | 0 {config => phylogenetic/config}/tree_mask.tsv | 0 .../example_data}/metadata.tsv | 0 .../example_data}/sequences.fasta | 0 .../profiles}/default/config.yaml | 0 .../scripts}/assign-colors.py | 0 .../scripts}/clades_renaming.py | 0 .../construct-recency-from-submission-date.py | 0 {scripts => phylogenetic/scripts}/deploy.py | 0 {scripts => phylogenetic/scripts}/fix_tree.py | 0 .../scripts}/mutation_context.py | 0 .../scripts}/remove_timeinfo.py | 0 .../scripts}/reverse_reversed_sequences.py | 0 .../scripts}/set_final_strain_name.py | 0 .../workflow}/snakemake_rules/chores.smk | 0 .../workflow}/snakemake_rules/core.smk | 0 .../snakemake_rules/download_via_lapis.smk | 0 .../snakemake_rules/nextstrain_automation.smk | 0 .../workflow}/snakemake_rules/prepare.smk | 0 50 files changed, 121 insertions(+), 85 deletions(-) create mode 100644 phylogenetic/README.md rename Snakefile => phylogenetic/Snakefile (100%) rename {bin => phylogenetic/bin}/notify-on-deploy (100%) rename {bin => phylogenetic/bin}/notify-on-error (100%) rename {bin => phylogenetic/bin}/notify-on-start (100%) rename {bin => phylogenetic/bin}/notify-on-success (100%) rename {bin => phylogenetic/bin}/set-branch-ingest-config (100%) rename {config => phylogenetic/config}/clades.tsv (100%) rename {config => phylogenetic/config}/color_ordering.tsv (100%) rename {config => phylogenetic/config}/color_schemes.tsv (100%) rename {config => phylogenetic/config}/description.md (100%) rename {config => phylogenetic/config}/exclude_accessions.txt (100%) rename {config => phylogenetic/config}/genemap.gff (100%) rename {config => phylogenetic/config}/hmpxv1/auspice_config.json (100%) rename {config => phylogenetic/config}/hmpxv1/config.yaml (100%) rename {config => phylogenetic/config}/hmpxv1/include.txt (100%) rename {config => phylogenetic/config}/hmpxv1_big/auspice_config.json (100%) rename {config => phylogenetic/config}/hmpxv1_big/config.yaml (100%) rename {config => phylogenetic/config}/hmpxv1_big/include.txt (100%) rename {config => phylogenetic/config}/lat_longs.tsv (100%) rename {config => phylogenetic/config}/mask.bed (100%) rename {config => phylogenetic/config}/mask_overview.bed (100%) rename {config => phylogenetic/config}/mpxv/auspice_config.json (100%) rename {config => phylogenetic/config}/mpxv/config.yaml (100%) rename {config => phylogenetic/config}/mpxv/include.txt (100%) rename {config => phylogenetic/config}/nextstrain_automation.yaml (100%) rename {config => phylogenetic/config}/reference.fasta (100%) rename {config => phylogenetic/config}/reference.gb (100%) rename {config => phylogenetic/config}/tree_mask.tsv (100%) rename {example_data => phylogenetic/example_data}/metadata.tsv (100%) rename {example_data => phylogenetic/example_data}/sequences.fasta (100%) rename {profiles => phylogenetic/profiles}/default/config.yaml (100%) rename {scripts => phylogenetic/scripts}/assign-colors.py (100%) rename {scripts => phylogenetic/scripts}/clades_renaming.py (100%) rename {scripts => phylogenetic/scripts}/construct-recency-from-submission-date.py (100%) rename {scripts => phylogenetic/scripts}/deploy.py (100%) rename {scripts => phylogenetic/scripts}/fix_tree.py (100%) rename {scripts => phylogenetic/scripts}/mutation_context.py (100%) rename {scripts => phylogenetic/scripts}/remove_timeinfo.py (100%) rename {scripts => phylogenetic/scripts}/reverse_reversed_sequences.py (100%) rename {scripts => phylogenetic/scripts}/set_final_strain_name.py (100%) rename {workflow => phylogenetic/workflow}/snakemake_rules/chores.smk (100%) rename {workflow => phylogenetic/workflow}/snakemake_rules/core.smk (100%) rename {workflow => phylogenetic/workflow}/snakemake_rules/download_via_lapis.smk (100%) rename {workflow => phylogenetic/workflow}/snakemake_rules/nextstrain_automation.smk (100%) rename {workflow => phylogenetic/workflow}/snakemake_rules/prepare.smk (100%) diff --git a/.github/workflows/rebuild-hmpxv1-big.yaml b/.github/workflows/rebuild-hmpxv1-big.yaml index 0668f7f7..7db3fd1d 100644 --- a/.github/workflows/rebuild-hmpxv1-big.yaml +++ b/.github/workflows/rebuild-hmpxv1-big.yaml @@ -43,7 +43,7 @@ jobs: --env GITHUB_RUN_ID \ --env SLACK_TOKEN \ --env SLACK_CHANNELS \ - . \ + phylogenetic \ notify_on_deploy \ --configfiles config/hmpxv1_big/config.yaml config/nextstrain_automation.yaml \ --config auspice_prefix=$TRIAL_NAME diff --git a/.github/workflows/rebuild-hmpxv1.yaml b/.github/workflows/rebuild-hmpxv1.yaml index 19f28afa..5be7a882 100644 --- a/.github/workflows/rebuild-hmpxv1.yaml +++ b/.github/workflows/rebuild-hmpxv1.yaml @@ -43,7 +43,7 @@ jobs: --env GITHUB_RUN_ID \ --env SLACK_TOKEN \ --env SLACK_CHANNELS \ - . \ + phylogenetic \ notify_on_deploy \ --configfiles config/hmpxv1/config.yaml config/nextstrain_automation.yaml \ --config auspice_prefix=$TRIAL_NAME diff --git a/.github/workflows/rebuild-mpxv.yaml b/.github/workflows/rebuild-mpxv.yaml index f2b817de..b366f645 100644 --- a/.github/workflows/rebuild-mpxv.yaml +++ b/.github/workflows/rebuild-mpxv.yaml @@ -43,7 +43,7 @@ jobs: --env GITHUB_RUN_ID \ --env SLACK_TOKEN \ --env SLACK_CHANNELS \ - . \ + phylogenetic \ notify_on_deploy \ --configfiles config/mpxv/config.yaml config/nextstrain_automation.yaml \ --config auspice_prefix=$TRIAL_NAME diff --git a/README.md b/README.md index 20a5d0bc..ce70a11a 100644 --- a/README.md +++ b/README.md @@ -1,102 +1,36 @@ -# nextstrain.org/monkeypox +# Nextstrain repository for mpox virus -This is the [Nextstrain](https://nextstrain.org) build for MPXV (mpox virus). Output from this build is visible at [nextstrain.org/monkeypox](https://nextstrain.org/monkeypox). -The lineages within the recent mpox outbreaks in humans are defined in a separate [lineage-designation repository](https://github.com/mpxv-lineages/lineage-designation). +This repository contains two workflows for the analysis of mpox virus (MPXV) data: -## Software requirements +- `ingest/` - Download data from GenBank, clean and curate it and upload it to S3 +- `phylogenetic/` - Make phylogenetic trees for nextstrain.org -Follow the [standard installation instructions](https://docs.nextstrain.org/en/latest/install.html) for Nextstrain's suite of software tools. +Each folder contains a README.md with more information. -## Usage +## CI -### Provision input data +This repository uses GitHub Actions for CI. The workflows are defined in `.github/workflows/`. -Input sequences and metadata can be retrieved from data.nextstrain.org +## Development -* [sequences.fasta.xz](https://data.nextstrain.org/files/workflows/monkeypox/sequences.fasta.xz) -* [metadata.tsv.gz](https://data.nextstrain.org/files/workflows/monkeypox/metadata.tsv.gz) +### Pre-commit -Note that these data are generously shared by many labs around the world. -If you analyze and plan to publish using these data, please contact these labs first. +This repository uses [pre-commit](https://pre-commit.com/) to run checks on the code before committing. -Within the analysis pipeline, these data are fetched from data.nextstrain.org and written to `data/` with: +To install pre-commit on macOS, run: ```bash -nextstrain build . data/sequences.fasta data/metadata.tsv +brew install pre-commit ``` -### Run analysis pipeline - -Run pipeline to produce the "overview" tree for `/mpox/all-clades` with: - -```bash -nextstrain build . --configfile config/mpxv/config.yaml -``` - -Run pipeline to produce the "clade IIb" tree for `/mpox/clade-IIb` with: - -```bash -nextstrain build . --configfile config/hmpxv1/config.yaml -``` - -Run pipeline to produce the "lineage B.1" tree for `/mpox/lineage-B.1` with: +To install pre-commit on Ubuntu, run: ```bash -nextstrain build . --configfile config/hmpxv1_big/config.yaml +sudo apt install pre-commit ``` -### Deploy - -⚠️ The below is outdated and needs to be adjusted for the new build names (mpxv instead of monkeypox, etc.) - -
- -Run the python script [`scripts/deploy.py`](scripts/deploy.py) to deploy the staging build to production. - -This will also automatically create a dated build where each node has a unique (random) ID so it can be targeted in shared links/narratives. +To activate pre-commit, run: ```bash -python scripts/deploy.py --build-names hmpxv1 mpxv +pre-commit install ``` - -If a dated build already exists it is not overwritten by default. To overwrite, pass `-f`. - -To deploy a locally built build to staging, use the `--staging` flag. - -To not deploy a dated build to production, add the `--no-dated` flag. - -
- -### Visualize results - -View results with: - -```bash -nextstrain view . -``` - -## Configuration - -Configuration takes place in `config/*/config.yaml` files for each build. -The analysis pipeline is contained in `workflow/snakemake_rule/core.smk`. -This can be read top-to-bottom, each rule specifies its file inputs and output and pulls its parameters from `config`. -There is little redirection and each rule should be able to be reasoned with on its own. - -## Update example data - -[Example data](./example_data/) is used by [CI](https://github.com/nextstrain/monkeypox/actions/workflows/ci.yaml). It can also be used as a small subset of real-world data. - -Example data should be updated every time metadata schema is changed or a new clade/lineage emerges. To update, run: - -```sh -nextstrain build . update_example_data -F -``` - -## Data use - -We gratefully acknowledge the authors, originating and submitting laboratories of the genetic -sequences and metadata for sharing their work. Please note that although data generators have -generously shared data in an open fashion, that does not mean there should be free license to -publish on this data. Data generators should be cited where possible and collaborations should be -sought in some circumstances. Please try to avoid scooping someone else's work. Reach out if -uncertain. diff --git a/phylogenetic/README.md b/phylogenetic/README.md new file mode 100644 index 00000000..20a5d0bc --- /dev/null +++ b/phylogenetic/README.md @@ -0,0 +1,102 @@ +# nextstrain.org/monkeypox + +This is the [Nextstrain](https://nextstrain.org) build for MPXV (mpox virus). Output from this build is visible at [nextstrain.org/monkeypox](https://nextstrain.org/monkeypox). +The lineages within the recent mpox outbreaks in humans are defined in a separate [lineage-designation repository](https://github.com/mpxv-lineages/lineage-designation). + +## Software requirements + +Follow the [standard installation instructions](https://docs.nextstrain.org/en/latest/install.html) for Nextstrain's suite of software tools. + +## Usage + +### Provision input data + +Input sequences and metadata can be retrieved from data.nextstrain.org + +* [sequences.fasta.xz](https://data.nextstrain.org/files/workflows/monkeypox/sequences.fasta.xz) +* [metadata.tsv.gz](https://data.nextstrain.org/files/workflows/monkeypox/metadata.tsv.gz) + +Note that these data are generously shared by many labs around the world. +If you analyze and plan to publish using these data, please contact these labs first. + +Within the analysis pipeline, these data are fetched from data.nextstrain.org and written to `data/` with: + +```bash +nextstrain build . data/sequences.fasta data/metadata.tsv +``` + +### Run analysis pipeline + +Run pipeline to produce the "overview" tree for `/mpox/all-clades` with: + +```bash +nextstrain build . --configfile config/mpxv/config.yaml +``` + +Run pipeline to produce the "clade IIb" tree for `/mpox/clade-IIb` with: + +```bash +nextstrain build . --configfile config/hmpxv1/config.yaml +``` + +Run pipeline to produce the "lineage B.1" tree for `/mpox/lineage-B.1` with: + +```bash +nextstrain build . --configfile config/hmpxv1_big/config.yaml +``` + +### Deploy + +⚠️ The below is outdated and needs to be adjusted for the new build names (mpxv instead of monkeypox, etc.) + +
+ +Run the python script [`scripts/deploy.py`](scripts/deploy.py) to deploy the staging build to production. + +This will also automatically create a dated build where each node has a unique (random) ID so it can be targeted in shared links/narratives. + +```bash +python scripts/deploy.py --build-names hmpxv1 mpxv +``` + +If a dated build already exists it is not overwritten by default. To overwrite, pass `-f`. + +To deploy a locally built build to staging, use the `--staging` flag. + +To not deploy a dated build to production, add the `--no-dated` flag. + +
+ +### Visualize results + +View results with: + +```bash +nextstrain view . +``` + +## Configuration + +Configuration takes place in `config/*/config.yaml` files for each build. +The analysis pipeline is contained in `workflow/snakemake_rule/core.smk`. +This can be read top-to-bottom, each rule specifies its file inputs and output and pulls its parameters from `config`. +There is little redirection and each rule should be able to be reasoned with on its own. + +## Update example data + +[Example data](./example_data/) is used by [CI](https://github.com/nextstrain/monkeypox/actions/workflows/ci.yaml). It can also be used as a small subset of real-world data. + +Example data should be updated every time metadata schema is changed or a new clade/lineage emerges. To update, run: + +```sh +nextstrain build . update_example_data -F +``` + +## Data use + +We gratefully acknowledge the authors, originating and submitting laboratories of the genetic +sequences and metadata for sharing their work. Please note that although data generators have +generously shared data in an open fashion, that does not mean there should be free license to +publish on this data. Data generators should be cited where possible and collaborations should be +sought in some circumstances. Please try to avoid scooping someone else's work. Reach out if +uncertain. diff --git a/Snakefile b/phylogenetic/Snakefile similarity index 100% rename from Snakefile rename to phylogenetic/Snakefile diff --git a/bin/notify-on-deploy b/phylogenetic/bin/notify-on-deploy similarity index 100% rename from bin/notify-on-deploy rename to phylogenetic/bin/notify-on-deploy diff --git a/bin/notify-on-error b/phylogenetic/bin/notify-on-error similarity index 100% rename from bin/notify-on-error rename to phylogenetic/bin/notify-on-error diff --git a/bin/notify-on-start b/phylogenetic/bin/notify-on-start similarity index 100% rename from bin/notify-on-start rename to phylogenetic/bin/notify-on-start diff --git a/bin/notify-on-success b/phylogenetic/bin/notify-on-success similarity index 100% rename from bin/notify-on-success rename to phylogenetic/bin/notify-on-success diff --git a/bin/set-branch-ingest-config b/phylogenetic/bin/set-branch-ingest-config similarity index 100% rename from bin/set-branch-ingest-config rename to phylogenetic/bin/set-branch-ingest-config diff --git a/config/clades.tsv b/phylogenetic/config/clades.tsv similarity index 100% rename from config/clades.tsv rename to phylogenetic/config/clades.tsv diff --git a/config/color_ordering.tsv b/phylogenetic/config/color_ordering.tsv similarity index 100% rename from config/color_ordering.tsv rename to phylogenetic/config/color_ordering.tsv diff --git a/config/color_schemes.tsv b/phylogenetic/config/color_schemes.tsv similarity index 100% rename from config/color_schemes.tsv rename to phylogenetic/config/color_schemes.tsv diff --git a/config/description.md b/phylogenetic/config/description.md similarity index 100% rename from config/description.md rename to phylogenetic/config/description.md diff --git a/config/exclude_accessions.txt b/phylogenetic/config/exclude_accessions.txt similarity index 100% rename from config/exclude_accessions.txt rename to phylogenetic/config/exclude_accessions.txt diff --git a/config/genemap.gff b/phylogenetic/config/genemap.gff similarity index 100% rename from config/genemap.gff rename to phylogenetic/config/genemap.gff diff --git a/config/hmpxv1/auspice_config.json b/phylogenetic/config/hmpxv1/auspice_config.json similarity index 100% rename from config/hmpxv1/auspice_config.json rename to phylogenetic/config/hmpxv1/auspice_config.json diff --git a/config/hmpxv1/config.yaml b/phylogenetic/config/hmpxv1/config.yaml similarity index 100% rename from config/hmpxv1/config.yaml rename to phylogenetic/config/hmpxv1/config.yaml diff --git a/config/hmpxv1/include.txt b/phylogenetic/config/hmpxv1/include.txt similarity index 100% rename from config/hmpxv1/include.txt rename to phylogenetic/config/hmpxv1/include.txt diff --git a/config/hmpxv1_big/auspice_config.json b/phylogenetic/config/hmpxv1_big/auspice_config.json similarity index 100% rename from config/hmpxv1_big/auspice_config.json rename to phylogenetic/config/hmpxv1_big/auspice_config.json diff --git a/config/hmpxv1_big/config.yaml b/phylogenetic/config/hmpxv1_big/config.yaml similarity index 100% rename from config/hmpxv1_big/config.yaml rename to phylogenetic/config/hmpxv1_big/config.yaml diff --git a/config/hmpxv1_big/include.txt b/phylogenetic/config/hmpxv1_big/include.txt similarity index 100% rename from config/hmpxv1_big/include.txt rename to phylogenetic/config/hmpxv1_big/include.txt diff --git a/config/lat_longs.tsv b/phylogenetic/config/lat_longs.tsv similarity index 100% rename from config/lat_longs.tsv rename to phylogenetic/config/lat_longs.tsv diff --git a/config/mask.bed b/phylogenetic/config/mask.bed similarity index 100% rename from config/mask.bed rename to phylogenetic/config/mask.bed diff --git a/config/mask_overview.bed b/phylogenetic/config/mask_overview.bed similarity index 100% rename from config/mask_overview.bed rename to phylogenetic/config/mask_overview.bed diff --git a/config/mpxv/auspice_config.json b/phylogenetic/config/mpxv/auspice_config.json similarity index 100% rename from config/mpxv/auspice_config.json rename to phylogenetic/config/mpxv/auspice_config.json diff --git a/config/mpxv/config.yaml b/phylogenetic/config/mpxv/config.yaml similarity index 100% rename from config/mpxv/config.yaml rename to phylogenetic/config/mpxv/config.yaml diff --git a/config/mpxv/include.txt b/phylogenetic/config/mpxv/include.txt similarity index 100% rename from config/mpxv/include.txt rename to phylogenetic/config/mpxv/include.txt diff --git a/config/nextstrain_automation.yaml b/phylogenetic/config/nextstrain_automation.yaml similarity index 100% rename from config/nextstrain_automation.yaml rename to phylogenetic/config/nextstrain_automation.yaml diff --git a/config/reference.fasta b/phylogenetic/config/reference.fasta similarity index 100% rename from config/reference.fasta rename to phylogenetic/config/reference.fasta diff --git a/config/reference.gb b/phylogenetic/config/reference.gb similarity index 100% rename from config/reference.gb rename to phylogenetic/config/reference.gb diff --git a/config/tree_mask.tsv b/phylogenetic/config/tree_mask.tsv similarity index 100% rename from config/tree_mask.tsv rename to phylogenetic/config/tree_mask.tsv diff --git a/example_data/metadata.tsv b/phylogenetic/example_data/metadata.tsv similarity index 100% rename from example_data/metadata.tsv rename to phylogenetic/example_data/metadata.tsv diff --git a/example_data/sequences.fasta b/phylogenetic/example_data/sequences.fasta similarity index 100% rename from example_data/sequences.fasta rename to phylogenetic/example_data/sequences.fasta diff --git a/profiles/default/config.yaml b/phylogenetic/profiles/default/config.yaml similarity index 100% rename from profiles/default/config.yaml rename to phylogenetic/profiles/default/config.yaml diff --git a/scripts/assign-colors.py b/phylogenetic/scripts/assign-colors.py similarity index 100% rename from scripts/assign-colors.py rename to phylogenetic/scripts/assign-colors.py diff --git a/scripts/clades_renaming.py b/phylogenetic/scripts/clades_renaming.py similarity index 100% rename from scripts/clades_renaming.py rename to phylogenetic/scripts/clades_renaming.py diff --git a/scripts/construct-recency-from-submission-date.py b/phylogenetic/scripts/construct-recency-from-submission-date.py similarity index 100% rename from scripts/construct-recency-from-submission-date.py rename to phylogenetic/scripts/construct-recency-from-submission-date.py diff --git a/scripts/deploy.py b/phylogenetic/scripts/deploy.py similarity index 100% rename from scripts/deploy.py rename to phylogenetic/scripts/deploy.py diff --git a/scripts/fix_tree.py b/phylogenetic/scripts/fix_tree.py similarity index 100% rename from scripts/fix_tree.py rename to phylogenetic/scripts/fix_tree.py diff --git a/scripts/mutation_context.py b/phylogenetic/scripts/mutation_context.py similarity index 100% rename from scripts/mutation_context.py rename to phylogenetic/scripts/mutation_context.py diff --git a/scripts/remove_timeinfo.py b/phylogenetic/scripts/remove_timeinfo.py similarity index 100% rename from scripts/remove_timeinfo.py rename to phylogenetic/scripts/remove_timeinfo.py diff --git a/scripts/reverse_reversed_sequences.py b/phylogenetic/scripts/reverse_reversed_sequences.py similarity index 100% rename from scripts/reverse_reversed_sequences.py rename to phylogenetic/scripts/reverse_reversed_sequences.py diff --git a/scripts/set_final_strain_name.py b/phylogenetic/scripts/set_final_strain_name.py similarity index 100% rename from scripts/set_final_strain_name.py rename to phylogenetic/scripts/set_final_strain_name.py diff --git a/workflow/snakemake_rules/chores.smk b/phylogenetic/workflow/snakemake_rules/chores.smk similarity index 100% rename from workflow/snakemake_rules/chores.smk rename to phylogenetic/workflow/snakemake_rules/chores.smk diff --git a/workflow/snakemake_rules/core.smk b/phylogenetic/workflow/snakemake_rules/core.smk similarity index 100% rename from workflow/snakemake_rules/core.smk rename to phylogenetic/workflow/snakemake_rules/core.smk diff --git a/workflow/snakemake_rules/download_via_lapis.smk b/phylogenetic/workflow/snakemake_rules/download_via_lapis.smk similarity index 100% rename from workflow/snakemake_rules/download_via_lapis.smk rename to phylogenetic/workflow/snakemake_rules/download_via_lapis.smk diff --git a/workflow/snakemake_rules/nextstrain_automation.smk b/phylogenetic/workflow/snakemake_rules/nextstrain_automation.smk similarity index 100% rename from workflow/snakemake_rules/nextstrain_automation.smk rename to phylogenetic/workflow/snakemake_rules/nextstrain_automation.smk diff --git a/workflow/snakemake_rules/prepare.smk b/phylogenetic/workflow/snakemake_rules/prepare.smk similarity index 100% rename from workflow/snakemake_rules/prepare.smk rename to phylogenetic/workflow/snakemake_rules/prepare.smk