From f7a50522f095cab4a601c95f0e4f0da479286f5b Mon Sep 17 00:00:00 2001 From: Laurent Modolo <laurent.modolo@ens-lyon.fr> Date: Fri, 9 Jul 2021 10:06:02 +0200 Subject: [PATCH] kb: update to 0.26.3 --- src/.docker_modules/kb/0.26.3/Dockerfile | 11 +++++ src/.docker_modules/kb/0.26.3/docker_init.sh | 4 ++ src/.docker_modules/kb/0.26.3/t2g.py | 47 ++++++++++++++++++++ src/nf_modules/kb/main.nf | 2 +- 4 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 src/.docker_modules/kb/0.26.3/Dockerfile create mode 100755 src/.docker_modules/kb/0.26.3/docker_init.sh create mode 100755 src/.docker_modules/kb/0.26.3/t2g.py diff --git a/src/.docker_modules/kb/0.26.3/Dockerfile b/src/.docker_modules/kb/0.26.3/Dockerfile new file mode 100644 index 00000000..8ca889e8 --- /dev/null +++ b/src/.docker_modules/kb/0.26.3/Dockerfile @@ -0,0 +1,11 @@ +FROM python:3.9-slim + +ENV KB_VERSION="0.26.3" + +RUN apt update && apt install -y procps && pip3 install kb-python==${KB_VERSION} gffutils==0.10.1 + +COPY t2g.py /usr/bin/ + +RUN chmod +x /usr/bin/t2g.py + +CMD [ "bash" ] diff --git a/src/.docker_modules/kb/0.26.3/docker_init.sh b/src/.docker_modules/kb/0.26.3/docker_init.sh new file mode 100755 index 00000000..0294274a --- /dev/null +++ b/src/.docker_modules/kb/0.26.3/docker_init.sh @@ -0,0 +1,4 @@ +#!/bin/sh +docker pull lbmc/kb:0.26.3 +docker build src/.docker_modules/kb/0.26.3 -t 'lbmc/kb:0.26.3' +docker push lbmc/kb:0.26.3 diff --git a/src/.docker_modules/kb/0.26.3/t2g.py b/src/.docker_modules/kb/0.26.3/t2g.py new file mode 100755 index 00000000..f9f0b45d --- /dev/null +++ b/src/.docker_modules/kb/0.26.3/t2g.py @@ -0,0 +1,47 @@ +#!/usr/local/bin/python +import os +import gffutils +import argparse + + +def validate_file(f): + if not os.path.exists(f): + # Argparse uses the ArgumentTypeError to give a rejection message like: + # error: argument input: x does not exist + raise argparse.ArgumentTypeError("{0} does not exist".format(f)) + return f + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="create transcript to genes file from a gtf file." + ) + parser.add_argument( + "-g", "--gtf", dest="gtf", required=True, type=validate_file, + help="gtf file", metavar="FILE" + ) + args = parser.parse_args() + + db = gffutils.create_db( + args.gtf, + dbfn=":memory:", + force=True, + merge_strategy="merge", + disable_infer_transcripts=False, + disable_infer_genes=False + ) + with open("t2g.txt", "w") as t2g: + for gene in db.all_features(): + for transcript in db.children( + gene, featuretype='transcript', order_by='start' + ): + t2g_line = str(transcript["transcript_id"][0]) + \ + "\t" + \ + str(gene["gene_id"][0]) + t2g_line = t2g_line.split("\t") + t2g.write( + str(t2g_line[0].split(".")[0]) + + "\t" + + str(t2g_line[1].split(".")[0]) + + "\n" + ) diff --git a/src/nf_modules/kb/main.nf b/src/nf_modules/kb/main.nf index a6cbfa75..f7cf0e08 100644 --- a/src/nf_modules/kb/main.nf +++ b/src/nf_modules/kb/main.nf @@ -1,4 +1,4 @@ -version = "0.26.0" +version = "0.26.3" container_url = "lbmc/kb:${version}" params.index_fasta = "" -- GitLab