cancer-research-figure-guide · v1.0 · 2026-04-01 · sha256 f82a204c193cf522
cancer-research-figure-guide v1.0A
Immutable. This exact content never changes and is served at /api/v1/blob/f82a204c193cf522.
---
name: cancer-research-figure-guide
description: "Figure and image preparation guide for Cancer Research (AACR). Covers resolution (300-1200 DPI), file formats (EPS, TIFF, AI), hierarchical panel labeling (Ai, Aii, Bi), figure/table limits, and legend requirements including replicate counts."
license: CC-BY-4.0
compatibility: Python 3.10+, Pillow, Matplotlib
metadata:
authors: HITS
version: "1.0"
---
# Cancer Research (AACR) Figure Preparation Guide
## Overview
This guide provides the complete specifications for preparing figures for submission to **Cancer Research** and other AACR (American Association for Cancer Research) journals. Cancer Research has a distinctive **hierarchical panel labeling system** (Ai, Aii, Bi, Bii) and strict limits on the total number of display items.
**Official reference**: https://aacrjournals.org/pages/article-style-and-format
---
## Resolution Requirements
| Image Type | Minimum Resolution |
|---|---|
| Line art | **1,200 DPI** |
| Halftone / color images | **300 DPI** |
| Combination artwork | **600-900 DPI** |
```python
from PIL import Image
def check_cancer_res_resolution(image_path, image_type='halftone'):
"""Check if image meets Cancer Research resolution requirements.
Args:
image_type: 'lineart' (1200), 'halftone' (300), or 'combination' (600)
"""
min_dpi = {'lineart': 1200, 'halftone': 300, 'combination': 600}
required = min_dpi.get(image_type, 300)
img = Image.open(image_path)
dpi = img.info.get('dpi', (72, 72))
print(f"Type: {image_type} | Required: {required} DPI | Actual: {dpi[0]} DPI")
passed = dpi[0] >= required
print("PASS" if passed else f"FAIL: Need {required} DPI minimum")
return passed
```
---
## File Format
| Format | Accepted |
|---|---|
| **EPS** | Yes |
| **TIFF** | Yes |
| **AI** (Adobe Illustrator) | Yes |
| **PSD** (Photoshop) | Yes |
| **PNG** | Yes |
| **PS** (PostScript) | Yes |
---
## Figure Size and Dimensions
### Display Item Limits
| Article Type | Maximum Display Items |
|---|---|
| Research Articles | **7** figures + tables combined |
| Letters | **2** display items total |
- Each figure must fit on a **single printed page**
- Figures should be presented in sequential order adjacent to legends
---
## Color Mode
- No strict CMYK/RGB mandate in published guidelines
- **RGB recommended** for online display
- Follow general best practices for color accessibility
---
## Font Requirements
| Element | Font | Size |
|---|---|---|
| Manuscript body text | Arial, Helvetica, or Times New Roman | 12 pt |
| Figure text | Same fonts | 8-12 pt range |
---
## Labeling Conventions
### Hierarchical Panel Label System (AACR-Specific)
Cancer Research uses a unique **three-level hierarchical labeling** system:
1. **Level 1**: Capital letters — **A, B, C, D**
2. **Level 2**: Roman numerals — **i, ii, iii, iv**
3. **Level 3**: Lowercase letters — **a, b, c, d**
**Preferred format**: `Ai, Aii, Bi, Bii` (NOT `Aa, Ab, Ba, Bb`)
### Labeling Rules
- **No boxes** around panel labels
- **No periods** after panel labels
- Multiple panels should each be labeled and described in the legend
### Legend Requirements
- Figure legends must include the **number of technical AND biological replicates**
- This is a mandatory requirement for Cancer Research
```python
def generate_cancer_res_labels(n_main_panels, sub_panels_per_main=None):
"""Generate Cancer Research hierarchical panel labels.
Args:
n_main_panels: Number of main panels (A, B, C, ...)
sub_panels_per_main: List of sub-panel counts per main panel,
or None for no sub-panels
Returns:
List of label strings
Example:
generate_cancer_res_labels(3, [2, 3, 1])
# Returns: ['Ai', 'Aii', 'Bi', 'Bii', 'Biii', 'C']
"""
import string
labels = []
roman = ['i', 'ii', 'iii', 'iv', 'v', 'vi', 'vii', 'viii']
for i in range(n_main_panels):
main_label = string.ascii_uppercase[i]
if sub_panels_per_main and sub_panels_per_main[i] > 1:
for j in range(sub_panels_per_main[i]):
labels.append(f"{main_label}{roman[j]}")
else:
labels.append(main_label)
return labels
```
### Example Usage
```python
# 3 main panels: A has 2 sub-panels, B has 3, C has 1
labels = generate_cancer_res_labels(3, [2, 3, 1])
print(labels)
# Output: ['Ai', 'Aii', 'Bi', 'Bii', 'Biii', 'C']
```
---
## Image Integrity and Manipulation Policy
Cancer Research follows general **AACR editorial policies** for image integrity:
- All image adjustments should be applied uniformly to the entire image
- No selective enhancement of specific features
- Original unprocessed data should be available upon request
- Processing details should be described in Methods
---
## Python Quick Start: Full Validation
```python
from PIL import Image
import os
def validate_cancer_res_figure(image_path, image_type='halftone'):
"""Full validation of a figure against Cancer Research requirements."""
img = Image.open(image_path)
issues = []
# 1. Resolution check
min_dpi = {'lineart': 1200, 'halftone': 300, 'combination': 600}
required = min_dpi.get(image_type, 300)
dpi = img.info.get('dpi', (72, 72))
if dpi[0] < required:
issues.append(f"Resolution {dpi[0]} DPI below {required} DPI for {image_type}")
# 2. Color mode check
if img.mode not in ('RGB', 'RGBA'):
issues.append(f"Color mode is {img.mode}; RGB recommended")
# 3. Format check
fmt = img.format
accepted = ['TIFF', 'EPS', 'PNG', 'JPEG', 'PDF']
if fmt and fmt.upper() not in accepted:
issues.append(f"Format '{fmt}' not in standard list")
# Report
print(f"=== Cancer Research Figure Validation ===")
print(f"Dimensions: {img.size[0]} x {img.size[1]} 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("\nREMINDER: Cancer Research limits Research Articles to 7 figures+tables total")
print("REMINDER: Legends must include number of technical AND biological replicates")
return len(issues) == 0
```
---
## Pre-Submission Checklist
Before submitting figures to Cancer Research, verify:
- [ ] Line art at 1,200+ DPI
- [ ] Halftone/color images at 300+ DPI
- [ ] Combination images at 600-900 DPI
- [ ] File format is EPS, TIFF, AI, PSD, or PNG
- [ ] Research Article: maximum 7 figures + tables combined
- [ ] Letters: maximum 2 display items
- [ ] Each figure fits on a single printed page
- [ ] Panel labels use hierarchical format (Ai, Aii, Bi, Bii)
- [ ] No boxes around panel labels
- [ ] No periods after panel labels
- [ ] Font is Arial, Helvetica, or Times New Roman
- [ ] Legend includes number of **technical and biological replicates**
- [ ] Image adjustments applied uniformly
- [ ] Original data available upon request
---
## References
- AACR Article Style and Format: https://aacrjournals.org/pages/article-style-and-format
- AACR Editorial Policies: https://aacrjournals.org/pages/editorial-policies