Skip to content
Development
Skill

/elife-figure-guide

eLife figure preparation: file formats (TIFF/EPS/PDF), striking image requirements (1800x900 px), figure supplement naming, and image screening policy treating selective enhancement as misconduct.

From plugin
sciagent-skills
364200 skills
Install
$ npx -y skills add jaechang-hits/SciAgent-Skills --skill elife-figure-guide --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/elife-figure-guide

Context preview

The summary Claude sees to decide when to auto-load this skill.

eLife figure preparation: file formats (TIFF/EPS/PDF), striking image requirements (1800x900 px), figure supplement naming, and image screening policy treating selective enhancement as misconduct.

SKILL.md

elife-figure-guide.SKILL.md
name: elife-figure-guide
description: "eLife figure preparation: file formats (TIFF/EPS/PDF), striking image requirements (1800x900 px), figure supplement naming, and image screening policy treating selective enhancement as misconduct."
license: CC-BY-4.0
compatibility: Python 3.10+, Pillow, Matplotlib
metadata:
  authors: HITS
  version: "1.0"

eLife Figure Preparation Guide

Overview

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

---

Resolution Requirements

| 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

---

File Format

Regular Figures

| Format | Accepted | |---|---| | **TIFF** | Yes | | **EPS** | Yes | | **PDF** | Yes | | **JPEG / JPG** | Yes | | **GIF** | Yes | | **PS** (PostScript) | Yes | | **RTF** | Yes | | **Microsoft Excel** | Yes (for data-based figures) | | **CorelDraw** | Yes |

Striking Images

| Format | Recommended | |---|---| | **PNG** | Yes (preferred) | | **TIFF** | Yes | | **JPEG** | Yes |

---

Figure Size and Dimensions

Striking Images (Graphical Abstract)

  • Minimum: **1800 x 900 pixels**
  • Format: **Landscape orientation**
  • Composed of **1-2 panels maximum**
  • **No labels or text** should be included

Regular Figures

  • Each figure uploaded as an **individual file**
  • No specific column width requirements published

---

Color Mode

  • No explicit RGB/CMYK mandate in published guidelines
  • Follow standard practice: RGB for digital submission

---

Font Requirements

Striking Images

  • **No labels or text** should be included in striking images

Regular Figures

  • No strict font specifications published
  • Follow standard scientific figure conventions (sans-serif, 6-8 pt)
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,
    })

---

Labeling Conventions

Figure Supplements (eLife-Specific System)

eLife uses a unique **figure supplement** system instead of traditional supplementary figures:

  • Format: `Figure 1--Figure Supplement 1`, `Figure 1--Figure Supplement 2`, etc.
  • Each supplement should have a **short title** and an optional legend
  • Supplements are linked to their parent figure in the publication

Striking Images

  • Must NOT contain any labels or text
  • Limited to 1-2 panels
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 4

---

Image Integrity and Manipulation Policy

CRITICAL: eLife Screens Images Routinely

eLife **routinely screens submitted images** for inappropriate digital processing. This is not a random check — it is a systematic process.

PROHIBITED

  • Enhancing, obscuring, moving, removing, or introducing any specific feature within an image
  • **Selective enhancement constitutes research misconduct**
  • Example: Adjusting the intensity of a single band in a blot = **misconduct**

PERMITTED

  • Brightness, contrast, and color balance adjustments applied **equally across the entire image**
  • Adjustments must NOT obscure or eliminate information present in the original

Consequences

  • Inappropriate image manipulation may result in:
  • Manuscript rejection
  • Investigation by the author's institution
  • Public correction or retraction of published articles

---

Python Quick Start: Full Validation

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")
Read more
Ships withsciagent-skills

Turn your AI coding agent into a life sciences expert — 199 bioinformatics skills for Claude Code covering RNA-seq, single-cell analysis, genomics, proteomics, drug discovery, and more. Boosted BixBench from 65% to 92%. Open source.

Get the whole plugin

Other skills on sciagent-skills.