Install
openclaw skills install arrive-guideline-architect-2Generate ARRIVE 2.0 compliant animal research protocols with structured experimental design, sample size calculations, and reporting checklists. Ensures transparency, reproducibility, and ethical compliance in in vivo studies.
openclaw skills install arrive-guideline-architect-2AI-powered protocol design tool that creates publication-ready animal research protocols compliant with ARRIVE 2.0 guidelines (Animal Research: Reporting of In Vivo Experiments). Generates structured documentation for ethical review, transparent reporting, and reproducible science.
Key Capabilities:
✅ Use this skill when:
❌ Do NOT use when:
clinical-protocol-designerIntegration:
sample-size-power-calculator (statistical design)iacuc-protocol-drafter (ethics submission), manuscript-prep-assistant (publication)Generate complete protocols covering all Essential 10 items:
from scripts.arrive_builder import ARRIVEBuilder
builder = ARRIVEBuilder()
# Generate full protocol
protocol = builder.generate_protocol(
title="Efficacy of Compound X in Type 2 Diabetes Mouse Model",
species="Mus musculus",
strain="db/db",
groups=[
{"name": "Control", "n": 15, "treatment": "Vehicle"},
{"name": "Low Dose", "n": 15, "treatment": "10 mg/kg"},
{"name": "High Dose", "n": 15, "treatment": "50 mg/kg"}
],
primary_endpoint="Fasting blood glucose reduction",
duration_days=28
)
protocol.save("protocol.md")
Generates:
Statistical power analysis with ARRIVE-compliant justification:
from scripts.sample_size import SampleSizeCalculator
calc = SampleSizeCalculator()
# Calculate with effect size
result = calc.calculate(
test_type="two_sample_t_test",
effect_size=0.8, # Cohen's d
alpha=0.05,
power=0.80,
expected_dropout=0.10 # 10% attrition
)
# Output: n=26 per group (total 78, accounting for 10% dropout)
Features:
Check existing protocols against ARRIVE 2.0:
python scripts/validate.py --input my_protocol.md --format markdown
Output:
✅ Essential 10: 10/10 complete
⚠️ Recommended Set: 8/15 complete
Missing: Data sharing statement, Conflict of interest
Detailed Report:
- Item 1 (Study Design): Complete
- Item 2 (Sample Size): Complete
- Item 3 (Inclusion Criteria): Missing - add exclusion criteria
- ...
Validation Levels:
Create allocation schemes with documentation:
from scripts.randomization import RandomizationGenerator
gen = RandomizationGenerator()
# Generate allocation
allocation = gen.generate(
n_animals=45,
n_groups=3,
method="block_randomization", # or "simple", "stratified"
block_size=6,
seed=42 # For reproducibility
)
# Output allocation table
allocation.save("allocation_table.csv")
allocation.generate_blinding_key("blinding_key.xlsx")
Methods Supported:
Template for therapeutic intervention studies:
{
"study_type": "efficacy",
"species": "Mus musculus",
"model": "Disease model (e.g., db/db diabetic mice)",
"intervention": "Test compound",
"groups": [
"Sham control",
"Disease control (vehicle)",
"Positive control (reference drug)",
"Test compound (low dose)",
"Test compound (high dose)"
],
"primary_endpoint": "Disease biomarker",
"secondary_endpoints": ["Safety markers", "Histopathology"],
"sampling_timepoints": ["Baseline", "Week 2", "Week 4"]
}
Key Considerations:
Template for safety assessment:
{
"study_type": "toxicology",
"species": "Rat",
"duration": "28-day repeat dose",
"dose_levels": ["Vehicle", "Low", "Mid", "High", "Limit"],
"endpoints": [
"Clinical observations (daily)",
"Body weight (twice weekly)",
"Food consumption",
"Clinical pathology (hematology, chemistry)",
"Necropsy and organ weights",
"Histopathology"
],
"recovery_groups": true # 14-day recovery period
}
Key Considerations:
Template for neuroscience/behavioral research:
{
"study_type": "behavioral",
"species": "C57BL/6 mice",
"tests": [
"Open field (anxiety/locomotion)",
"Elevated plus maze (anxiety)",
"Novel object recognition (memory)",
"Fear conditioning (learning)"
],
"controls": [
"Positive pharmacological control",
"Negative control (vehicle)"
],
"blinding": "Video analysis performed blinded",
"randomization": "Latin square design for test order"
}
Key Considerations:
Template for procedure-based research:
{
"study_type": "surgical",
"procedure": "Myocardial infarction (LAD ligation)",
"species": "Sprague-Dawley rats",
"sham_control": true,
"perioperative_care": {
"analgesia": "Buprenorphine SR",
"antibiotics": "Enrofloxacin",
"monitoring": "Temperature, respiration, pain scoring"
},
"outcome_measures": [
"Survival rate",
"Echocardiography",
"Histological infarct size"
],
"humane_endpoints": ["Severe distress", "Inability to ambulate"]
}
Key Considerations:
From study concept to IACUC submission:
# Step 1: Create study brief
cat > study_brief.json << EOF
{
"title": "Novel Compound X in Diabetic Nephropathy",
"species": "Mouse",
"strain": "db/db",
"groups": 4,
"primary_endpoint": "Albuminuria reduction",
"duration_weeks": 12
}
EOF
# Step 2: Generate protocol
python scripts/main.py \
--input study_brief.json \
--output protocol.md \
--include-checklist
# Step 3: Calculate sample size
python scripts/sample_size.py \
--test t_test \
--effect-size 0.8 \
--alpha 0.05 \
--power 0.80 \
--dropout 0.10
# Step 4: Generate randomization
python scripts/randomize.py \
--n-total 64 \
--n-groups 4 \
--method block \
--output allocation.csv
# Step 5: Validate ARRIVE compliance
python scripts/validate.py \
--input protocol.md \
--format pdf \
--output compliance_report.pdf
Output Files:
output/
├── protocol.md # Complete ARRIVE protocol
├── sample_size_justification.txt # Statistical rationale
├── allocation.csv # Randomization table
├── blinding_key.xlsx # Blinding documentation
├── compliance_report.pdf # ARRIVE checklist
└├── iacuc_supplemental.pdf # Ethics committee materials
Pre-Study:
During Study:
Reporting:
Design Issues:
❌ Inadequate controls → Cannot distinguish treatment from confounding effects
❌ Convenience sampling → Selection bias
❌ Unblinded assessment → Observer bias
Sample Size Issues:
❌ No power calculation → Underpowered study, false negatives
❌ Ignoring dropout → Final sample too small
Reporting Issues:
❌ Selective outcome reporting → Publication bias
❌ Missing animal numbers → Transparency concerns
Available in references/ directory:
arrive_2.0_guidelines.md - Official ARRIVE 2.0 checklist and explanationssample_size_guidelines.md - Statistical methods for animal studiesspecies_specific_requirements.md - Mouse, rat, zebrafish considerationsjournal_compliance.md - Requirements by publisher (Nature, Science, Cell)statistical_methods.md - Analysis approaches for common designsiacuc_templates.md - Ethics committee application templatesexample_protocols.md - Published compliant protocols as examplesLocated in scripts/ directory:
main.py - Protocol generation CLIarrive_builder.py - Core protocol buildersample_size.py - Power analysis calculatorrandomization.py - Allocation scheme generatorvalidate.py - ARRIVE compliance checkerchecklist_generator.py - Interactive checklist toolexport.py - Multi-format output (PDF, Word, Markdown)🐾 Remember: The 3Rs (Replacement, Reduction, Refinement) are ethical imperatives. This tool supports Reduction (optimal sample sizes) and Refinement (better experimental design), but consider Replacement alternatives (in vitro, in silico) whenever possible.
| Parameter | Type | Default | Description |
|---|---|---|---|
--interactive | flag | - | Interactive mode: Run wizard with guided prompts (uses input() for user interaction). Recommended for first-time users or complex study designs. |
--input | str | Required | Input JSON file path (batch/automation mode) |
--output | str | "protocol.md" | Output file path |
--validate | str | Required | Validate existing protocol file |
--checklist | str | Required | Generate ARRIVE 2.0 checklist |
--format | str | "markdown" | Output format: markdown, pdf, or docx |
Usage Modes:
--input with JSON configuration file--interactive for guided setup via promptsExample - Automation Mode:
# Create JSON config
cat > study_config.json << 'EOF'
{
"title": "Diabetes Drug Study",
"species": "Mus musculus",
"strain": "db/db",
"groups": 4,
"animals_per_group": 15
}
EOF
# Generate protocol
python scripts/main.py --input study_config.json --output protocol.md
Example - Interactive Mode:
# Launch interactive wizard
python scripts/main.py --interactive