elife-figure-guide — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited elife-figure-guide (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This guide provides the complete specifications for preparing figures for submission to eLife. eLife is known for its open-access model, figure supplement system, striking image requirements, and a strict image screening policy where selective enhancement of scientific images is treated as research misconduct.
Official reference: https://elife-rp.msubmit.net/html/elife-rp_author_instructions.html
| Image Type | Minimum Resolution |
|---|---|
| Striking images | 1800 x 900 pixels minimum |
| Regular figures | No strict DPI mandate (standard 300 DPI recommended) |
from PIL import Image
def check_elife_resolution(image_path, is_striking=False):
"""Check if image meets eLife resolution requirements.
Args:
is_striking: True for striking/graphical abstract images
"""
img = Image.open(image_path)
w, h = img.size
dpi = img.info.get('dpi', (72, 72))
print(f"Dimensions: {w} x {h} px")
print(f"DPI: {dpi[0]} x {dpi[1]}")
if is_striking:
if w >= 1800 and h >= 900:
print("PASS: Meets striking image minimum (1800x900 px)")
return True
else:
print(f"FAIL: Striking image needs 1800x900 px, got {w}x{h}")
return False
else:
if dpi[0] >= 300:
print("PASS: Resolution meets standard (300+ DPI)")
else:
print(f"NOTE: DPI is {dpi[0]}; 300+ DPI recommended")
return True| Format | Accepted |
|---|---|
| TIFF | Yes |
| EPS | Yes |
| Yes | |
| JPEG / JPG | Yes |
| GIF | Yes |
| PS (PostScript) | Yes |
| RTF | Yes |
| Microsoft Excel | Yes (for data-based figures) |
| CorelDraw | Yes |
| Format | Recommended |
|---|---|
| PNG | Yes (preferred) |
| TIFF | Yes |
| JPEG | Yes |
import matplotlib.pyplot as plt
def set_elife_fonts():
"""Configure Matplotlib with standard settings for eLife."""
plt.rcParams.update({
'font.family': 'sans-serif',
'font.sans-serif': ['Helvetica', 'Arial'],
'font.size': 7,
'axes.labelsize': 7,
'axes.titlesize': 8,
'xtick.labelsize': 6,
'ytick.labelsize': 6,
'legend.fontsize': 6,
})eLife uses a unique figure supplement system instead of traditional supplementary figures:
Figure 1--Figure Supplement 1, Figure 1--Figure Supplement 2, etc.def generate_elife_supplement_names(main_figure_num, n_supplements):
"""Generate eLife figure supplement naming.
Args:
main_figure_num: The main figure number (1, 2, 3, ...)
n_supplements: Number of supplements for this figure
Returns:
List of supplement name strings
"""
names = []
for i in range(1, n_supplements + 1):
names.append(f"Figure {main_figure_num}--Figure Supplement {i}")
return names
# Example
supplements = generate_elife_supplement_names(3, 4)
for s in supplements:
print(s)
# Output:
# Figure 3--Figure Supplement 1
# Figure 3--Figure Supplement 2
# Figure 3--Figure Supplement 3
# Figure 3--Figure Supplement 4eLife routinely screens submitted images for inappropriate digital processing. This is not a random check — it is a systematic process.
from PIL import Image
import os
def validate_elife_figure(image_path, is_striking=False):
"""Full validation of a figure against eLife requirements."""
img = Image.open(image_path)
issues = []
w, h = img.size
# 1. Striking image checks
if is_striking:
if w < 1800 or h < 900:
issues.append(f"Striking image: {w}x{h} px below 1800x900 minimum")
if w < h:
issues.append("Striking image should be landscape orientation")
# 2. Resolution check (standard recommendation)
dpi = img.info.get('dpi', (72, 72))
if not is_striking and dpi[0] < 300:
issues.append(f"Resolution {dpi[0]} DPI; 300+ DPI recommended")
# 3. Format check
fmt = img.format
accepted = ['TIFF', 'JPEG', 'PNG', 'EPS', 'PDF', 'GIF']
if fmt and fmt.upper() not in accepted:
issues.append(f"Format '{fmt}' may not be standard")
if is_striking:
striking_formats = ['PNG', 'TIFF', 'JPEG']
if fmt and fmt.upper() not in striking_formats:
issues.append(f"Striking image: prefer PNG, TIFF, or JPEG (got {fmt})")
# Report
print(f"=== eLife Figure Validation {'(Striking)' if is_striking else ''} ===")
print(f"Dimensions: {w} x {h} px")
print(f"DPI: {dpi[0]} x {dpi[1]}")
print(f"Color mode: {img.mode}")
print(f"Format: {fmt}")
if issues:
print(f"\nISSUES FOUND ({len(issues)}):")
for issue in issues:
print(f" - {issue}")
else:
print("\nAll checks PASSED")
print("\nWARNING: eLife routinely screens images for manipulation")
print("Selective enhancement (e.g., single band intensity) = MISCONDUCT")
return len(issues) == 0eLife replaces traditional supplementary figures with a linked figure supplement system. Supplements are named "Figure X--Figure Supplement Y" and are directly associated with their parent figure in the publication. Each supplement requires a short title and optional legend. This system improves discoverability compared to buried supplementary files.
eLife requires a striking image (graphical abstract) with specific constraints: minimum 1800 x 900 pixels, landscape orientation, 1-2 panels maximum, and no labels or text. This image appears prominently in article listings and social media. It must be a standalone visual that conveys the paper's main finding.
eLife routinely screens all submitted images for inappropriate digital processing. This is systematic, not random. Selective enhancement of any part of a scientific image (e.g., adjusting intensity of a single band in a blot) is treated as research misconduct and may result in rejection, institutional investigation, or retraction.
What type of figure are you preparing?
├── Striking image (graphical abstract)
│ ├── Dimensions: 1800 x 900 px minimum, landscape
│ ├── Format: PNG (preferred), TIFF, or JPEG
│ └── Content: No text, no labels, 1-2 panels max
├── Main figure
│ ├── Standard format: TIFF, EPS, PDF, JPEG
│ └── Upload as individual file
└── Figure supplement
├── Naming: "Figure X--Figure Supplement Y"
├── Include short title
└── Same format requirements as main figures| Scenario | Format | Resolution | Notes |
|---|---|---|---|
| Striking image | PNG | 1800 x 900 px minimum | No text or labels |
| Western blot | TIFF | 300+ DPI | Will be screened for manipulation |
| Graph or chart | EPS or PDF | Vector | Individual file upload |
| Micrograph | TIFF | 300+ DPI | Uniform adjustments only |
| Supplementary panel | Same as main | Same as main | Name as "Figure X--Figure Supplement Y" |
| Data from Excel | Excel (.xlsx) | N/A | Accepted for data-based figures |
Before submitting figures to eLife, verify:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.