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…
Cell (Cell Press) figure preparation: resolution (300-1000 DPI), formats (TIFF/PDF), RGB color, Avenir/Arial fonts, uppercase panel labels, strict image manipulation policies.
$ npx -y skills add jaechang-hits/SciAgent-Skills --skill cell-figure-guide --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/cell-figure-guideContext preview
The summary Claude sees to decide when to auto-load this skill.
Cell (Cell Press) figure preparation: resolution (300-1000 DPI), formats (TIFF/PDF), RGB color, Avenir/Arial fonts, uppercase panel labels, strict image manipulation policies.
name: cell-figure-guide description: "Cell (Cell Press) figure preparation: resolution (300-1000 DPI), formats (TIFF/PDF), RGB color, Avenir/Arial fonts, uppercase panel labels, strict image manipulation policies." 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 **Cell** and other Cell Press journals (e.g., Cell Stem Cell, Cell Reports, Molecular Cell). Cell Press has strict figure requirements and a rigorous image integrity policy.
**Official reference**: https://www.cell.com/information-for-authors/figure-guidelines
---
| Image Type | Minimum Resolution | Notes | |---|---|---| | Color / Grayscale photographs | **300 DPI** | At desired print size | | Black-and-white images | **500 DPI** | At desired print size | | Line art (graphs, diagrams) | **1,000 DPI** | At desired print size |
**IMPORTANT**: All resolution measurements are at the **desired print size**, not at full-page size.
from PIL import Image
def check_cell_resolution(image_path, image_type='color'):
"""Check if image meets Cell journal resolution requirements.
Args:
image_path: Path to the image file
image_type: 'color' (300 DPI), 'bw' (500 DPI), or 'lineart' (1000 DPI)
"""
min_dpi = {'color': 300, 'bw': 500, 'lineart': 1000}
required = min_dpi.get(image_type, 300)
img = Image.open(image_path)
dpi = img.info.get('dpi', (72, 72))
print(f"Image type: {image_type}")
print(f"Required DPI: {required}")
print(f"Actual DPI: {dpi[0]} x {dpi[1]}")
if dpi[0] >= required:
print("PASS: Resolution meets Cell requirements")
else:
print(f"FAIL: Need at least {required} DPI, got {dpi[0]}")
return dpi[0] >= required---
| Format | Best For | Notes | |---|---|---| | **TIFF** | Bitmap, grayscale, color images | Use LZW compression to reduce size | | **PDF** | Any figure type | Universally accepted | | **EPS** | Vector images (graphs, diagrams) | Preserves scalability |
---
| Layout | Width | |---|---| | 1 column | **85 mm** (3.35 in) | | 1.5 columns | **114 mm** (4.49 in) | | Full width | **174 mm** (6.85 in) |
| Layout | Width | |---|---| | 1 column | **55 mm** (2.17 in) | | 2 columns | **114 mm** (4.49 in) | | Full width | **174 mm** (6.85 in) |
| Layout | Width | |---|---| | 1 column | **112 mm** (4.41 in) | | Full width | **172 mm** (6.77 in) |
**All figures** must fit on a single 8.5" x 11" page.
import matplotlib.pyplot as plt
# Cell Press figure widths in inches
CELL_WIDTHS = {
'2col_single': 85 / 25.4, # 3.35 in
'2col_1.5': 114 / 25.4, # 4.49 in
'2col_full': 174 / 25.4, # 6.85 in
'3col_single': 55 / 25.4, # 2.17 in
'3col_double': 114 / 25.4, # 4.49 in
'3col_full': 174 / 25.4, # 6.85 in
}
def create_cell_figure(layout='2col_single', aspect_ratio=0.75):
"""Create a Matplotlib figure sized for Cell Press journals."""
width = CELL_WIDTHS[layout]
height = width * aspect_ratio
fig, ax = plt.subplots(figsize=(width, height))
fig.set_dpi(300)
return fig, ax---
from PIL import Image
def convert_to_rgb_for_cell(image_path, output_path):
"""Convert image to RGB for Cell Press submission."""
img = Image.open(image_path)
if img.mode == 'CMYK':
img = img.convert('RGB')
print("Converted from CMYK to RGB")
elif img.mode != 'RGB':
img = img.convert('RGB')
print(f"Converted from {img.mode} to RGB")
img.save(output_path)
return output_path---
| Element | Font | Size | |---|---|---| | Primary font | **Avenir** (preferred), Arial, Helvetica | — | | Figure text | — | ~**7 pt** at print size | | Panel labels | — | Bold, **capital letters** |
import matplotlib.pyplot as plt
def set_cell_fonts():
"""Configure Matplotlib for Cell Press figure fonts."""
plt.rcParams.update({
'font.family': 'sans-serif',
'font.sans-serif': ['Avenir', 'Arial', 'Helvetica'],
'font.size': 7,
'axes.labelsize': 7,
'axes.titlesize': 7,
'xtick.labelsize': 6,
'ytick.labelsize': 6,
'legend.fontsize': 6,
})---
import matplotlib.pyplot as plt
import string
def add_cell_panel_labels(fig, axes):
"""Add Cell-style uppercase bold panel labels."""
if not hasattr(axes, '__iter__'):
axes = [axes]
for i, ax in enumerate(axes):
label = string.ascii_uppercase[i]
ax.text(-0.1, 1.1, label,
transform=ax.transAxes,
fontsize=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.
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…