How to get publication-ready figures

When running analyses in immuneML, figures are automatically exported as interactive HTML files. For many use cases, this is sufficient, but for publications, a static format such as PDF might be needed. immuneML uses Plotly under the hood and each figure is also exported as a Plotly JSON file. This JSON file can be loaded and converted to high-quality publication-ready figures.

1. Locate the exported JSON file

Alognside the HTML figure, immuneML stores the corresponding .json file, for example:

results/
  my_instruction/
    reports/
      roc_curve_summary/
        ROC_curves_for_label_disease.html
        ROC_curves_for_label_disease.json <---

2. Install necessary packages

Make sure you are in the virtual environment where plotly and kaleido packages are installed. If not installed, install them using pip:

pip install plotly
pip install kaleido

3. Load the figure in Python and export in desired format

Load the figure in python:

import json
import plotly.io as pio

with open("ROC_curves_for_label_disease.json", 'r') as file:
  fig_dict = json.load(file)

fig = pio.from_json(json.dumps(fig_dict))
fig.show() # or do any modifications to the figure, eg change colors

# choose any one of these formats:
fig.write_image('roc_curves.pdf')
fig.write_image('roc_curves.svg')
fig.write_image('roc_curves.png')

# alternatively, adjust size and resolution
fig.write_image('roc_curves.pdf', width=800, height=600, scale=2)