Skip to main content

RNAdvisor is a wrapper tool to compute RNA 3D structure quality assessment.

Project description

img

RNAdvisor v2 🚀

Fast and easy way to compute RNA 3D structural quality

Ruff uv slim Python DOI

RNAdvisor is a wrapper tool for the computation of RNA 3D structural quality assessment. It uses docker compose to run the RNAdvisor tool in a containerized environment.

from rnadvisor.rnadvisor_cli import RNAdvisorCLI

rnadvisor_cli = RNAdvisorCLI(
    pred_dir="data/example/PREDS",
    native_path="data/example/NATIVE/R1107.pdb",
    out_path="out.csv",
    scores=["rmsd", "inf", "mcq", "lddt","tm-score", "gdt-ts", "ares", "pamnet"]
)
df_results, df_time = rnadvisor_cli.predict()

img

Installation

To install RNAdvisor v2 you need to have docker and docker-compose installed on your system. Then, you can install the package using pip:

pip install rnadvisor

Then you can compute the RNA 3D structural quality assessment using the command line interface (CLI) or the python API.

rnadvisor --pred_dir --scores [--native_path] [--out_path ]
          [--out_time_path] [--sort_by] [--params] [--tmp_dir] 
          [--verbose] [--z_score] [--normalise]

with:

  --pred_dir            Directory to .pdb files or path to a .pdb file of the predictions. 
  --native_path         Path to a .pdb file of the native structure.
  --scores              List of the scores to use, separated by a comma. 
                        If you want to use them all, use `all`. To use all the metrics, use `metrics`
                        To use all the scoring functions, use `sf`.
                        Choice between clash,pamnet,lociparse,3drnascore,tb-mcq,barnaba,cgrnasp,dfire,mcq,
                        lcs,cad-score,tm-score,lddt,rasp,rs-rnasp,rmsd,inf,p-value,di,gdt-ts,ares
  --out_path            Path to a .csv file where to save the predictions.
  --out_time_path       Path to a .csv file where to save the time of the predictions for each score.
  --sort_by             Metric to sort the results by.
  --verbose             Level of verbosity. 0 for no output, 1 for basic output, 2 for detailed output.
  --params              Hyperparameters of the different methods. It could be used to set the threshold for LCS-TA 
   or parameters of MCQ using `--params='{"mcq_threshold": 10, "mcq_mode": 2}'`. Values for `mcq_threshold` are 10, 15, 20 or 25 and values for 
    `mcq_mode` are 0 (relaxed), 1 (comparison without violations) or 2 (comparison of everything regardless violations).
  --z_score             Compute the Z-score for the computed scores. It reverses all the descreasing scores.
  --normalise           If the user doesn't want to normalise the .pdb files. It will run the --rna-puzzles-ready from RNA-tools.
  --sort-by             Metric to sort the results by. Choice between RMSD,P-VALUE,INF-ALL,INF-WC,INF-NWC,INF-STACK,DI,MCQ,TM-SCORE,GDT-TS,GDT-TS@1,GDT-TS@2,GDT-TS@4,GDT-TS@8,CAD,lDDT,RASP,BARNABA,DFIRE,rsRNASP.

Existing tools

This code implements 18 existing repositories and adds a python interface.

It takes as inputs a .pdb file of predicted 3D structures (or a folder of .pdb files) and a .pdb file of a native structure, and it returns a .csv file with the different metrics.

It uses the following repositories:

  • RNA_Assessment: a python repository that computes RMSD, P-VALUE, INF, and DI. I forked the project because I did some modifications, leading to use the following implementation of RNA_Assessment-forked
  • MCQ4Structures : a java code that computes the MCQ score.
  • Voronota: a C++ code that computes the CAD score.
  • Zhanglab: a complete website to compute multiple scores, such as the GDT-TS or TM-score scores.
  • BaRNAba: an implementation of the eRMSD and eSCORE. I created a fork version of BaRNAba-forked.
  • DFIRE: an implementation of the DFIRE energy function.
  • RASP: an implementation of the RASP energy function. I created a fork version of RASP-forked
  • rsRNASP: a Python implementation of the rsRNASP score. I created a fork version of rsRNASP-forked with only the needed files.
  • cgRNASP: a Python implementation of the cgRNASP score.
  • OpenStructure: a C++ and Python implementation for structure analysis. It is used to compute TM-score and lDDT metrics.
  • CGRNASP: a C implementation for the computation of CG-RNASP potentials. I created a fork version of CGRNASP-forked.
  • TB-MCQ: a python implementation of the TB-MCQ score. It uses predicted torsional angles from a language-based model to compute the MCQ score with the inferred angles from a given structure.
  • ARES: an implementation of ARES. I'm using a docker container derived from adamczykb/ares_qa that I have reduced. I also added inside the reduce repository to add hydrogens to make ARES works.
  • PAMNet: official implementation of PAMNet. I have reduced the docker image to only keep the necessary files to run the scoring function.
  • CLASH: RESTful web service client developed in Java that enables the computation of the CLASH score.
  • LociPARSE: official python implementation of LociPARSE.
  • RNA3DCNN: official python implementation of RNA3DCNN. I have reduced to a docker image that only works with GPU.
  • 3dRNAScore: C++ official implementation of the 3dRNAScore.

Note that all these repositories are implementing a lot of different functions. For the sake of this project, I just took what seemed to be the most relevant for the scoring of 3D structures.

Docker containers

Each of the scoring functions and metrics are isolated in individual docker containers. You can find each of them in dockerhub with: sayby/rnadvisor-<name>-slim or sayby/rnadvisor-<name>.

<name> can be one of the following:

Scoring Function Metric
3drnascore rmsd
lociparse inf
tb-mcq p-value
escore di
pamnet mcq
cgrnasp gdt-ts
dfire lddt
rasp tm-score
rsRNASP cad-score
ares clash

The slim version is a smaller version of the container that only contains the necessary codes to run the scoring function (e.g. no bash, no other commands, etc.). It corresponds to the original image reduced with docker-slim.

Docker build

If you want to build yourself the docker images, you can do so by running the following command in the root directory of the repository:

just build-<name>-full 

with <name> being the name of the scoring function/metric you want to build.

To get the slim version, you can run the following command:

just build-<name>-slim

Citation

Clement Bernard, Guillaume Postic, Sahar Ghannay, Fariza Tahi,
RNAdvisor: a comprehensive benchmarking tool for the measure and prediction of RNA structural model quality,
Briefings in Bioinformatics, Volume 25, Issue 2, March 2024, bbae064,
https://doi.org/10.1093/bib/bbae064

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rnadvisor-2.1.0.tar.gz (36.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rnadvisor-2.1.0-py3-none-any.whl (54.5 kB view details)

Uploaded Python 3

File details

Details for the file rnadvisor-2.1.0.tar.gz.

File metadata

  • Download URL: rnadvisor-2.1.0.tar.gz
  • Upload date:
  • Size: 36.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.6

File hashes

Hashes for rnadvisor-2.1.0.tar.gz
Algorithm Hash digest
SHA256 eb01148d4a03c44e8b834c2d0ed2667bedc0144dcc4f78a4b2f7551a99bf347c
MD5 7ad7e35ea0f46990d75b7a6c17efe590
BLAKE2b-256 18d60f98b35e49aec6d72805e92121a38b2f0709c1f9345868568519875f29d3

See more details on using hashes here.

File details

Details for the file rnadvisor-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: rnadvisor-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 54.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.6

File hashes

Hashes for rnadvisor-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0e11affca3b23a8836744a1cf8bfb72aed816af8a17d91cb4400378580d737ee
MD5 2cfbaec86c26454c5e0905f3b07d15df
BLAKE2b-256 de2bc5e70f6c8dbd21f428c313abe086ca58dbb4a6e07fa11a1ec46aef44b4cf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page