Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 2.0 #112

Closed
wants to merge 154 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
154 commits
Select commit Hold shift + click to select a range
4fe80b6
Fix file extension
AntonPetrov Oct 4, 2023
d661ffe
Prevent crashes if CM does not exist
AntonPetrov Oct 4, 2023
d437ae9
Fix tRNAscan model path
AntonPetrov Oct 4, 2023
dfc7793
Handle NNN anticodon for mito-vert tRNAs
AntonPetrov Oct 5, 2023
ca24928
Clean up .ssi files after tests
AntonPetrov Oct 5, 2023
0d0baef
Add tag to justfile
AntonPetrov Oct 5, 2023
e351aa3
Avoid spawning a new process and use python api
AntonPetrov Oct 9, 2023
a57f5bd
Improve based on code review
AntonPetrov Oct 9, 2023
336f56d
Bump pillow from 10.0.0 to 10.0.1
dependabot[bot] Oct 3, 2023
d9e15ba
Allow full local build for arbitrary platforms
anayden Oct 13, 2023
a53eb68
Remove docker_build.py
anayden Oct 13, 2023
cc00985
Parallel build for base image
anayden Oct 13, 2023
16b1823
Update workflow name
anayden Oct 13, 2023
7d754a4
Fix docker driver
anayden Oct 13, 2023
dd58eb1
Update parallel build
anayden Oct 13, 2023
a7e6743
Remove setup step
anayden Oct 13, 2023
e201b46
Fix final build
anayden Oct 13, 2023
03852e1
Fix final build tags
anayden Oct 13, 2023
0d7b3f8
Test BuildJet
anayden Oct 13, 2023
b063786
Use registry cache
anayden Oct 13, 2023
4a9d72e
Add missing Dockerhub credentials
anayden Oct 13, 2023
119cb12
Fix cache usage
anayden Oct 13, 2023
bd9a925
Experiments with caching
anayden Oct 13, 2023
b597dc2
Update docs and justfile
anayden Oct 17, 2023
dede99d
Build custom image tags when building with custom base tag
anayden Oct 18, 2023
d7f3016
Typo fix
AntonPetrov Oct 19, 2023
18bb845
Merge pull request #119 from RNAcentral/local-docker-build-full
AntonPetrov Oct 19, 2023
b6ce5e7
Merge pull request #120 from RNAcentral/parallel-base-build
AntonPetrov Oct 19, 2023
893aee1
Detect templatefree mode automatically
AntonPetrov Nov 9, 2023
f68aee6
Overwrite results if they exist
AntonPetrov Nov 9, 2023
98e36ff
Add auto-walrus pre-commit hook
anayden Nov 22, 2023
31df79d
Fix indentation
anayden Nov 22, 2023
0d633c8
Merge pull request #126 from RNAcentral/auto-walrusize-r2dt
AntonPetrov Nov 23, 2023
26e8293
Setup devcontainer
anayden Nov 24, 2023
9467adc
Add explicit image
anayden Nov 24, 2023
90e8011
Migrate to Docker image
anayden Nov 24, 2023
f204df9
Fix dockerfile path
anayden Nov 24, 2023
5564cdc
Add VSCode extensions for Python and Docker
anayden Nov 24, 2023
d734594
Add chafa dependencies
anayden Nov 24, 2023
2d850e9
Update overview slides
AntonPetrov Dec 4, 2023
8245229
Fix off by one error when generating templates
AntonPetrov Dec 4, 2023
e829abe
Suppress output when copying evalues
AntonPetrov Dec 4, 2023
3876afb
Use /tmp instead of temp for example CM
AntonPetrov Dec 4, 2023
0ff15fc
Start docs server inside the container
AntonPetrov Dec 6, 2023
c2f82af
Enable admonitions in docs (note, warning etc)
AntonPetrov Dec 6, 2023
5f165f6
Enable creating and using private templates
AntonPetrov Dec 7, 2023
1e63f90
Test creating new template and using it locally
AntonPetrov Dec 7, 2023
864faed
Add examples for new test
AntonPetrov Dec 7, 2023
bfa91a9
Document using private templates locally
AntonPetrov Dec 7, 2023
c12830f
Fix post prob not showing after insertion removal
AntonPetrov Dec 7, 2023
b72a28a
Use --quiet throughout to reduce console output
AntonPetrov Dec 7, 2023
1fb965d
Remove obsolete config options
AntonPetrov Dec 7, 2023
2ef52cb
Remove all temporary files
AntonPetrov Dec 7, 2023
8e84c7c
Remove leftover print statement
AntonPetrov Dec 7, 2023
1c45413
Quiet down a leftover print statement
AntonPetrov Dec 7, 2023
c59fc81
Fix broken structure when 5'/3' labels are present
AntonPetrov Dec 7, 2023
6d90838
Add Codespaces Badge/Button
anayden Dec 7, 2023
d75a8b0
Merge pull request #127 from RNAcentral/codespace
AntonPetrov Dec 8, 2023
4681b1a
Merge pull request #129 from RNAcentral/custom-template-improvements
AntonPetrov Dec 8, 2023
29690f6
Switch to http instead of ftp
AntonPetrov Dec 8, 2023
3bb2e01
Update Rfam id list for release 14.10
AntonPetrov Dec 12, 2023
0b06293
Update R-scape to latest version
AntonPetrov Dec 12, 2023
2bf7792
Update clean up script to remove helixcov files
AntonPetrov Dec 12, 2023
2fb3d3f
Update Rfam files for release 14.10
AntonPetrov Dec 12, 2023
00366bf
Do not generate thumbnails for enriched SVGs
AntonPetrov Dec 12, 2023
f61940c
Move rfam setup code out of r2dt.py
AntonPetrov Dec 12, 2023
12d1421
Install RNArtist
AntonPetrov Jan 11, 2024
34fb0b4
Update R-scape to stop R2R issues
AntonPetrov Feb 28, 2024
6841bcb
Ignore lancaster annotations and 5' labels
AntonPetrov Feb 28, 2024
ead54ff
Minor improvements
AntonPetrov Feb 28, 2024
567dfad
Use cm suffix
AntonPetrov Feb 28, 2024
b9ac688
Update regex to account for characters in 5' label
AntonPetrov Feb 28, 2024
d44631c
Switch to new method of managing Rfam seeds
AntonPetrov Feb 28, 2024
f0f5ccf
Delete temporary r2r_meta files
AntonPetrov Feb 28, 2024
5cc4ba4
Update Rfam templates to release 14.10
AntonPetrov Feb 28, 2024
03b8089
Fix broken test
AntonPetrov Feb 28, 2024
40fedc4
Replace / in seq_id with underscore
AntonPetrov Feb 28, 2024
87f6c88
Fix font size in enriched diagrams too
AntonPetrov Feb 28, 2024
f9ac97f
Fix conflict
AntonPetrov Feb 28, 2024
f38cdd6
Merge pull request #132 from RNAcentral/rfam-updates
AntonPetrov Feb 28, 2024
01eda05
Add RNArtist class
AntonPetrov Aug 11, 2024
a43f18b
Pin numpy version to prevent crashes
AntonPetrov Aug 11, 2024
e005420
Install tqdm
AntonPetrov Aug 11, 2024
a10924a
Setup RNArtist and generate prefer_rnartist.txt
AntonPetrov Aug 11, 2024
e93c5e2
Use tempfile instead of headers.txt
AntonPetrov Aug 11, 2024
f8677e4
Add --rscape and --rnartist options to rfam draw
AntonPetrov Aug 11, 2024
ea01649
Add setup_rnartist method
AntonPetrov Aug 11, 2024
49442d0
Add TestRnartist test
AntonPetrov Aug 11, 2024
9e7da55
Minor fix
AntonPetrov Aug 11, 2024
e482e78
Add WUSS to SS_cons characters
AntonPetrov Aug 11, 2024
9f459c3
Update BioEasel
AntonPetrov Aug 11, 2024
b083d35
Add RNArtist traveler template files
AntonPetrov Aug 11, 2024
5dcec1c
Remove --rscape option as it is the default
AntonPetrov Aug 11, 2024
052e756
Document --rnartist option
AntonPetrov Aug 11, 2024
7147855
Remove --rscape option
AntonPetrov Aug 12, 2024
272ec14
Test RNArtist template generation
AntonPetrov Aug 12, 2024
b95d697
Restore --rscape option
AntonPetrov Aug 12, 2024
2ea79cc
Document --rscape option
AntonPetrov Aug 12, 2024
7d2ee55
Add RNArtist tests
AntonPetrov Aug 12, 2024
3c24e0b
Add a list of families where RNArtist is preferred
AntonPetrov Aug 12, 2024
278cd6d
Add Ribovision to the docs
AntonPetrov Aug 12, 2024
003f749
Make destination optional argument
AntonPetrov Aug 12, 2024
91a8171
Update RNArtist prefer list
AntonPetrov Aug 12, 2024
ac43b7c
Add --rnartist option for setup-rfam
AntonPetrov Aug 12, 2024
fb73a43
Set default Rfam template to "auto"
AntonPetrov Aug 12, 2024
5ab8ec1
Update example file to ensure tests pass
AntonPetrov Aug 12, 2024
fdcad6f
Document animate.py usage
AntonPetrov Aug 12, 2024
8333eb2
Test animation
AntonPetrov Aug 12, 2024
a30b3fa
Minor fixes in animate.py
AntonPetrov Aug 12, 2024
c3bdc62
Merge pull request #140 from RNAcentral/rnartist
AntonPetrov Aug 12, 2024
868afce
Merge pull request #141 from RNAcentral/animate-docs
AntonPetrov Aug 12, 2024
0e6ea12
Exclude ps files from GH language stats
AntonPetrov Aug 12, 2024
8e2463b
Docker linting fixes
AntonPetrov Aug 13, 2024
40e22f3
Ignore local virtual environment if present
AntonPetrov Aug 13, 2024
b8a6698
Install Ribovore rt-blast branch and NCBI blast
AntonPetrov Aug 13, 2024
8ffae18
Ignore blast database files
AntonPetrov Aug 13, 2024
bbc296c
Add --1blast option to ribovore
AntonPetrov Aug 13, 2024
cc49fa4
Add CRW model blacklist
AntonPetrov Aug 13, 2024
3347506
Close files when generating test html reports
AntonPetrov Aug 13, 2024
7e74438
Update tests for ribotyper --1blast option
AntonPetrov Aug 13, 2024
0662938
Update library compression script
AntonPetrov Aug 13, 2024
f193492
Add Ribovore class for parsing results
AntonPetrov Aug 18, 2024
3014e39
Add RfamThreshold for getting curated cutoffs
AntonPetrov Aug 18, 2024
ab544b6
Use new Ribovore class for getting results
AntonPetrov Aug 18, 2024
344ec95
Update tests
AntonPetrov Aug 18, 2024
96abc79
Run blast methods first
AntonPetrov Aug 18, 2024
fd4fc73
List models by type
AntonPetrov Aug 18, 2024
02730ef
Add RNArtist template free mode
AntonPetrov Aug 18, 2024
2bd18f0
Test template free RNArtist mode
AntonPetrov Aug 18, 2024
20799f0
Document RNArtist template free mode
AntonPetrov Aug 18, 2024
a07d8ac
Add bridge RNA example fasta file for tests
AntonPetrov Aug 18, 2024
c8638a3
Add a utility for scaling up templates
AntonPetrov Aug 18, 2024
b8f99fa
Ignore RF00005 hits below Min GA cutoff
AntonPetrov Aug 18, 2024
131c4db
Prevent crashes for python traveler utilities
AntonPetrov Aug 18, 2024
ab514b5
Change error color to red
AntonPetrov Aug 18, 2024
561db40
Merge pull request #142 from RNAcentral/r2dt-blast
AntonPetrov Aug 19, 2024
f4d3191
Scale template-free templates 3x, update tests
AntonPetrov Aug 19, 2024
e41ba16
Scale up GtRNAdb templates, update tests
AntonPetrov Aug 19, 2024
6b28c0e
Scale up Rfam R2R templates on generation
AntonPetrov Aug 19, 2024
8f03aba
Scale up precomputed Rfam R2R templates
AntonPetrov Aug 19, 2024
2db0f85
Update tests
AntonPetrov Aug 19, 2024
564530f
Delete leftover print statement
AntonPetrov Aug 22, 2024
501285d
Add a command to create new precomputed library
AntonPetrov Aug 23, 2024
68b401c
Update version number to 2.0
AntonPetrov Aug 23, 2024
f88632a
Do not require just for installation
AntonPetrov Aug 23, 2024
7e1320e
Update hit acceptance criteria
AntonPetrov Aug 23, 2024
d930be6
Update tests
AntonPetrov Aug 23, 2024
2db1f35
Scale up SRP RNArtist template
AntonPetrov Aug 23, 2024
e056271
Adjust font sizes
AntonPetrov Aug 23, 2024
77c9c3f
Merge pull request #144 from RNAcentral/scale-templates
AntonPetrov Aug 23, 2024
0ce7c24
Add draft 2.0 announcement
AntonPetrov Aug 23, 2024
538c8f5
Update Docker base image version
AntonPetrov Aug 23, 2024
2d35c53
Merge branch 'main' into develop
AntonPetrov Aug 23, 2024
494f2c4
Update GitHub urls after repo transfer
AntonPetrov Aug 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
10 changes: 10 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FROM mcr.microsoft.com/devcontainers/universal:2-linux

RUN wget -qO - 'https://proget.makedeb.org/debian-feeds/prebuilt-mpr.pub' | gpg --dearmor | sudo tee /usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg 1> /dev/null && \
echo "deb [arch=all,$(dpkg --print-architecture) signed-by=/usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg] https://proget.makedeb.org prebuilt-mpr $(lsb_release -cs)" | sudo tee /etc/apt/sources.list.d/prebuilt-mpr.list && \
sudo apt-get -qq update && \
sudo apt-get install --no-install-recommends -qq -y \
imagemagick \
libmagickwand-dev \
chafa \
just
16 changes: 16 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "R2DT",
"build": {
"dockerfile": "Dockerfile"
},
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"ms-vscode-remote.remote-containers",
"ms-azuretools.vscode-docker"
]
}
}
}
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ docs/_*
.vscode
.git
1.4/
.venv/
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Mark PostScript files as vendored
*.ps linguist-vendored
101 changes: 101 additions & 0 deletions .github/workflows/parallel-base-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Build and Push Base Docker image (parallel)

on:
pull_request:
paths:
- 'base_image/**'
- '.github/workflows/parallel-base-image.yml'

jobs:
build-stages:
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: true
matrix:
stage: [rscape, tRNAscan-SE, Bio-Easel, traveler, scripts, ribovore-infernal-easel]
platform: [linux/amd64, linux/arm64]
include:
- platform: 'linux/amd64'
runner: 'ubuntu-latest'
shorthand: 'amd64'
- platform: 'linux/arm64'
runner: 'buildjet-2vcpu-ubuntu-2204-arm'
shorthand: 'arm64'
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build ${{ matrix.stage }} stage
uses: docker/build-push-action@v5
with:
platforms: ${{ matrix.platform }}
target: ${{ matrix.stage }}
cache-from: type=registry,ref=rnacentral/r2dt-base:cache-${{ matrix.stage }}-${{ matrix.shorthand }}
cache-to: type=registry,ref=rnacentral/r2dt-base:cache-${{ matrix.stage }}-${{ matrix.shorthand }},mode=max
file: base_image/Dockerfile
context: base_image/

final-build:
needs: build-stages
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Docker Meta
id: docker_meta
uses: docker/metadata-action@v4
with:
images: rnacentral/r2dt-base
flavor: latest=false
tags: |
type=ref,event=pr

- name: Log in to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build and push final Docker image
uses: docker/build-push-action@v5
with:
platforms: linux/amd64,linux/arm64
push: true
labels: ${{ steps.docker_meta.outputs.labels }}
tags: ${{ steps.docker_meta.outputs.tags }}
cache-from: |
type=registry,ref=rnacentral/r2dt-base:cache-rscape-amd64
type=registry,ref=rnacentral/r2dt-base:cache-tRNAscan-SE-amd64
type=registry,ref=rnacentral/r2dt-base:cache-Bio-Easel-amd64
type=registry,ref=rnacentral/r2dt-base:cache-traveler-amd64
type=registry,ref=rnacentral/r2dt-base:cache-scripts-amd64
type=registry,ref=rnacentral/r2dt-base:cache-ribovore-infernal-easel-amd64

type=registry,ref=rnacentral/r2dt-base:cache-rscape-arm64
type=registry,ref=rnacentral/r2dt-base:cache-tRNAscan-SE-arm64
type=registry,ref=rnacentral/r2dt-base:cache-Bio-Easel-arm64
type=registry,ref=rnacentral/r2dt-base:cache-traveler-arm64
type=registry,ref=rnacentral/r2dt-base:cache-scripts-arm64
type=registry,ref=rnacentral/r2dt-base:cache-ribovore-infernal-easel-arm64

type=registry,ref=rnacentral/r2dt-base:cache-final
cache-to: type=registry,ref=rnacentral/r2dt-base:cache-final,mode=max
file: base_image/Dockerfile
context: base_image/
target: final-build
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ data/crw-bpseq/*.sto
data/crw-bpseq/*.fasta
data/cms/*
data/rfam/RF*/*.seed
data/local_data/*
RF00177.cm
temp.*
output/*
Expand All @@ -19,6 +20,8 @@ tests/**/*.png
docs/_build/*
results/**
1.4/**
2.0/**
.idea/**
.python-version
.venv
all.fa*
5 changes: 5 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,9 @@ repos:
rev: 5.12.0
hooks:
- id: isort
- repo: https://github.com/MarcoGorelli/auto-walrus
rev: 'v0.2.2'
hooks:
- id: auto-walrus
name: Auto-apply the walrus operator :=
exclude: .+?\.(cm|ps|bpseq|tr|fasta|xml|svg)$
13 changes: 0 additions & 13 deletions .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@
# only in one or another interpreter, leading to false positives when analysed.
analyse-fallback-blocks=no

# Clear in-memory caches upon conclusion of linting. Useful if running pylint
# in a server-like mode.
clear-cache-post-run=no

# Load and enable all available extensions. Use --list-extensions to see a list
# all available extensions.
#enable-all-extensions=
Expand Down Expand Up @@ -93,12 +89,6 @@ py-version=3.11
# Discover python modules and packages in the file system subtree.
recursive=yes

# Add paths to the list of the source roots. Supports globbing patterns. The
# source root is an absolute path or a path relative to the current working
# directory used to determine a package namespace for modules located under the
# source root.
source-roots=.

# When enabled, pylint would attempt to guess common misconfiguration and emit
# user-friendly hints instead of false-positive error messages.
suggestion-mode=yes
Expand Down Expand Up @@ -363,9 +353,6 @@ single-line-if-stmt=no
# one.
allow-any-import-level=

# Allow explicit reexports by alias from a package __init__.
allow-reexport-from-package=no

# Allow wildcard imports from modules that define __all__.
allow-wildcard-with-all=no

Expand Down
4 changes: 3 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
FROM rnacentral/r2dt-base:pr-123
ARG BASE_IMAGE_VERSION=v2.0

FROM rnacentral/r2dt-base:${BASE_IMAGE_VERSION}

# Create venv
ENV VENV=$RNA/venv
Expand Down
6 changes: 4 additions & 2 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# R2DT

**Version 1.4 (2023)**
**Version 2.0 (2024)**

**[See the R2DT documentation](https://r2dt.readthedocs.io/)**

The [R2DT software](https://github.com/RNAcentral/R2DT) automatically generates [RNA secondary structure](https://en.wikipedia.org/wiki/Nucleic_acid_secondary_structure) diagrams in consistent, reproducible and recongnisable layouts using a library of templates representing a wide range of RNAs.
The [R2DT software](https://github.com/r2dt-bio/R2DT) automatically generates [RNA secondary structure](https://en.wikipedia.org/wiki/Nucleic_acid_secondary_structure) diagrams in consistent, reproducible and recongnisable layouts using a library of templates representing a wide range of RNAs.

## Examples

Expand All @@ -20,6 +20,8 @@ R2DT can be used in a number of ways:
* [API](https://www.ebi.ac.uk/Tools/common/tools/help/index.html?tool=r2dt) powered by EMBL-EBI Web Services
* As a command line tool with [Docker](https://www.docker.com), [Singularity](https://sylabs.io/docs/#singularity), or in a bare metal installation

You can also [![open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/RNAcentral/R2DT)

## Citation

If you use R2DT in your work, please consider citing the following paper:
Expand Down
63 changes: 42 additions & 21 deletions base_image/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
FROM gcc:13 as build
FROM gcc:13 AS build

ENV tRNAscan_VER=2.0.11 \
BioEasel_COMMIT=e7fae0ab43fc47058183b71ff498ee0d0d2de6a7 \
BioEasel_COMMIT=a52f0f7f7cae879bb95489bb794c04c1a0110aa7 \
traveler_COMMIT=0ee67cbb9c5aaa2f98340065fd047c9a8feea53e \
jiffy_COMMIT=31d6c3b826d432a30620507830749cee58e15e68 \
Rscape_VER=v2.0.2.d \
Ribovore_VER=1.0.5 \
Rscape_VER=v2.0.4.c \
Ribovore_COMMIT=5df943c6f2866d7979bb13c948ca9d8531076898 \
BioEasel_VER=0.11 \
INFERNAL_VER=1.1.5
INFERNAL_VER=1.1.5 \
RNArtist_VER=0.4.6


FROM build AS rscape
Expand All @@ -20,7 +21,7 @@ RUN cp /usr/share/automake-1.16/config.guess /rscape/lib/R2R/R2R-current/config
mkdir -p /rna/rscape && cd rscape && ./configure --prefix=/rna/rscape -q && make -j 2 && make install


FROM build AS tRNAscan-SE
FROM build AS trnascan-se

# Install tRNAScan-SE
RUN \
Expand All @@ -29,7 +30,7 @@ RUN \
cd tRNAscan-SE-${tRNAscan_VER} && ./configure -q --prefix=/install/ && make && make install


FROM build AS Bio-Easel
FROM build AS bio-easel

# Install Bio-Easel
RUN \
Expand Down Expand Up @@ -68,16 +69,27 @@ RUN \
chmod +x *.pl && mkdir -p /install/ && cp *.pl /install/


FROM build as ribovore-infernal-easel
FROM build AS ribovore-infernal-easel

# Install Ribovore, Infernal, and easel
# Install Ribovore
RUN \
mkdir -p /install/ && \
cd /install/ && \
wget --no-verbose -O - "https://raw.githubusercontent.com/ncbi/ribovore/ribovore-${Ribovore_VER}/install.sh" | bash -s -- "rt-linux" && \
rm -Rf /install/ribovore/models /install/ribovore/testfiles
git clone https://github.com/ncbi/ribovore && \
cd ribovore && \
git checkout ${Ribovore_COMMIT} && \
rm -Rf .git models testfiles taxonomy

# Overwrite Infernal binaries installed by Ribovore by compiling Infernal from source
# Install Sequip (Ribovore dependency)
RUN \
cd /install/ && \
sequip_version=ribovore-1.0.5 && \
wget -O sequip-${sequip_version}.zip https://github.com/nawrockie/sequip/archive/${sequip_version}.zip && \
unzip sequip-${sequip_version}.zip && \
mv sequip-${sequip_version} sequip && \
rm sequip-${sequip_version}.zip

# Install Infernal
RUN \
wget -q "http://eddylab.org/infernal/infernal-${INFERNAL_VER}.tar.gz" && \
tar xzf "infernal-${INFERNAL_VER}.tar.gz" && \
Expand All @@ -88,20 +100,29 @@ RUN \
make install && \
cd easel && \
make install && \
mkdir -p /install/infernal/binaries && \
mv /infernal/bin/* /install/infernal/binaries/

FROM build AS rnartist

# Install RNArtist
RUN \
wget -q -O rnartist.jar https://github.com/fjossinet/RNArtistCore/releases/download/${RNArtist_VER}-SNAPSHOT/rnartistcore-${RNArtist_VER}-SNAPSHOT-jar-with-dependencies.jar

FROM debian:bookworm-slim as final-build
FROM debian:bookworm-slim AS final-build

ENV \
RNA=/rna

RUN \
apt-get -qq update && apt-get install -qq -y --no-install-recommends \
ncbi-blast+ \
openjdk-17-jre-headless \
python3 \
python3-pip \
python3-venv \
python3-cairo \
chafa \
procps \
perl && \
rm -rf /var/lib/{apt,lpkg,cache,log}
Expand Down Expand Up @@ -129,7 +150,7 @@ ENV \
RIBOSCRIPTSDIR="$RIBOINSTALLDIR/ribovore" \
RIBOINFERNALDIR="$RIBOINSTALLDIR/infernal/binaries" \
RIBOSEQUIPDIR="$RIBOINSTALLDIR/sequip" \
RIBOBLASTDIR="$RIBOINSTALLDIR/ncbi-blast/bin" \
RIBOBLASTDIR="/usr/bin" \
VECPLUSDIR="$RIBOINSTALLDIR/vecscreen_plus_taxonomy" \
RRNASENSORDIR="$RIBOINSTALLDIR/rRNA_sensor"

Expand All @@ -138,30 +159,30 @@ ENV \
RIBOINFERNALDIR="$RIBOINSTALLDIR/infernal/binaries" \
RIBOEASELDIR="$RIBOINSTALLDIR/infernal/binaries" \
RIBOSEQUIPDIR="$RIBOINSTALLDIR/sequip" \
RIBOBLASTDIR="$RIBOINSTALLDIR/ncbi-blast/bin" \
RIBOTIMEDIR=/usr/bin \
RRNASENSORDIR="$RIBOINSTALLDIR/rRNA_sensor" \
VECPLUSDIR="$RIBOINSTALLDIR/vecscreen_plus_taxonomy" \
PERL5LIB="$RIBOSCRIPTSDIR":"$RIBOSEQUIPDIR":"$VECPLUSDIR":"$PERL5LIB" \
PATH="$RIBOSCRIPTSDIR":"$RIBOBLASTDIR":"$RRNASENSORDIR":"$PATH"
PATH="$RIBOSCRIPTSDIR":"$RRNASENSORDIR":"$PATH"

ENV \
PATH="$RIBOSCRIPTSDIR":"$RIBOBLASTDIR":"$RRNASENSORDIR":"$PATH" \
PATH="$RIBOSCRIPTSDIR":"$RRNASENSORDIR":"$PATH" \
PATH="$RNA/traveler/bin:$RIBODIR:$RIBOEASELDIR:$RIBOINFERNALDIR:/rna/rscape/bin:/rna/jiffy-infernal-hmmer-scripts:/rna/r2dt:/rna/RNAstructure/exe:$PATH" \
PERL5LIB="$RIBOSCRIPTSDIR:$RIBOSEQUIPDIR:$VECPLUSDIR:$BIOEASELDIR:$RIBODIR:$EPNOPTDIR:$EPNOFILEDIR:$EPNTESTDIR:$PERL5LIB:/usr/lib/tRNAscan-SE"

COPY --from=rscape /rna/rscape/ ${RNA}/rscape

COPY --from=tRNAscan-SE /install/ /usr
COPY --from=trnascan-se /install/ /usr
RUN sed -i -e 's|/install/bin|/usr/bin|' -e 's|/install/lib|/usr/lib|' /usr/bin/tRNAscan-SE.conf

COPY --from=Bio-Easel /install/usr/* /usr
COPY --from=Bio-Easel /install/Bio-Easel $RNA/Bio-Easel
COPY --from=Bio-Easel /usr/local/share/perl/5.36.0/ /usr/share/perl/5.36/
COPY --from=bio-easel /install/usr/* /usr
COPY --from=bio-easel /install/Bio-Easel $RNA/Bio-Easel
COPY --from=bio-easel /usr/local/share/perl/5.36.0/ /usr/share/perl/5.36/

COPY --from=scripts /install/ ${RNA}/jiffy-infernal-hmmer-scripts/

COPY --from=ribovore-infernal-easel /install/ ${RNA}/ribovore
COPY --from=rnartist /rnartist.jar /usr/local/bin/

COPY --from=traveler /install/traveler /usr/local/bin/traveler
COPY --from=traveler /install/utils/* ${RNA}/traveler/utils/
Expand Down
2 changes: 0 additions & 2 deletions data/compress_cms.sh

This file was deleted.

Loading
Loading