Skip to content

Commit

Permalink
Merge pull request #53 from mskcc/release/0.2.0
Browse files Browse the repository at this point in the history
Release/0.2.0
  • Loading branch information
allanbolipata authored Jul 24, 2019
2 parents cab9ff4 + e2d72d2 commit fa8351b
Show file tree
Hide file tree
Showing 52 changed files with 4,176 additions and 0 deletions.
114 changes: 114 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/

# Mac
.DS_Store

# vscode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
21 changes: 21 additions & 0 deletions abra2_2.17/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# CWL and Dockerfile for running ABRA2

## Version of tools in docker image (/container/Dockerfile)

| Tool | Version | Location |
|--- |--- |--- |
| openjdk | 8 | - |
| ABRA2 | 2.17 | https://github.com/mozack/abra2/releases/download/v2.19/abra2-2.17.jar |

[![](https://images.microbadger.com/badges/version/mskcc/abra2:0.1.0.svg)](https://microbadger.com/images/mskcc/abra2:0.1.0 "Get your own version badge on microbadger.com") [![](https://images.microbadger.com/badges/image/mskcc/abra2:0.1.0.svg)](https://microbadger.com/images/mskcc/abra2:0.1.0 "Get your own image badge on microbadger.com") [![](https://images.microbadger.com/badges/license/mskcc/abra2:0.1.0.svg)](https://microbadger.com/images/mskcc/abra2:0.1.0 "Get your own license badge on microbadger.com")

## CWL

- CWL specification 1.0
- Use example_inputs.yaml to see the inputs to the cwl
- Example Command using [toil](https://toil.readthedocs.io):

```bash
> toil-cwl-runner abra2_2.17.cwl example_inputs.yaml
```

198 changes: 198 additions & 0 deletions abra2_2.17/abra2_2.17.cwl
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
class: CommandLineTool
cwlVersion: v1.0
$namespaces:
dct: 'http://purl.org/dc/terms/'
doap: 'http://usefulinc.com/ns/doap#'
foaf: 'http://xmlns.com/foaf/0.1/'
id: abra2_2.17
baseCommand:
- java
inputs:
- id: memory_per_job
type: int?
doc: Memory per job in megabytes
- id: memory_overhead
type: int?
doc: Memory overhead per job in megabytes
- id: number_of_threads
type: int?
inputBinding:
position: 0
prefix: '--threads'
- id: input_bam
type:
- File
- type: array
items: File
inputBinding:
position: 0
prefix: '--in'
doc: Required list of input sam or bam file (s) separated by comma
secondaryFiles:
- ^.bai
- id: working_directory
type: Directory?
inputBinding:
position: 0
prefix: '--tmpdir'
doc: Set the temp directory (overrides java.io.tmpdir)
- id: reference_fasta
type: File
inputBinding:
position: 0
prefix: '--ref'
doc: Genome reference location
secondaryFiles:
- ^.fai
- id: targets
type: File
inputBinding:
position: 0
prefix: '--targets'
- id: kmer_size
type: string?
inputBinding:
position: 0
prefix: '--kmer'
doc: >-
Optional assembly kmer size(delimit with commas if multiple sizes
specified)
- id: maximum_average_depth
type: int?
inputBinding:
position: 0
prefix: '--mad'
doc: >-
Regions with average depth exceeding this value will be downsampled
(default: 1000)
- id: soft_clip_contig
type: string?
inputBinding:
position: 0
prefix: '--sc'
doc: >-
Soft clip contig args
[max_contigs,min_base_qual,frac_high_qual_bases,min_soft_clip_len]
(default:16,13,80,15)
- id: maximum_mixmatch_rate
type: float?
inputBinding:
position: 0
prefix: '--mmr'
doc: >-
Max allowed mismatch rate when mapping reads back to contigs (default:
0.05)
- id: scoring_gap_alignments
type: string?
inputBinding:
position: 0
prefix: '--sga'
doc: >-
Scoring used for contig alignments(match,
mismatch_penalty,gap_open_penalty,gap_extend_penalty) (default:8,32,48,1)
- id: contig_anchor
type: string?
inputBinding:
position: 0
prefix: '--ca'
doc: >-
Contig anchor [M_bases_at_contig_edge,max_mismatches_near_edge]
(default:10,2)
- id: window_size
type: string?
inputBinding:
position: 0
prefix: '--ws'
doc: |-
Processing window size and overlap
(size,overlap) (default: 400,200)
- id: consensus_sequence
type: boolean?
inputBinding:
position: 0
prefix: '--cons'
doc: Use positional consensus sequence when aligning high quality soft clipping
- id: output_bams
type:
- string
- type: array
items: string
inputBinding:
position: 0
prefix: '--out'
doc: Required list of output sam or bam file (s) separated by comma
- id: ignore_bad_assembly
type: boolean?
inputBinding:
position: 0
prefix: '--ignore-bad-assembly'
doc: Use this option to avoid parsing errors for corrupted assemblies
- id: bam_index
type: boolean?
inputBinding:
position: 0
prefix: '--index'
doc: >-
Enable BAM index generation when outputting sorted alignments (may require
additonal memory)
- id: input_vcf
type: File?
inputBinding:
position: 0
prefix: '--in-vcf'
doc: >-
VCF containing known (or suspected) variant sites. Very large files
should be avoided.
- id: no_sort
type: boolean?
inputBinding:
position: 0
prefix: '--nosort'
doc: Do not attempt to sort final output
outputs:
- id: realigned_bam
type:
- 'null'
- File
- type: array
items: File
outputBinding:
glob: |
*abra.bam
secondaryFiles:
- ^.bai
label: abra2_2.17
arguments:
- position: 0
valueFrom: "${\n if(inputs.memory_per_job && inputs.memory_overhead) {\n \n if(inputs.memory_per_job % 1000 == 0) {\n \t\n return \"-Xmx\" + (inputs.memory_per_job/1000).toString() + \"G\"\n }\n else {\n \n return \"-Xmx\" + Math.floor((inputs.memory_per_job/1000)).toString() + \"G\" \n }\n }\n else if (inputs.memory_per_job && !inputs.memory_overhead){\n \n if(inputs.memory_per_job % 1000 == 0) {\n \t\n return \"-Xmx\" + (inputs.memory_per_job/1000).toString() + \"G\"\n }\n else {\n \n return \"-Xmx\" + Math.floor((inputs.memory_per_job/1000)).toString() + \"G\" \n }\n }\n else if(!inputs.memory_per_job && inputs.memory_overhead){\n \n return \"-Xmx15G\"\n }\n else {\n \n \treturn \"-Xmx15G\"\n }\n}"
- position: 0
prefix: '-jar'
valueFrom: /usr/local/bin/abra2.jar
requirements:
- class: ResourceRequirement
ramMin: "${\r if(inputs.memory_per_job && inputs.memory_overhead) {\r \r return inputs.memory_per_job + inputs.memory_overhead\r }\r else if (inputs.memory_per_job && !inputs.memory_overhead){\r \r \treturn inputs.memory_per_job + 2000\r }\r else if(!inputs.memory_per_job && inputs.memory_overhead){\r \r return 15000 + inputs.memory_overhead\r }\r else {\r \r \treturn 17000 \r }\r}"
coresMin: "${\r if (inputs.number_of_threads) {\r \r \treturn inputs.number_of_threads \r }\r else {\r \r return 4\r }\r}"
- class: DockerRequirement
dockerPull: 'mskcc/abra2:0.1.0'
- class: InlineJavascriptRequirement
'dct:contributor':
- class: 'foaf:Organization'
'foaf:member':
- class: 'foaf:Person'
'foaf:mbox': 'mailto:shahr2@mskcc.org'
'foaf:name': Ronak Shah
'foaf:name': Memorial Sloan Kettering Cancer Center
'dct:creator':
- class: 'foaf:Organization'
'foaf:member':
- class: 'foaf:Person'
'foaf:mbox': 'mailto:shahr2@mskcc.org'
'foaf:name': Ronak Shah
'foaf:name': Memorial Sloan Kettering Cancer Center
'doap:release':
- class: 'doap:Version'
'doap:name': abra2
'doap:revision': 2.17
- class: 'doap:Version'
'doap:name': cwl-wrapper
'doap:revision': 1.0.0
40 changes: 40 additions & 0 deletions abra2_2.17/container/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
################## BASE IMAGE ######################

FROM openjdk:8

################## ARGUMENTS########################

ARG BUILD_DATE
ARG BUILD_VERSION
ARG LICENSE="Apache-2.0"
ARG JAVA_VERSION=8
ARG ABRA2_VERSION=2.17

################## METADATA ########################

LABEL org.opencontainers.image.vendor="MSKCC"
LABEL org.opencontainers.image.authors="Ronak H Shah ([email protected])"

LABEL org.opencontainers.image.created=${BUILD_DATE} \
org.opencontainers.image.version=${BUILD_VERSION} \
org.opencontainers.image.licenses=${LICENSE} \
org.opencontainers.image.version.java=${JAVA_VERSION} \
org.opencontainers.image.version.abra2=${ABRA2_VERSION} \
org.opencontainers.image.source.abra2="https://github.com/mozack/abra2/releases/"

LABEL org.opencontainers.image.description="This container uses OPENJDK ${JAVA_VERSION} as the base image to build abra2 version ${ABRA2_VERSION}"

################## INSTALL ##########################

WORKDIR /usr/src

RUN apt-get update && \
apt-get --no-install-recommends install -y \
wget && \
apt-get clean autoclean && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN wget "https://github.com/mozack/abra2/releases/download/v${ABRA2_VERSION}/abra2-${ABRA2_VERSION}.jar" && \
chmod 755 /usr/src/abra2-${ABRA2_VERSION}.jar && \
cp -s /usr/src/abra2-${ABRA2_VERSION}.jar /usr/local/bin/abra2.jar
Loading

0 comments on commit fa8351b

Please sign in to comment.