sciagent-skill-creator
Scaffold a new SciAgent-Skills entry. Picks pipeline/toolkit/database/guide template, creates skills/{category}/{name}/SKILL.md with valid frontmatter, appends…
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 -y skills add jaechang-hits/SciAgent-Skills --skill lancet-figure-guide --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/lancet-figure-guideContext preview
The summary Claude sees to decide when to auto-load this skill.
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.
name: lancet-figure-guide description: "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." license: CC-BY-4.0 compatibility: Python 3.10+, Pillow, Matplotlib metadata: authors: HITS version: "1.0"
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:
priTurn 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.
Scaffold a new SciAgent-Skills entry. Picks pipeline/toolkit/database/guide template, creates skills/{category}/{name}/SKILL.md with valid frontmatter, appends…
Bayesian modeling with PyMC 5: priors, likelihood, NUTS/ADVI sampling, diagnostics (R-hat, ESS), LOO/WAIC comparison, prediction. Hierarchical, logistic, GP…
Time-to-event modeling with scikit-survival: Cox PH (elastic net), Random Survival Forests, Boosting, SVMs for censored data. C-index, Brier, time-dependent…
Guided statistical analysis: test choice, assumption checks, effect sizes, power, APA reporting. Pick tests, verify assumptions, or format results for…
Python statistical modeling: regression (OLS, WLS, GLM), discrete (Logit, Poisson, NegBin), time series (ARIMA, SARIMAX, VAR), with rigorous inference,…
DL cell/nucleus segmentation for fluorescence and brightfield microscopy. Pre-trained models (cyto3, nuclei, tissuenet) and a generalist flow-based algorithm…