Skip to content

Commit 645a9aa

Browse files
authored
Merge pull request #14 from TRON-Bioinformatics/release_1.3.6
Release 1.3.6
2 parents e423587 + 5fa7b57 commit 645a9aa

17 files changed

+1145
-405
lines changed

Docker/Dockerfile

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@ from ubuntu:20.04
33
RUN apt-get update -y --fix-missing
44
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

6+
COPY ./code/ /code/
7+
68
RUN curl -O https://repo.anaconda.com/miniconda/Miniconda2-latest-Linux-x86_64.sh
7-
RUN bash Miniconda2-latest-Linux-x86_64.sh -b -p /root/miniconda2
9+
RUN bash Miniconda2-latest-Linux-x86_64.sh -b -p /code/miniconda2
810
RUN rm Miniconda2-latest-Linux-x86_64.sh
9-
ENV PATH /root/miniconda2/bin:$PATH
11+
ENV PATH /code/miniconda2/bin:$PATH
1012
RUN conda update conda
1113
RUN conda update --all
12-
RUN conda install -y -c anaconda pandas=0.24.0 biopython=1.73
13-
RUN conda install -y -c conda-forge python-lzo=1.12 python-xxhash=1.4.3
14+
RUN conda install -y -c anaconda pandas=0.24.0
15+
RUN conda install -y -c conda-forge python-lzo=1.12 python-xxhash=1.4.3 biopython=1.73
1416
RUN conda install -y -c bioconda pysam=0.15.2 star=2.6.1b samtools=1.9.0 mapsplice=2.2.1
1517
RUN conda install -y -c bioconda star-fusion=1.5.0 bowtie=1.1.2
1618
RUN conda install -y -c bioconda bowtie2=2.3.4.3
@@ -26,6 +28,7 @@ RUN wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc |
2628
RUN add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
2729
RUN apt-get install -y r-base
2830

31+
ENV PERL5LIB "$PERL5LIB:/code/SOAPfuse/1.27/source/bin/perl_module/"
2932

3033
# Install R packages
3134

@@ -35,15 +38,12 @@ RUN R --slave -e 'remotes::install_version("tidyverse", "1.2.1")'
3538
RUN R --slave -e 'remotes::install_version("XML", "3.99-0.9")'
3639
RUN R --slave -e 'remotes::install_version("randomForest", "4.6-14")'
3740

38-
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
4841

49-
ENV PERL5LIB "$PERL5LIB:/code/SOAPfuse/1.27/source/bin/perl_module/"
42+
# After release 1.3.6 these lines can be used to automate docker image creation process further
43+
# RUN rm -rf /code/easyfuse/ && \
44+
# git clone -b release_1.3.6 https://github.com/TRON-Bioinformatics/EasyFuse.git && \
45+
# mv EasyFuse /code/easyfuse && \
46+
# chmod -R a+rx /code && \
47+
# mv /code/easyfuse/config.ini.docker /code/easyfuse/config.ini && \
48+
# mv /code/easyfuse/build_env.sh.sample /code/easyfuse/build_env.sh && \
49+
# mv /code/easyfuse/blacklist.txt.sample /code/easyfuse/blacklist.txt && \

Docker/build_docker.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash
2+
3+
# Specify image tag, e.g. `docker.io/tronbioinformatics/easyfuse:latest`
4+
IMAGE_TAG=$1
5+
6+
# Specify path containing Dockerfile and context
7+
PATH=$2
8+
9+
docker build \
10+
--rm \
11+
-t ${IMAGE_TAG} \
12+
${PATH}

Docker/build_docker_img_test.sh

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
3+
# Specify image ID from `docker images`
4+
IMAGE_ID=$1
5+
6+
# Specify output folder to store files
7+
OUTPUT_DIR=$2
8+
9+
# Save Docker image to .tar archive
10+
docker save <image_id> -o ${OUTPUT_DIR}/easyfuse_latest.tar
11+
12+
# Build Singularity image from .tar archive and save it to .sif file
13+
singularity build ${OUTPUT_DIR}/easyfuse_latest.sif docker-archive://${OUTPUT_DIR}/easyfuse_latest.tar

Docker/run_docker.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/bash
2+
3+
4+
# Specify path to reference folder,
5+
REFERENCE_FOLDER=$1
6+
7+
# Specify path to data folder,
8+
DATA_FOLDER=$2
9+
10+
# Specify image tag, e.g. `docker.io/tronbioinformatics/easyfuse:latest`
11+
IMAGE_TAG=$3
12+
13+
# Specify output folder name, e.g. `results`
14+
OUTPUT_FOLDER_NAME=$4
15+
16+
docker run \
17+
--name easyfuse_container \
18+
-v ${REFERENCE_FOLDER}:/ref \
19+
-v ${DATA_FOLDER}:/data \
20+
--rm \
21+
-it ${IMAGE_TAG} \
22+
python /code/easyfuse/processing.py -i /data/input_fastqs -o /data/${OUTPUT_FOLDER}/

Docker/run_docker_img_interactive.sh

Lines changed: 0 additions & 7 deletions
This file was deleted.

Docker/run_docker_img_test.sh

Lines changed: 0 additions & 9 deletions
This file was deleted.

Docker/run_docker_interactive.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/bash
2+
3+
# Specify path to reference folder,
4+
REFERENCE_FOLDER=$1
5+
6+
# Specify image tag, e.g. `docker.io/tronbioinformatics/easyfuse:latest`
7+
IMAGE_TAG=$2
8+
9+
10+
docker run \
11+
--name easyfuse_container \
12+
-v ${REFERENCE_FOLDER}:/ref \
13+
-it ${IMAGE_TAG} \
14+
/bin/bash

Docker/run_singularity.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/bash
2+
3+
4+
# Specify path to reference folder,
5+
REFERENCE_FOLDER=$1
6+
7+
# Specify path to data folder,
8+
DATA_FOLDER=$2
9+
10+
# Specify image tag or SIF, e.g. `docker://docker.io/tronbioinformatics/easyfuse:latest`
11+
DOCKERHUB_OR_SIF=$3
12+
13+
# Specify output folder name, e.g. `results`
14+
OUTPUT_FOLDER_NAME=$4
15+
16+
17+
singularity exec \
18+
--containall \
19+
--bind ${REFERENCE_FOLDER}:/ref \
20+
--bind ${DATA_FOLDER}:/data \
21+
${DOCKERHUB_OR_SIF} \
22+
python /code/easyfuse/processing.py -i /data/input_fastqs -o /data/${OUTPUT_FOLDER_NAME}/

Docker/run_singularity_img_test.sh

Lines changed: 0 additions & 10 deletions
This file was deleted.

README.md

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,21 @@
11
# EasyFuse
22

3-
![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/tron-bioinformatics/EasyFuse)
4-
![Docker Image Version (latest semver)](https://img.shields.io/docker/v/tronbioinformatics/easyfuse?label=docker)
3+
[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/tron-bioinformatics/EasyFuse)](https://github.com/TRON-Bioinformatics/EasyFuse/releases)
4+
[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/tronbioinformatics/easyfuse?label=docker)](https://hub.docker.com/r/tronbioinformatics/easyfuse)
55
[![License](https://img.shields.io/badge/license-GPLv3-green)](https://opensource.org/licenses/GPL-3.0)
66

77
EasyFuse is a pipeline to detect fusion transcripts from RNA-seq data with high accuracy.
88
EasyFuse uses five fusion gene detection tools, [STAR-Fusion](https://github.com/STAR-Fusion/STAR-Fusion/wiki), [InFusion](https://bitbucket.org/kokonech/infusion/src/master/), [MapSplice2](http://www.netlab.uky.edu/p/bioinfo/MapSplice2), [Fusioncatcher](https://github.com/ndaniel/fusioncatcher), and [SoapFuse](https://sourceforge.net/p/soapfuse/wiki/Home/) along with a powerful read filtering strategy, stringent re-quantification of supporting reads and machine learning for highly accurate predictions.
99

1010
<p align="center"><img src="img/easyfuse_workflow.png"></p>
1111

12-
- Documentation: [EasyFuse Wiki](https://github.com/TRON-Bioinformatics/EasyFuse/wiki)
13-
- Paper: https://doi.org/10.1038/s41587-022-01247-9
12+
- Documentation: [EasyFuse Wiki](https://github.com/TRON-Bioinformatics/EasyFuse/wiki)
13+
- Publication: [Weber D, Ibn-Salem J, Sorn P, et al. Nat Biotechnol. 2022](https://doi.org/10.1038/s41587-022-01247-9)
1414

15-
We recommend using EasyFuse with the Docker container.
15+
We recommend using EasyFuse with Docker or Singularity.
1616

17-
## Usage with Docker
17+
## Usage
1818

19-
### Download the image
20-
21-
The Docker image can be downloaded from [dockerhub](https://hub.docker.com/r/tronbioinformatics/easyfuse) using the following command:
22-
23-
```
24-
docker pull tronbioinformatics/easyfuse:latest
25-
```
2619

2720
### Download reference data
2821

@@ -40,15 +33,24 @@ md5sum -c easyfuse_ref_v2.tar.gz.md5 easyfuse_ref_v2.tar.gz
4033
tar xvfz easyfuse_ref_v2.tar.gz
4134
```
4235

43-
### Run EasyFuse
36+
### Run EasyFuse with Docker
37+
38+
The Docker image can be downloaded from [dockerhub](https://hub.docker.com/r/tronbioinformatics/easyfuse) using the following command:
39+
40+
```
41+
docker pull tronbioinformatics/easyfuse:latest
42+
```
4443

4544
EasyFuse will require three folders:
46-
* The input data folder containing FASTQ files, in this example `/path/to/input_data`.
45+
46+
* The input data folder containing FASTQ files, in this example `/path/to/data`.
4747
* The reference data folder, in this example `/path/to/easyfuse_ref`
4848
* The output folder, in this example `/path/to/output`
4949

5050
Now EasyFuse can be started by mapping the input data, references and output folders.
5151

52+
Using Docker:
53+
5254
```
5355
docker run \
5456
--name easyfuse_container \
@@ -58,10 +60,23 @@ docker run \
5860
--rm \
5961
-it easyfuse:latest \
6062
python /code/easyfuse/processing.py -i /data -o /output
63+
6164
```
6265

66+
### Run EasyFuse with Singularity
67+
68+
```
69+
singularity exec
70+
--containall \
71+
--bind </path/to/easyfuse_ref>:/ref \
72+
--bind </path/to/data>:/data \
73+
--bind </path/to/output>:/output \
74+
docker://tronbioinformatics/easyfuse:latest \
75+
python /code/easyfuse/processing.py -i /data/ -o /output
76+
77+
```
6378

64-
The output can be found in `</path/to/output>/results/`. The Output format is described in the wiki page [EasyFuse Output](https://github.com/TRON-Bioinformatics/EasyFuse/wiki/EasyFuse-Output)
79+
The output can be found in `</path/to/output>/FusionSummary`. The Output format is described in the wiki page [EasyFuse Output](https://github.com/TRON-Bioinformatics/EasyFuse/wiki/EasyFuse-Output)
6580

6681
## Custom Installation
6782

config.ini.docker

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# 4) To whom shall slurm mails be sent to (receiver)
66

77
[general]
8-
version = 1.3.5
8+
version = 1.3.6
99
pipeline_name = EasyFuse
1010
tools = QC,Readfilter,Fusioncatcher,Star,Starfusion,Infusion,Mapsplice,Soapfuse,Fetchdata,Summary
1111
fusiontools = Fusioncatcher,Starfusion,Infusion,Mapsplice,Soapfuse

config.ini.sample

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# 4) To whom shall slurm mails be sent to (receiver)
66

77
[general]
8-
version = 1.3.5
8+
version = 1.3.6
99
pipeline_name = EasyFuse
1010
tools = QC,Readfilter,Fusioncatcher,Star,Starfusion,Infusion,Mapsplice,Soapfuse,Fetchdata,Summary
1111
fusiontools = Fusioncatcher,Starfusion,Infusion,Mapsplice,Soapfuse

0 commit comments

Comments
 (0)