This repository is the source code for the visualisations of AlphaFold 3 benchmark for RNA
It also contains the structures for each prediction for the
five test sets: RNA_PUZZLES, CASP_RNA, RNASOLO, RNA3DB_0 and RNA3DB_LONG.
You will find the following folders:
data: contains the data used for the visualisationinfo: contains metadata computed for the predictions or datasets. We advise not to compute it again (the command to run code to compute it is available in theMakefile)orphans: contains original structures with or without context for theRNA3DB_0dataset. It can be downloaded at this linkoutput: contains the metrics computed for each predictionpaper: contains the figures used in the paper (main and supplementary)plots: contains the plots generated for the visualisation. This is where are saved the outputs of the visualisation code available in this repository.pdb: contains the structures predicted by AlphaFold 3 and the benchmarked models. Should be downloaded at this link.
src: contains the source code for the visualisationsMakefile: file with the main commands summarizedenvironment.yml: file with the different python requirements to run the code
To install the required libraries, you can use the following command:
conda env create -f environment.yml
conda activate af3To get all the .pdb files, you have to unzip the pdb folder.
If you need the original structures for the RNA3DB_0 dataset (with the context), you can download them here.
Note that to run the visualisations, you do not need to have the original .pdb files.
Visualisations are made from either metadata or directly computed scores (available in the data/output folder).
To reproduce the visualisation available in data/plots, you just need to use:
make viz_alphafoldor its python equivalent:
python -m src.viz_alphafoldIt will save the plots in the data/plots folder.
You will find some of the following plots:
| Bar chart | nWC plot | Scatter plot | Scatter mean |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
To further see which code is used to generate the visualisations, you can check the src/viz_alphafold.py file.
Particularly, you can have a look at the run method:
def run(self):
df = self.get_merged_model_df()
table_helper = TableHelper(df, self.save_dir)
table_helper.run()
table_helper.show_context_vs_no_context()
ComputePValue(df).run()
nwc_helper = NWCHelper(df, self.save_dir)
nwc_helper.get_viz()
scatter_helper = ScatterHelper(df, self.save_dir)
scatter_helper.get_viz()
scatter_helper.get_viz_mean()
scatter_helper.get_viz_diff()
BarHelper.get_viz()Each class corresponds to a different type of plot, which are available in the src/viz folder.
The clean visualisations of the paper are available in the data/paper folder.
If you want to reproduce the metrics computation, we used the RNAdvisor tool, using:
make compute_metricsOtherwise, the scores are already computed and available in the data/output folder.
To get the statistics of the datasets, you can use the following command:
make statsFirst, you would need to install the RNA_Assessment library.
To install it, I have made a fork of the original repository with the necessary changes:
make install_rna_assessmentThen, you can compute the interactions for each prediction, using:
make count_interactionsNote that you will need to have a linux system to run the code (because of the MC-Annotate tool).
This project is licensed under the Apache 2.0 License.
If you use this code, please cite the following paper:
Clément Bernard, Guillaume Postic, Sahar Ghannay, Fariza Tahi.
"Has AlphaFold3 achieved success for RNA?"
Acta Crystallographica Section D. 2025. Vol. 81, No. 2.
https://doi.org/10.1107/S2059798325000592
Or using the bibtex format:
@article{af3_for_rnas,
author = "Bernard, Cl{\'{e}}ment and Postic, Guillaume and Ghannay, Sahar and Tahi, Fariza",
title = "{Has {\it AlphaFold}3 achieved success for RNA?}",
journal = "Acta Crystallographica Section D",
year = "2025",
volume = "81",
number = "2",
pages = "",
month = "Feb",
doi = {10.1107/S2059798325000592},
url = {https://doi.org/10.1107/S2059798325000592},
}- Clément Bernard
- Guillaume Postic
- Sahar Ghannay
- Fariza Tahi





