skills/scientific-writing/lancet-figure-guide/SKILL.md
The Lancet figure preparation: resolution (300+ DPI at 120%), preferred editable formats (PowerPoint/Word/SVG), column widths (75/154 mm), Times New Roman, in-house redraw policy.
npx skillsauth add jaechang-hits/sciagent-skills lancet-figure-guideInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This guide provides the complete specifications for preparing figures for submission to The Lancet and Lancet family journals. A key distinguishing feature of The Lancet is that most figures are redrawn by in-house illustrators into Lancet house style. Therefore, editable source formats (PowerPoint, Word, SVG) are strongly preferred over rasterized images.
Official reference: https://www.thelancet.com/submission-guidelines
| Requirement | Specification | |---|---| | All photographic images | 300 DPI minimum | | Submission size | 120% of intended publication size |
TIP: Supply images 20% larger than publication size to ensure quality is maintained after any resizing by the production team.
from PIL import Image
def check_lancet_resolution(image_path):
"""Check if image meets Lancet resolution requirements."""
img = Image.open(image_path)
dpi = img.info.get('dpi', (72, 72))
print(f"DPI: {dpi[0]} x {dpi[1]}")
print(f"Minimum required: 300 DPI")
print(f"TIP: Submit at 120% of publication size")
if dpi[0] >= 300:
print("PASS: Resolution meets Lancet requirements")
else:
print("FAIL: Need at least 300 DPI")
return dpi[0] >= 300
| Format | Notes | |---|---| | PowerPoint (.pptx) | Most preferred — easy for in-house redraw | | Word (.docx) | Accepted for simple figures | | SVG | Scalable vector graphics |
| Format | Notes | |---|---| | TIFF | For photographic images | | JPEG | Acceptable quality | | EPS | Vector format | | PDF | General purpose |
The Lancet's in-house illustration team redraws most submitted figures into the Lancet house style. Providing editable source files (especially PowerPoint) makes this process smoother and more accurate.
| Layout | Width | |---|---| | 1 column | 75 mm (2.95 in) | | 2 columns | 154 mm (6.06 in) | | Minimum width | 107 mm (4.21 in) |
import matplotlib.pyplot as plt
LANCET_WIDTHS = {
'single': 75 / 25.4, # 2.95 inches
'minimum': 107 / 25.4, # 4.21 inches
'double': 154 / 25.4, # 6.06 inches
}
def create_lancet_figure(layout='single', aspect_ratio=0.75):
"""Create a Matplotlib figure sized for The Lancet."""
width = LANCET_WIDTHS[layout]
height = width * aspect_ratio
fig, ax = plt.subplots(figsize=(width, height))
fig.set_dpi(300)
return fig, ax
| Purpose | Color Mode | |---|---| | Online publication | RGB | | Print publication | CMYK |
| Element | Font | Size | Style | |---|---|---|---| | Main figure heading | Times New Roman | 10 pt | Bold | | Figure legend | Times New Roman | 10 pt | Regular, single-spaced |
import matplotlib.pyplot as plt
def set_lancet_fonts():
"""Configure Matplotlib for Lancet figure fonts."""
plt.rcParams.update({
'font.family': 'serif',
'font.serif': ['Times New Roman', 'Times'],
'font.size': 10,
'axes.labelsize': 10,
'axes.titlesize': 10,
'axes.titleweight': 'bold',
'xtick.labelsize': 8,
'ytick.labelsize': 8,
'legend.fontsize': 8,
})
from PIL import Image
import os
def validate_lancet_figure(image_path, layout='single'):
"""Full validation of a figure against Lancet requirements."""
img = Image.open(image_path)
issues = []
# 1. Resolution check (300 DPI at 120% size)
dpi = img.info.get('dpi', (72, 72))
if dpi[0] < 300:
issues.append(f"Resolution {dpi[0]} DPI below 300 DPI minimum")
# 2. Dimension check
widths_mm = {'single': 75, 'minimum': 107, 'double': 154}
if layout in widths_mm and dpi[0] > 0:
actual_w_mm = (img.size[0] / dpi[0]) * 25.4
target = widths_mm[layout]
# Should be 120% of publication size
target_120 = target * 1.2
print(f"Width: {actual_w_mm:.1f} mm (target at 120%: {target_120:.1f} mm)")
# 3. Format recommendation
fmt = img.format
if fmt and fmt.upper() in ('TIFF', 'JPEG', 'PNG'):
print(f"NOTE: Format is {fmt}. Lancet prefers PowerPoint/Word/SVG for redrawing")
# Report
print(f"=== Lancet 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}")
if issues:
print(f"\nISSUES FOUND ({len(issues)}):")
for issue in issues:
print(f" - {issue}")
else:
print("\nAll checks PASSED")
return len(issues) == 0
The Lancet's most distinctive feature is that most submitted figures are redrawn by in-house illustrators into Lancet house style. This means editable source formats (PowerPoint, Word, SVG) are strongly preferred over polished raster images. Authors should focus on data accuracy rather than visual refinement.
The Lancet requires photographic images to be submitted at 120% of intended publication size at 300+ DPI. This buffer ensures quality is maintained after any resizing during production. A figure intended for single-column (75 mm) should be supplied at 90 mm width.
Unlike most biomedical journals that use sans-serif fonts, The Lancet uses Times New Roman as its standard figure font. Headings are 10 pt bold; legend text is 10 pt regular single-spaced. This aligns with Lancet's traditional typographic style.
What type of figure are you preparing?
├── Data visualization (graph, chart)
│ ├── PowerPoint available → Submit .pptx (preferred for redraw)
│ └── Only image available → SVG or EPS (vector, editable)
├── Photograph or clinical image
│ ├── High quality needed → TIFF at 300+ DPI, 120% size
│ └── Standard quality → JPEG at 300+ DPI, 120% size
└── Schematic or diagram
├── Editable source → PowerPoint or Word
└── Vector only → SVG or EPS
| Scenario | Format | Resolution | Notes | |---|---|---|---| | Bar chart from clinical trial | PowerPoint (.pptx) | N/A (vector) | Lancet redraws in house style | | Kaplan-Meier curve | PowerPoint or SVG | N/A (vector) | Provide raw data if possible | | Histology micrograph | TIFF | 300+ DPI at 120% size | Cannot be redrawn | | Flowchart (CONSORT) | PowerPoint or Word | N/A (editable) | Lancet will redraw | | Forest plot (meta-analysis) | PowerPoint or SVG | N/A (vector) | Data accuracy is priority |
ax.spines in matplotlib)Before submitting figures to The Lancet, verify:
development
Bulk RNA-seq DE with R/Bioconductor DESeq2. Negative binomial GLM, empirical Bayes shrinkage, Wald/LRT tests, multi-factor designs, Salmon tximeta import, apeglm LFC shrinkage, MA/volcano/heatmap viz. R gold standard. Use pydeseq2-differential-expression for Python; use edgeR for TMM normalization.
tools
Guide to quality filtering raw VCF files before computing summary stats (Ts/Tv ratio, variant counts, AF distributions). Covers detecting raw VCFs via FILTER column and QUAL inspection, QUAL-based filtering with bcftools, Ts/Tv interpretation, and when NOT to filter. Read before any variant-level QC task. See bcftools-variant-manipulation for advanced filters, gatk-variant-calling for caller config, samtools-bam-processing for upstream alignment QC.
tools
Annotate and filter VCF variants with SnpEff and SnpSift. SnpEff predicts functional effects (HIGH/MODERATE/LOW/MODIFIER), genes, transcripts, AA changes, HGVS; SnpSift filters and adds ClinVar/dbSNP. Java CLI with Python subprocess integration. Use ANNOVAR for multi-database annotation; Ensembl VEP for REST API; SnpEff for fast CLI with pre-built genomes.
tools
GWAS and population genetics tool. Processes PLINK (.bed/.bim/.fam), VCF, and BGEN; runs QC (MAF, HWE, missingness), IBD estimation, PCA, and linear/logistic regression GWAS. Outputs Manhattan-ready summary stats. Use regenie or SAIGE for biobanks (>100k samples) needing mixed models.