Skip to content

Commit e423587

Browse files
authored
Merge pull request #10 from TRON-Bioinformatics/release_1.3.5
Release 1.3.5
2 parents 7709a4f + 95aaa7d commit e423587

15 files changed

+149
-11
lines changed

Dockerfile renamed to Docker/Dockerfile

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from ubuntu:20.04
22

33
RUN apt-get update -y --fix-missing
4-
RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y software-properties-common python python3 python3-pip emacs curl wget zip unzip tar zlib1g-dev liblzo2-dev libcurl4-openssl-dev libssl-dev libncurses5 tzdata
4+
RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y software-properties-common git python python3 python3-pip emacs curl wget zip unzip tar zlib1g-dev liblzo2-dev libcurl4-openssl-dev libssl-dev libncurses5 tzdata
55

66
RUN curl -O https://repo.anaconda.com/miniconda/Miniconda2-latest-Linux-x86_64.sh
77
RUN bash Miniconda2-latest-Linux-x86_64.sh -b -p /root/miniconda2
@@ -35,6 +35,15 @@ RUN R --slave -e 'remotes::install_version("tidyverse", "1.2.1")'
3535
RUN R --slave -e 'remotes::install_version("XML", "3.99-0.9")'
3636
RUN R --slave -e 'remotes::install_version("randomForest", "4.6-14")'
3737

38-
3938
COPY ./code/ /code/
39+
40+
# After release 1.3.5 these lines can be used to automate docker image creation process further
41+
#RUN wget https://github.com/TRON-Bioinformatics/EasyFuse/archive/refs/tags/v1.3.5.tar.gz && \
42+
#tar xvfz v1.3.5.tar.gz && \
43+
#mv EasyFuse-1.3.5/ /code/easyfuse/ && \
44+
#cd /code/easyfuse/ && \
45+
#mv config.ini.docker config.ini && \
46+
#mv build_env.sh.sample build_env.sh && \
47+
#mv blacklist.txt.sample blacklist.txt
48+
4049
ENV PERL5LIB "$PERL5LIB:/code/SOAPfuse/1.27/source/bin/perl_module/"

Docker/build_docker_img_test.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/bash
2+
3+
docker build \
4+
--rm \
5+
-t docker.io/tronbioinformatics/easyfuse:latest \
6+
.

Docker/run_docker_img_interactive.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
3+
docker run \
4+
--name test_easyfuse_container \
5+
-v /scratch/info/data/easyfuse/easyfuse_ref:/ref \
6+
-it docker.io/tronbioinformatics/easyfuse:1.3.5 \
7+
/bin/bash

Docker/run_docker_img_test.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
3+
docker run \
4+
--name test_easyfuse_container \
5+
-v /scratch/info/data/easyfuse/easyfuse_ref:/ref \
6+
-v /scratch/info/data/easyfuse/easyfuse_data:/data \
7+
--rm \
8+
-it docker.io/tronbioinformatics/easyfuse:latest \
9+
python /code/easyfuse/processing.py -i /data/input_fastqs -o /data/results/

Docker/run_singularity_img_test.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/bin/bash
2+
3+
4+
singularity exec \
5+
-W ./ \
6+
--bind /scratch/info/data/easyfuse/easyfuse_ref:/ref \
7+
--bind /scratch/info/data/easyfuse/easyfuse_data:/data \
8+
docker://docker.io/tronbioinformatics/easyfuse:latest \
9+
python /code/easyfuse/processing.py -i /data/input_fastqs -o /data/results/
10+

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ We recommend using EasyFuse with the Docker container.
2121
The Docker image can be downloaded from [dockerhub](https://hub.docker.com/r/tronbioinformatics/easyfuse) using the following command:
2222

2323
```
24-
docker pull tronbioinformatics/easyfuse:1.3.4
24+
docker pull tronbioinformatics/easyfuse:latest
2525
```
2626

2727
### Download reference data
@@ -56,8 +56,8 @@ docker run \
5656
-v </path/to/data>:/data \
5757
-v </path/to/output>:/output \
5858
--rm \
59-
-it easyfuse:1.3.4 \
60-
python /code/easyfuse-1.3.4/processing.py -i /data -o /output
59+
-it easyfuse:latest \
60+
python /code/easyfuse/processing.py -i /data -o /output
6161
```
6262

6363

@@ -68,7 +68,7 @@ The output can be found in `</path/to/output>/results/`. The Output format is de
6868
The EasyFuse pipeline depends on multiple external fusion prediction tools and other dependencies. For example:
6969

7070
- [STAR](https://github.com/alexdobin/STAR) (2.6.1d)
71-
- [STAR-Fusion](https://github.com/STAR-Fusion/STAR-Fusion/wiki) (2.6.1d)
71+
- [STAR-Fusion](https://github.com/STAR-Fusion/STAR-Fusion/wiki) (1.5.0)
7272
- [Fusioncatcher](https://github.com/ndaniel/fusioncatcher)(1.00)
7373
- [MapSplice2](https://github.com/davidroberson/MapSplice2) (2.2.1)
7474
- [InFusion](https://bitbucket.org/kokonech/infusion/src/master/) (0.8)

config.ini.docker

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# Required user input:
2+
# 1) Which fusion prediction tools should be executed (tools)
3+
# 2) Which post-processing steps should be executed (fd_tools)
4+
# 3) Which reference data shall be used (ref_trans_version & ref_genome_build)
5+
# 4) To whom shall slurm mails be sent to (receiver)
6+
7+
[general]
8+
version = 1.3.5
9+
pipeline_name = EasyFuse
10+
tools = QC,Readfilter,Fusioncatcher,Star,Starfusion,Infusion,Mapsplice,Soapfuse,Fetchdata,Summary
11+
fusiontools = Fusioncatcher,Starfusion,Infusion,Mapsplice,Soapfuse
12+
fd_tools = Fusiongrep,Contextseq,Starindex,ReadFilter2,ReadFilter2b,StaralignBest,BamindexBest,RequantifyBest
13+
14+
15+
min_read_len_perc = 0.75
16+
max_dist_proper_pair = 200000
17+
cis_near_distance = 1000000
18+
model_pred_threshold = 0.5
19+
tsl_filter = 4,5,NA
20+
requant_mode = best
21+
context_seq_len = 400
22+
ref_genome_build = hg38
23+
ref_trans_version = ensembl
24+
queueing_system = none
25+
time_limit = 30-00:00:0
26+
partition = Compute
27+
user = sorn
28+
module_dir = /code/easyfuse/
29+
30+
# Define ressource usage (cpu (number of threads), mem (ram in Gb)):
31+
[resources]
32+
qc = 6,10
33+
readfilter = 6,50
34+
star = 6,40
35+
mapsplice = 6,30
36+
fusioncatcher = 6,30
37+
starchip = 12,30
38+
starfusion = 6,30
39+
infusion = 6,30
40+
soapfuse = 6,20
41+
classification = 1,16
42+
fetchdata = 12,50
43+
summary = 1,16
44+
45+
46+
# execution command for individual programs (what you write here should be identical to what is typed in the console)
47+
[commands]
48+
# for qc
49+
fastqc = fastqc
50+
skewer = /code/skewer-0.2.2/skewer
51+
# for processing
52+
mapsplice = mapsplice.py
53+
fusioncatcher = /code/fusioncatcher/1.0/bin/fusioncatcher
54+
starfusion = STAR-Fusion
55+
infusion = /code/InFusion-0.8/infusion
56+
soapfuse = /code/SOAPfuse/1.27/SOAPfuse-RUN.pl
57+
# for processing and fetch data
58+
star = STAR
59+
samtools = samtools
60+
# for liftover
61+
crossmap = test
62+
63+
64+
# full path to reference files
65+
[references]
66+
genome_fasta = /ref/Homo_sapiens.GRCh38.dna.primary_assembly.fa
67+
genome_fastadir = /ref/fasta
68+
genome_sizes = /ref/STAR_idx/chrNameLength.txt
69+
genes_fasta = /ref/Homo_sapiens.GRCh38.cdna.all.fa
70+
genes_gtf = /ref/Homo_sapiens.GRCh38.86.gtf
71+
genes_adb = /ref/Homo_sapiens.GRCh38.86.gff3.db
72+
genes_tsl = /ref/Homo_sapiens.GRCh38.86.gtf.tsl
73+
74+
75+
76+
# full path to program indices
77+
[indices]
78+
star = /ref/star_index/
79+
bowtie = /ref/bowtie_index/hg38
80+
starfusion = /ref/starfusion_index/
81+
fusioncatcher = /ref/fusioncatcher_index/
82+
83+
84+
# full path to program specific config files (these are just general files which need no user modification)
85+
[other_files]
86+
infusion_cfg = /ref/infusion.cfg
87+
soapfuse_cfg = /ref/soapfuse.cfg
88+
easyfuse_model = /code/easyfuse/data/model/Fusion_modeling_FFPE_train_v33.random_forest.model_full_data.EF_full.rds

fetchdata.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ def __init__(self, scratch_path, fetchdata_path, sample_id, cfg_file):
5353
if cfg_file.endswith("ini"):
5454
self.cfg = ConfigParser()
5555
self.cfg.read(cfg_file)
56-
print(self.cfg)
5756
elif cfg_file.endswith("json"):
5857
with open(cfg_file) as config_file:
5958
self.cfg = json.load(config_file)

fusiontoolparser.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -572,8 +572,8 @@ def lookup_fusions_in_prediction(self, dict_of_fusion_dicts):
572572
# eg: fusion with gene1 "AB1" and gene2 "AB2" will match to fusion "AB11"-"AB22"
573573
#if uniq_fusion_id_split[0] in fusion_id_split and uniq_fusion_id_split[2] in fusion_id_split:
574574
# urla: possible solution:
575-
print(fusion_id_split)
576-
print(uniq_fusion_id_split)
575+
#print(fusion_id_split)
576+
#print(uniq_fusion_id_split)
577577
if ((uniq_fusion_id_split[0] == fusion_id_split[0] and uniq_fusion_id_split[1] == fusion_id_split[1]) or
578578
(uniq_fusion_id_split[0] == fusion_id_split[1] and uniq_fusion_id_split[1] == fusion_id_split[0])):
579579
found_fusion = True
@@ -601,7 +601,7 @@ def run(self):
601601
self.logger.debug("Generating Detected Fusions table")
602602

603603
fusion_result_dict, results_with_errors_dict = self.concatenate_fusion_results(tool_state_path, self.fusion_output_path)
604-
print(len(fusion_result_dict))
604+
#print(len(fusion_result_dict))
605605
if sum(results_with_errors_dict.values()) == len(fusion_result_dict):
606606
self.logger.error("Fusion parsing failed completely. Revision required. Aborting.")
607607
sys.exit(1)

getRequantReads.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def __init__(self, bam, output, context_file):
5454

5555
self.coord_dict = {}
5656
self.get_ranges(context_file)
57-
print(self.coord_dict)
57+
#print(self.coord_dict)
5858

5959
def get_ranges(self, context_file):
6060
""" vlkfh """

run_test.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/bin/bash
2+
3+
rm -rf test_out_ini
4+
5+
python processing.py \
6+
-i test_case/SRR1659960_05pc_R1.fastq.gz \
7+
test_case/SRR1659960_05pc_R2.fastq.gz \
8+
-o test_out_ini/ \
9+
-c config.ini \
10+
-p 30448

0 commit comments

Comments
 (0)