Commit fdbd04e0 authored by Susana MARTINEZ's avatar Susana MARTINEZ
Browse files

update

parent 031fb8cf
The **CrisprPrediction** module aims the identification and redundancy removal of CRISPR elements, i.e. spacers and repeats, and CRISPR-flanking sequences from preprocessed reads (input of CRASS) and assembled contigs (input of metaCRT), redundancy removal of CRISPR elements, and identification of protospacer-containing contigs.
* **Inputs**: from IMP results; MG and MT preprocessed reads, MGMT co-assembled contigs, MT contigs
**Required data**
- From the results of [IMP](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-016-1116-8): metagenomic (MG) and metatranscriptomic (MT) preprocessed reads, co-assembled contigs, and MT contigs.
* **Steps and outputs**:
- results from [CRASS](http://ctskennerton.github.io/crass/); prediction of CRISPR elements from the IMP preprocessed reads --> CRISPR spacers, CRISPR repeats and CRISPR flanks.
- results from [metaCRT](http://omics.informatics.indiana.edu/CRISPR/); prediction of CRISPR arrays and CRISPR elements from MGMT co-assembled and MT contigs --> CRISPR spacers and CRISPR repeats.
- customized extraction of CRISPR flanks from metaCRT CRISPR arrays.
- removal of redundancy within the CRISPR elements, using [CD-HIT](http://weizhongli-lab.org/cd-hit/), three independent steps;
i) collection (from CRASS and metaCRT results) and clustering of CRISPR spacers
ii) collection and clustering of CRISPR repeats
iii) collection and clustering of CRISPR flanks
- [blast](https://blast.ncbi.nlm.nih.gov/Blast.cgi) of CRISPR elements against the MGMT co-assembled contigs
- identification of protospacer-containing contigs(PSpCC)
**Steps**
- Run of [CRASS](http://ctskennerton.github.io/crass/) to predict the CRISPR elements from the preprocessed reads, i.e. spacers, repeats, and CRISPR-flanking sequences.
- Run of [metaCRT](http://omics.informatics.indiana.edu/CRISPR/) to predict the CRISPR elements from the co-assembled and the MT contigs.
- Custom extraction of CRISPR-flanking sequences from predicted contigs-containing CRISPRs by metaCRT.
- Removal of redundancy between the CRISPR elements using [CD-HIT](http://weizhongli-lab.org/cd-hit/), in three independent steps:
i) Collection of spacers from CRASS and metaCRT predictions, and clustering.
ii) Collection and clustering of repeats.
iii) Collection and clustering of CRISPR-flanking sequences.
- Match by using [BLASTN](https://blast.ncbi.nlm.nih.gov/Blast.cgi) of all the CRISPR elements against the co-assembled contigs.
- Based on the BLASTN results, identification of the protospacer-containing contigs(PSCC).
* **Snakemake workflow "CrisprPrediction"**
**Snakemake workflow "CrisprPrediction"**
```
# Source dependencies and define number of threads
source /home/users/smartinezarbas/git/gitlab/CRISPR_MGE_pipeline/src/preload_modules.sh
export THREADS='8'
source src/preload_modules.sh
THREADS='8'
# Run snakemake (variables defining paths to input files and output directories are in workflows/CrisprPrediction)
snakemake -j $THREADS -pfk crispr_workflow.done -s workflows/CrisprPrediction
......
The **MgeDereplication** module aims the redundancy removal of previously identified/predicted iMGEs, i.e. plasmids, bacteriophages, and protospacer-containing contigs (PSCC).
## 3- **MgeDereplication workflow**
**Required data**
- Results of VirFinder, VirSorter, cBar, and PlasFlow tools.
* **Inputs**: all phage and plasmid predictions
* **Steps and outputs**:
- collection of the lists of phages and plasmid predictions, and the PSpCCs
- fetch the sequences
- run CD-HIT (parameteres within rule collapse\_candidate\_mobile\_elements.rule)
- generate table of MGE info (contig name, type, etc.)
**Steps**
- Collecti all the identifiers of the predicted plasmid and phage sequences, and the PSCCs. Hereafter referred to as invasive mobile genetic elements (iMGEs).
- Make fasta file with all iMGEs.
- Run [CD-HIT](http://weizhongli-lab.org/cd-hit/) to cluster the iMGE sequences.
- Generate table of iMGE information: identifier/contig, prediction results, iMGE type , ...)
* **Launcher** (adjust memory request, input paths, etc.)
**Snakemake workflow "CrisprPrediction"**
```
#!/bin/bash -l
#OAR -n mgeDereplication
#OAR -l nodes=1/core=8,walltime=120
source /home/users/smartinezarbas/git/gitlab/CRISPR_MGE_pipeline/src/preload_modules.sh
export THREADS='8'
export TS_DIR='/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results'
export DB_FA_DIR='/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results/Assemblies'
export TS_SAMPLES='TS2 TD2'
export MGE_OUTDIR='/scratch/users/smartinezarbas/AmazonRiverCRISPR_MGE/MGE_prediction'
# Source dependencies and define number of threads
source src/preload_modules.sh
THREADS='8'
# Run snakemake (variables defining paths to input files and output directories are in workflows/MgePrediction)
snakemake -j 8 -pf mge_dereplication_workflow.done -s workflows/MgePrediction
```
\ No newline at end of file
## 5- **MgeHostLink**
* **Inputs**: pieces of all the previous workflows + output of binning dereplication (to link a bin with a CRISPR, it is needed to at least have contigs assigned to bins)
* **Steps**
- blast of bins against CRISPR flanks (from workflow **CrisprPrediction**)
- blast of bins against CRISPR repeats (from workflow **CrisprPrediction**)
- identification of hosts: filter by matches with flank and repeat sequences, and filtering by coverage and identity
- link CRISPR spacers to protospacers (formatting and adding info to protospacers identified in workflow **CrisprPrediction**)
- link spacers with candidate hosts
- link hosts with targeted protospacers
* **Launcher**
The **MgeHostLink** module aims the assignment of CRISPR elements from the entire time-series to the hosts, and the identification of the links between iMGE sequences, i.e. plasmid , phages and PSCCs, to such hosts via CRISPR information.
**Required data**
- From the current overall pipeline: fasta file of repeats and CRISPR-flanking sequences, information of the CRISPR elements' clusters.
- From IMP-derived downstream analyses: representative genomes from the dereplication of the time-series bins.
**Steps**
- Blast of representative genomes (putative hosts) against CRISPR-flanking sequences.
- Blast of representative genomes (putative hosts) against repeats.
- Assignement of spacers from the time-series to specific hosts:
i) Filter hosts by matches with repeat and CRISPR-flanking sequences: based on coverage and identity.
ii) Assignment of spacers to hosts.
- Link of iMGEs to hosts:
i) Link spacers to protospacers: from matches between spacers and co-assembled contigs, and prediction of iMGEs. Resulting in links between iMGEs and hosts.
**Snakemake workflow "CrisprPrediction"**
```
#!/bin/bash -l
#OAR -n mgeHostLink_test
#OAR -l nodes=1/core=1,walltime=4
source /home/users/smartinezarbas/git/gitlab/CRISPR_MGE_pipeline/src/preload_modules.sh
export THREADS='3'
export TS_DIR='/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results'
export TS_SAMPLES='TS2 TD2'
export DB_FA_DIR='/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results/Assemblies'
export BIN_DICT='metadata/bin_conversion.tsv'
export OUTDIR='/scratch/users/smartinezarbas/AmazonRiverCRISPR_MGE/MGE_CrispHost_link'
# Source dependencies and define number of threads
source src/preload_modules.sh
THREADS='8'
# Run snakemake (variables defining paths to input files and output directories are in workflows/MgeHostLink)
snakemake -npf mge_host_link_workflow.done -s workflows/MgeHostLink
```
\ No newline at end of file
The **MgePrediction** module aims the identification/prediction of bacteriophage (VirSorter and VirFinder) and plasmid (cBar and PlasFLow) sequences from assembled contigs.
The **MgePrediction** module aims the identification/prediction of bacteriophage and plasmid sequences from assembled contigs.
* **Inputs**: from IMP results; MGMT co-assembled contigs, MT contigs
**Required data**
- From the results of [IMP](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-016-1116-8): co-assembled contigs, and MT contigs.
**Steps**
- Prediction of **phages** by [VirSorter](https://github.com/simroux/VirSorter) and [VirFinder](https://github.com/jessieren/VirFinder).
- Prediction of **plasmids** by [cBar](http://csbl.bmb.uga.edu/~ffzhou/cBar/) and [PlasFlow](https://github.com/smaegol/PlasFlow).
* **Steps and outputs**:
- prediction of **phages** by [VirSorter](https://github.com/simroux/VirSorter) and [VirFinder](https://github.com/jessieren/VirFinder)
- prediction of **plasmids** by [cBar](http://csbl.bmb.uga.edu/~ffzhou/cBar/) and [PlasFlow](https://github.com/smaegol/PlasFlow)
* **Snakemake workflow "MgePrediction"**
**Snakemake workflow "MgePrediction"**
```
#!/bin/bash -l
#OAR -n crisprPrediction
#OAR -l nodes=1/core=8,walltime=120
# Source dependencies and define number of threads
source /home/users/smartinezarbas/git/gitlab/CRISPR_MGE_pipeline/src/preload_modules.sh
export THREADS='8'
export TS_DIR='/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results'
export DB_FA_DIR='/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results/Assemblies'
export TS_SAMPLES='TS2 TD2'
export MGE_OUTDIR='/scratch/users/smartinezarbas/AmazonRiverCRISPR_MGE/MGE_prediction'
snakemake -j 8 -pf plasmid_phage_prediction_workflow.done -s workflows/MgePrediction
```
# Run snakemake (variables defining paths to input files and output directories are in workflows/MgePrediction)
snakemake -j $THREADS -pf plasmid_phage_prediction_workflow.done -s workflows/MgePrediction
```
## 4- **MgeRemapping**
* **Inputs**: preprocessed MG and MT reads, list of unique MGEs
* **Steps**:
- annotation
- index
- mapping reads to the mge contigs
- featureCounts: gene and contig levels
- calculate abundance: average depth of coverage per contig of MG and MT
* **Launcher**
The **MgeRemapping** aims the mapping of the metagenomic and metatranscriptomic reads to the iMGE sequences.
**Required data**
- From the results of IMP: metagenomic (MG) and metatranscriptomic (MT) preprocessed reads.
- From the [MgeDereplication](MGE-dereplication.md) module, the list of unique iMGEs, and its corresponding fasta file.
**Steps**
- Collect annotation of the sequences in GFF from IMP.
- Create index of the iMGE sequences for [bwa](https://icb.med.cornell.edu/wiki/index.php/Elementolab/BWA_tutorial).
- Map reads to the iMGE contigs.
- Run [bedtools](https://bedtools.readthedocs.io/en/latest/) and [featureCounts](http://bioinf.wehi.edu.au/subread-package/).
- Estimate abundance and expression of the iMGEs, based on the average depth of coverage per contig.
**Snakemake workflow "*MgeRemapping"**
```
#!/bin/bash -l
#OAR -n mgeRemapping_test
#OAR -l nodes=1/core=12,walltime=96
source /home/users/smartinezarbas/git/gitlab/CRISPR_MGE_pipeline/src/preload_modules.sh
export THREADS='3'
export TS_DIR='/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results'
export TS_SAMPLES='TS2 TD2'
export IGE_DIR='/scratch/users/smartinezarbas/AmazonRiverCRISPR_MGE/MGE_dereplication'
export OUTDIR='/scratch/users/smartinezarbas/AmazonRiverCRISPR_MGE/MGE_remapping'
snakemake -j 4 -pfk mge_remapping_workflow.done -s workflows/MgeRemapping
# Source dependencies and define number of threads
source src/preload_modules.sh
THREADS='4'
# Run snakemake (variables defining paths to input files and output directories are in workflows/MgeRemapping)
snakemake -j $THREADS -pfk mge_remapping_workflow.done -s workflows/MgeRemapping
```
\ No newline at end of file
......@@ -2,14 +2,15 @@
The CRISPR-MGE pipeline identifies the CRISPRs from reads and contigs, and invasive mobile genetic elements (iMGEs), in particular bacteriophages and plasmids, from contigs. Then, CRISPR elements are assigned to representative genomes (ReGes) previously defined. Finally, iMGE-host networks are provided.
## The pipeline contains the following workflows:
## The pipeline contains the following workflows, automated using [snakemake](https://academic.oup.com/bioinformatics/article/28/19/2520/290322):
* [CRISPR prediction](CRISPR-prediction.md)
* [iMGEs prediction](CRISPR-prediction.md)
* [iMGEs dereplication](MGE-dereplication.md): collection of predicted MGEs and redundancy removal.
* [iMGEs remapping](MGE-remapping.md): remapping of all the metagenomic and metatranscriptomic reads to the iMGE sequences.
* [iMGE-Hosts CRISPR-mediated links](MGE-host-link.md): identification of candidate hosts, their spacers composition and the link with the protospacer-containing contigs.
* [iMGEs dereplication](MGE-dereplication.md)
* [iMGEs remapping](MGE-remapping.md)
* [iMGE-Hosts CRISPR-mediated links](MGE-host-link.md)
## Dependencies
- [snakemake](https://snakemake.readthedocs.io/en/stable/getting_started/installation.html)
- [CRASS](http://ctskennerton.github.io/crass/)
- [metaCRT](http://omics.informatics.indiana.edu/CRISPR/)
- [CD-HIT](http://weizhongli-lab.org/cd-hit/)
......@@ -18,61 +19,7 @@ The CRISPR-MGE pipeline identifies the CRISPRs from reads and contigs, and invas
- [VirFinder](https://github.com/jessieren/VirFinder)
- [PlasFlow](https://github.com/smaegol/PlasFlow)
- [cBar](http://csbl.bmb.uga.edu/~ffzhou/cBar/)
- bwa
- featureCounts
- R version 3.4.0: packages `tidyverse`, `ggplot2`, `reshape2`, (...)
## 4- **MgeRemapping**
* **Inputs**: preprocessed MG and MT reads, list of unique MGEs
* **Steps**:
- annotation
- index
- mapping reads to the mge contigs
- featureCounts: gene and contig levels
- calculate abundance: average depth of coverage per contig of MG and MT
* **Launcher**
```
#!/bin/bash -l
#OAR -n mgeRemapping_test
#OAR -l nodes=1/core=12,walltime=96
source /home/users/smartinezarbas/git/gitlab/CRISPR_MGE_pipeline/src/preload_modules.sh
export THREADS='3'
export TS_DIR='/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results'
export TS_SAMPLES='TS2 TD2'
export IGE_DIR='/scratch/users/smartinezarbas/AmazonRiverCRISPR_MGE/MGE_dereplication'
export OUTDIR='/scratch/users/smartinezarbas/AmazonRiverCRISPR_MGE/MGE_remapping'
snakemake -j 4 -pfk mge_remapping_workflow.done -s workflows/MgeRemapping
```
## 5- **MgeHostLink**
* **Inputs**: pieces of all the previous workflows + output of binning dereplication (to link a bin with a CRISPR, it is needed to at least have contigs assigned to bins)
* **Steps**
- blast of bins against CRISPR flanks (from workflow **CrisprPrediction**)
- blast of bins against CRISPR repeats (from workflow **CrisprPrediction**)
- identification of hosts: filter by matches with flank and repeat sequences, and filtering by coverage and identity
- link CRISPR spacers to protospacers (formatting and adding info to protospacers identified in workflow **CrisprPrediction**)
- link spacers with candidate hosts
- link hosts with targeted protospacers
* **Launcher**
```
#!/bin/bash -l
#OAR -n mgeHostLink_test
#OAR -l nodes=1/core=1,walltime=4
source /home/users/smartinezarbas/git/gitlab/CRISPR_MGE_pipeline/src/preload_modules.sh
export THREADS='3'
export TS_DIR='/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results'
export TS_SAMPLES='TS2 TD2'
export DB_FA_DIR='/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results/Assemblies'
export BIN_DICT='metadata/bin_conversion.tsv'
export OUTDIR='/scratch/users/smartinezarbas/AmazonRiverCRISPR_MGE/MGE_CrispHost_link'
snakemake -npf mge_host_link_workflow.done -s workflows/MgeHostLink
```
## 6- **Not added**: additional downstream analysis that require manual inspection
- abundance of bins/ReGes per sample
- PCoA with/without envfit of physico-chemical parameters
- gene expression normalization
- CRISPR-Cas genes visualization
- Other plots: ratios (plasmid/phage, gain/loss of spacers over time), heatmaps of presence/abscence of spacers, etc.
\ No newline at end of file
- [bwa](https://icb.med.cornell.edu/wiki/index.php/Elementolab/BWA_tutorial)
- [bedtools](https://bedtools.readthedocs.io/en/latest/)
- [featureCounts](http://bioinf.wehi.edu.au/subread-package/)
- At least R version 3.4 and [tidyverse package](https://www.tidyverse.org/)
......@@ -16,16 +16,16 @@ MEMTOTAL = os.environ.get("MEMTOTAL", config['memory_total_gb'])
## input directories
## IMP results
TS_DIR = os.environ.get("TS_DIR", "/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results")
TS_DIR = os.environ.get("TS_DIR", "/mnt/nfs/projects/ecosystem_biology/LAO/time_series/IMP_analysis/LAO_TS")
## path of files of assemblies with contig IDs already changes (sample name added to the contig name of each sample)
DB_FA_DIR = os.environ.get("DB_FA_DIR", "/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results/Assemblies")
DB_FA_DIR = os.environ.get("DB_FA_DIR", "/mnt/nfs/projects/ecosystem_biology/LAO/time_series/IMP_analysis/LAO_TS/Databases/Assemblies")
## Define samples
TS_SAMPLES = os.environ.get("TS_SAMPLES", "TS2 TD2").split()
TS_SAMPLES = os.environ.get("TS_SAMPLES", "A01 A02 D01 D02 D03 D04 D05 D06 D07 D08 D09 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21 D22 D23 D24 D25 D26 D27 D28 D29 D30 D31 D32 D33 D34 D35 D36 D37 D38 D39 D40 D41 D42 D43 D44 D45 D46 D47 D48 D49 D50 D51").split()
## Define output directory
CRISPR_OUTDIR = os.environ.get("CRISPR_OUTDIR", "/scratch/users/smartinezarbas/AmazonRiverCRISPR_MGE/CRISPR_prediction")
CRISPR_OUTDIR = os.environ.get("CRISPR_OUTDIR", "/scratch/users/smartinezarbas/CRISPR_results")
workdir:
CRISPR_OUTDIR
......
......@@ -8,7 +8,7 @@ PWD = os.getcwd()
TMPDIR = os.environ.get("TMPDIR", "/tmp")
SRCDIR = os.environ.get("SRCDIR", "%s/src" % PWD)
CONFIG = os.environ.get("CONFIG", "config/config_bigmem183.json")
CONFIG = os.environ.get("CONFIG", "config/config.json")
DBPATH = os.environ.get("DBPATH", "/mnt/nfs/projects/ecosystem_biology/local_tools/IMP/dependencies/prokka/db")
configfile: CONFIG
......@@ -26,7 +26,7 @@ PLASF_DIR = os.environ.get("PLASF_DIR", "/mnt/nfs/projects/ecosystem_biology/LAO
## Define output directory
WORK_DIR = os.environ.get("WORK_DIR", "/mnt/nfs/projects/ecosystem_biology/LAO/time_series/IMP_analysis/LAO_TS/CRISPR_analysis/MgeDereplication")
WORK_DIR = os.environ.get("WORK_DIR", "/scratch/users/smartinezarbas/CRISPR_results/MgeDereplication")
workdir:
WORK_DIR
......
......@@ -16,28 +16,28 @@ THREADS = os.environ.get("THREADS", config['threads'])
MEMTOTAL = os.environ.get("MEMTOTAL", config['memory_total_gb'])
# IMP results
TS_DIR = os.environ.get("TS_DIR", "/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results")
TS_DIR = os.environ.get("TS_DIR", "/mnt/nfs/projects/ecosystem_biology/LAO/time_series/IMP_analysis/LAO_TS")
## path of files of assemblies with contig IDs already changes (sample name added to the contig name of each sample)
DB_FA_DIR = os.environ.get("DB_FA_DIR", "/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results/Assemblies")
DB_FA_DIR = os.environ.get("DB_FA_DIR", "/mnt/nfs/projects/ecosystem_biology/LAO/time_series/IMP_analysis/LAO_TS/Databases/Assemblies")
## Define samples
TS_SAMPLES = os.environ.get("TS_SAMPLES", "TS2 TD2").split()
TS_SAMPLES = os.environ.get("TS_SAMPLES", "A01 A02 D01 D02 D03 D04 D05 D06 D07 D08 D09 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21 D22 D23 D24 D25 D26 D27 D28 D29 D30 D31 D32 D33 D34 D35 D36 D37 D38 D39 D40 D41 D42 D43 D44 D45 D46 D47 D48 D49 D50 D51").split()
#### check what file it is after the dereplication
HOST_DB = os.environ.get("HOST_DB", "/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results/dRepALL/RepresentativeBins/dereplicated_genomes/ALL_representative_genomes.fa")
HOST_DB = os.environ.get("HOST_DB", "/mnt/nfs/projects/ecosystem_biology/LAO/time_series/IMP_analysis/LAO_TS/dereplicated_genomes/ALL_representative_genomes.fa")
####
# If there has been a dereplication of the bins, and there is file to convert bins to representative bins
BIN_DICT = os.environ.get("BIN_DICT", "/work/users/smartinezarbas/comparative_analysis/AmazonRiver/IMP_results/dRepALL/RepresentativeBins/ReGes_dictionary.tsv")
# path to CRISPR elements from CrisprPrediction workflow
CRISPR_ELEMENTS_DIR = os.environ.get("CRISPR_ELEMENTS_DIR", "/scratch/users/smartinezarbas/AmazonRiverCRISPR_MGE/CRISPR_prediction/ALL")
CRISPR_ELEMENTS_DIR = os.environ.get("CRISPR_ELEMENTS_DIR", "/scratch/users/smartinezarbas/CRISPR_results/ALL")
DREP_DONE = os.environ.get("DREP_DONE", "yes")
## Define output directory
OUTDIR = os.environ.get("CRISPR_OUTDIR", "/scratch/users/smartinezarbas/AmazonRiverCRISPR_MGE/MGE_CrisprHost")
OUTDIR = os.environ.get("CRISPR_OUTDIR", "/scratch/users/smartinezarbas/CRISPR_results/MgeHostLink")
workdir:
OUTDIR
......
......@@ -2,12 +2,9 @@ import subprocess
PWD = os.getcwd()
INPUTDIR = os.environ.get("INPUTDIR")
OUTPUTDIR = os.environ.get("OUTPUTDIR")
TMPDIR = os.environ.get("TMPDIR", "/tmp")
SAMPLE = os.environ.get("SAMPLE")
SRCDIR = os.environ.get("SRCDIR", "%s/src" % PWD)
CONFIG = os.environ.get("CONFIG", "config/config_bigmem183.json")
CONFIG = os.environ.get("CONFIG", "config/config.json")
DBPATH = os.environ.get("DBPATH", "/mnt/nfs/projects/ecosystem_biology/local_tools/IMP/dependencies/prokka/db")
## Define configurations
......@@ -28,7 +25,7 @@ TS_SAMPLES = os.environ.get("TS_SAMPLES", "A01 A02 D01 D02 D03 D04 D05 D06 D07 D
TYPES = [ "mg", "mt" ]
## Define output directory
OUTDIR = os.environ.get("OUTDIR", "/mnt/nfs/projects/ecosystem_biology/LAO/time_series/IMP_analysis/LAO_TS/CRISPR_analysis/PlasmidPhageMgeRemapping")
OUTDIR = os.environ.get("OUTDIR", "/scratch/users/smartinezarbas/CRISPR_results/PlasmidPhageMgeRemapping")
workdir:
OUTDIR
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment