From 53c3d377bfc041f30fc8e7e9af911dfe2f4eafcf Mon Sep 17 00:00:00 2001 From: Cedric Midoux <cedric.midoux@inra.fr> Date: Thu, 5 Sep 2019 12:05:26 +0200 Subject: [PATCH] FragGeneScan prodigal --- annotation.smk | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ assembly.smk | 2 +- config.json | 3 ++- global.smk | 1 + 4 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 annotation.smk diff --git a/annotation.smk b/annotation.smk new file mode 100644 index 0000000..78b79b7 --- /dev/null +++ b/annotation.smk @@ -0,0 +1,58 @@ +rule FragGeneScan: + input: + unpack(contigs_input) + output: + faa = "work/FGS/{sample}_FGS.faa", + ffn = "work/FGS/{sample}_FGS.ffn", + gff = "work/FGS/{sample}_FGS.gff", + out = temp("work/FGS/{sample}_FGS.out") + threads: + 4 + params: + output = lambda wildcards, output: os.path.splittext(str(output))[0] + shell: + "run_FragGeneScan.pl " + "-genome={input} " + "-out={params.output} " + "-complete=0 " #negative values with complete=1 + "-train=complete " + "-thread={threads} " + " ; " + "sed --in-place 's/*/N/' {output.faa} " + +rule prodigal: + input: + unpack(contigs_input) + output: + faa = "work/prodigal/{sample}_prodigal.faa", + ffn = "work/prodigal/{sample}_prodigal.ffn", + gff = "work/prodigal/{sample}_prodigal.gff" + shell: + "prodigal " + "-f gff " + "-i {input} " + "-a {output.faa} " + "-d {output.ffn} " + "-o {output.gff} " + "-g 11 " + "-p meta " + # " ; " + # "sed --in-place 's/*/N/' {output.faa} " + +def faa_input(wildcards): + if config["PROTEINS-PREDICTOR"] == "FragGeneScan": + return {"faa": "work/FGS/{wildcards.sample}_FGS.faa".format(wildcards=wildcards)} + elif config["PROTEINS-PREDICTOR"] == "prodigal": + return {"faa": "work/prodigal/{wildcards.sample}_prodigal.faa".format(wildcards=wildcards)} + +def ffn_input(wildcards): + if config["PROTEINS-PREDICTOR"] == "FragGeneScan": + return {"fnn": "work/FGS/{wildcards.sample}_FGS.ffn".format(wildcards=wildcards)} + elif config["PROTEINS-PREDICTOR"] == "prodigal": + return {"fnn": "work/prodigal/{wildcards.sample}_prodigal.ffn".format(wildcards=wildcards)} + +def gff_input(wildcards): + if config["PROTEINS-PREDICTOR"] == "FragGeneScan": + return {"gff": "work/FGS/{wildcards.sample}_FGS.gff".format(wildcards=wildcards)} + elif config["PROTEINS-PREDICTOR"] == "prodigal": + return {"gff": "work/prodigal/{wildcards.sample}_prodigal.gff".format(wildcards=wildcards)} diff --git a/assembly.smk b/assembly.smk index d359f42..879adbd 100644 --- a/assembly.smk +++ b/assembly.smk @@ -79,7 +79,7 @@ rule metaspades: min_len = config["CONTIGS_LEN"], mem_tot = 250, input = lambda wildcards, input: " --12 ".join(input), - output = lambda wildcards, output: os.path.dirname(str(output)) + output = lambda wildcards, output: os.path.dirname(str(output.contigs)) shell: "spades.py " "--threads {threads} " diff --git a/config.json b/config.json index c92e0e2..6b7ebc0 100644 --- a/config.json +++ b/config.json @@ -3,5 +3,6 @@ "NORMALIZATION": false, "SORTMERNA": false, "ASSEMBLER": "metaspades", - "CONTIGS_LEN": 1000 + "CONTIGS_LEN": 1000, + "PROTEINS-PREDICTOR": "prodigal" } diff --git a/global.smk b/global.smk index dbb749c..e8bd404 100644 --- a/global.smk +++ b/global.smk @@ -15,3 +15,4 @@ include: "../workflow_metagenomics/quality.smk" include: "../workflow_metagenomics/preprocess.smk" include: "../workflow_metagenomics/kaiju.smk" include: "../workflow_metagenomics/assembly.smk" +include: "../workflow_metagenomics/annotation.smk" -- GitLab