Skip to content

Commit

Permalink
Merge pull request #14 from TRON-Bioinformatics/release_1.3.6
Browse files Browse the repository at this point in the history
Release 1.3.6
  • Loading branch information
ibn-salem authored Jul 21, 2022
2 parents e423587 + 5fa7b57 commit 645a9aa
Show file tree
Hide file tree
Showing 17 changed files with 1,145 additions and 405 deletions.
30 changes: 15 additions & 15 deletions Docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@ from ubuntu:20.04
RUN apt-get update -y --fix-missing
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

COPY ./code/ /code/

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

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

# Install R packages

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

COPY ./code/ /code/

# After release 1.3.5 these lines can be used to automate docker image creation process further
#RUN wget https://github.com/TRON-Bioinformatics/EasyFuse/archive/refs/tags/v1.3.5.tar.gz && \
#tar xvfz v1.3.5.tar.gz && \
#mv EasyFuse-1.3.5/ /code/easyfuse/ && \
#cd /code/easyfuse/ && \
#mv config.ini.docker config.ini && \
#mv build_env.sh.sample build_env.sh && \
#mv blacklist.txt.sample blacklist.txt

ENV PERL5LIB "$PERL5LIB:/code/SOAPfuse/1.27/source/bin/perl_module/"
# After release 1.3.6 these lines can be used to automate docker image creation process further
# RUN rm -rf /code/easyfuse/ && \
# git clone -b release_1.3.6 https://github.com/TRON-Bioinformatics/EasyFuse.git && \
# mv EasyFuse /code/easyfuse && \
# chmod -R a+rx /code && \
# mv /code/easyfuse/config.ini.docker /code/easyfuse/config.ini && \
# mv /code/easyfuse/build_env.sh.sample /code/easyfuse/build_env.sh && \
# mv /code/easyfuse/blacklist.txt.sample /code/easyfuse/blacklist.txt && \
12 changes: 12 additions & 0 deletions Docker/build_docker.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash

# Specify image tag, e.g. `docker.io/tronbioinformatics/easyfuse:latest`
IMAGE_TAG=$1

# Specify path containing Dockerfile and context
PATH=$2

docker build \
--rm \
-t ${IMAGE_TAG} \
${PATH}
6 changes: 0 additions & 6 deletions Docker/build_docker_img_test.sh

This file was deleted.

13 changes: 13 additions & 0 deletions Docker/convert_docker_to_singularity.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash

# Specify image ID from `docker images`
IMAGE_ID=$1

# Specify output folder to store files
OUTPUT_DIR=$2

# Save Docker image to .tar archive
docker save <image_id> -o ${OUTPUT_DIR}/easyfuse_latest.tar

# Build Singularity image from .tar archive and save it to .sif file
singularity build ${OUTPUT_DIR}/easyfuse_latest.sif docker-archive://${OUTPUT_DIR}/easyfuse_latest.tar
22 changes: 22 additions & 0 deletions Docker/run_docker.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/bash


# Specify path to reference folder,
REFERENCE_FOLDER=$1

# Specify path to data folder,
DATA_FOLDER=$2

# Specify image tag, e.g. `docker.io/tronbioinformatics/easyfuse:latest`
IMAGE_TAG=$3

# Specify output folder name, e.g. `results`
OUTPUT_FOLDER_NAME=$4

docker run \
--name easyfuse_container \
-v ${REFERENCE_FOLDER}:/ref \
-v ${DATA_FOLDER}:/data \
--rm \
-it ${IMAGE_TAG} \
python /code/easyfuse/processing.py -i /data/input_fastqs -o /data/${OUTPUT_FOLDER}/
7 changes: 0 additions & 7 deletions Docker/run_docker_img_interactive.sh

This file was deleted.

9 changes: 0 additions & 9 deletions Docker/run_docker_img_test.sh

This file was deleted.

14 changes: 14 additions & 0 deletions Docker/run_docker_interactive.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash

# Specify path to reference folder,
REFERENCE_FOLDER=$1

# Specify image tag, e.g. `docker.io/tronbioinformatics/easyfuse:latest`
IMAGE_TAG=$2


docker run \
--name easyfuse_container \
-v ${REFERENCE_FOLDER}:/ref \
-it ${IMAGE_TAG} \
/bin/bash
22 changes: 22 additions & 0 deletions Docker/run_singularity.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/bash


# Specify path to reference folder,
REFERENCE_FOLDER=$1

# Specify path to data folder,
DATA_FOLDER=$2

# Specify image tag or SIF, e.g. `docker://docker.io/tronbioinformatics/easyfuse:latest`
DOCKERHUB_OR_SIF=$3

# Specify output folder name, e.g. `results`
OUTPUT_FOLDER_NAME=$4


singularity exec \
--containall \
--bind ${REFERENCE_FOLDER}:/ref \
--bind ${DATA_FOLDER}:/data \
${DOCKERHUB_OR_SIF} \
python /code/easyfuse/processing.py -i /data/input_fastqs -o /data/${OUTPUT_FOLDER_NAME}/
10 changes: 0 additions & 10 deletions Docker/run_singularity_img_test.sh

This file was deleted.

47 changes: 31 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,21 @@
# EasyFuse

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

EasyFuse is a pipeline to detect fusion transcripts from RNA-seq data with high accuracy.
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.

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

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

We recommend using EasyFuse with the Docker container.
We recommend using EasyFuse with Docker or Singularity.

## Usage with Docker
## Usage

### Download the image

The Docker image can be downloaded from [dockerhub](https://hub.docker.com/r/tronbioinformatics/easyfuse) using the following command:

```
docker pull tronbioinformatics/easyfuse:latest
```

### Download reference data

Expand All @@ -40,15 +33,24 @@ md5sum -c easyfuse_ref_v2.tar.gz.md5 easyfuse_ref_v2.tar.gz
tar xvfz easyfuse_ref_v2.tar.gz
```

### Run EasyFuse
### Run EasyFuse with Docker

The Docker image can be downloaded from [dockerhub](https://hub.docker.com/r/tronbioinformatics/easyfuse) using the following command:

```
docker pull tronbioinformatics/easyfuse:latest
```

EasyFuse will require three folders:
* The input data folder containing FASTQ files, in this example `/path/to/input_data`.

* The input data folder containing FASTQ files, in this example `/path/to/data`.
* The reference data folder, in this example `/path/to/easyfuse_ref`
* The output folder, in this example `/path/to/output`

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

Using Docker:

```
docker run \
--name easyfuse_container \
Expand All @@ -58,10 +60,23 @@ docker run \
--rm \
-it easyfuse:latest \
python /code/easyfuse/processing.py -i /data -o /output
```

### Run EasyFuse with Singularity

```
singularity exec
--containall \
--bind </path/to/easyfuse_ref>:/ref \
--bind </path/to/data>:/data \
--bind </path/to/output>:/output \
docker://tronbioinformatics/easyfuse:latest \
python /code/easyfuse/processing.py -i /data/ -o /output
```

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)
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)

## Custom Installation

Expand Down
2 changes: 1 addition & 1 deletion config.ini.docker
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# 4) To whom shall slurm mails be sent to (receiver)

[general]
version = 1.3.5
version = 1.3.6
pipeline_name = EasyFuse
tools = QC,Readfilter,Fusioncatcher,Star,Starfusion,Infusion,Mapsplice,Soapfuse,Fetchdata,Summary
fusiontools = Fusioncatcher,Starfusion,Infusion,Mapsplice,Soapfuse
Expand Down
2 changes: 1 addition & 1 deletion config.ini.sample
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# 4) To whom shall slurm mails be sent to (receiver)

[general]
version = 1.3.5
version = 1.3.6
pipeline_name = EasyFuse
tools = QC,Readfilter,Fusioncatcher,Star,Starfusion,Infusion,Mapsplice,Soapfuse,Fetchdata,Summary
fusiontools = Fusioncatcher,Starfusion,Infusion,Mapsplice,Soapfuse
Expand Down
Loading

0 comments on commit 645a9aa

Please sign in to comment.