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…
Cancer Research (AACR) figures: resolution (300-1200 DPI), formats (EPS/TIFF/AI), hierarchical panel labels (Ai, Aii, Bi), figure/table limits, legend requirements with replicate counts.
$ npx -y skills add jaechang-hits/SciAgent-Skills --skill cancer-research-figure-guide --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/cancer-research-figure-guideContext preview
The summary Claude sees to decide when to auto-load this skill.
Cancer Research (AACR) figures: resolution (300-1200 DPI), formats (EPS/TIFF/AI), hierarchical panel labels (Ai, Aii, Bi), figure/table limits, legend requirements with replicate counts.
name: cancer-research-figure-guide description: "Cancer Research (AACR) figures: resolution (300-1200 DPI), formats (EPS/TIFF/AI), hierarchical panel labels (Ai, Aii, Bi), figure/table limits, legend requirements with replicate counts." 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 **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
---
| Image Type | Minimum Resolution | |---|---| | Line art | **1,200 DPI** | | Halftone / color images | **300 DPI** | | Combination artwork | **600-900 DPI** |
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---
| Format | Accepted | |---|---| | **EPS** | Yes | | **TIFF** | Yes | | **AI** (Adobe Illustrator) | Yes | | **PSD** (Photoshop) | Yes | | **PNG** | Yes | | **PS** (PostScript) | Yes |
---
| Article Type | Maximum Display Items | |---|---| | Research Articles | **7** figures + tables combined | | Letters | **2** display items total |
---
---
| Element | Font | Size | |---|---|---| | Manuscript body text | Arial, Helvetica, or Times New Roman | 12 pt | | Figure text | Same fonts | 8-12 pt range |
---
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`)
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# 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']
---
Cancer Research follows general **AACR editorial policies** for image integrity:
---
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)}):")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…