Agent skill

Crispr Screen Analyzer

by aipoch in aipoch/medical-research-skills

Process CRISPR screening data to identify essential genes and hit candidates.

MITAuto-check passedResearch & Science

Install Crispr Screen Analyzer

skills CLI
$ npx skills add aipoch/medical-research-skills --skill crispr-screen-analyzer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install aipoch/medical-research-skills crispr-screen-analyzer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/aipoch/medical-research-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/'scientific-skills/Data Analysis/crispr-screen-analyzer' .claude/skills/crispr-screen-analyzer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
crispr-screen-analyzer
GitHub stars
2k
Token cost
~11k tokens
SKILL.md length
3,314 words
Files
5 (incl. scripts, references)
Skills in repo
567
Repo updated
First seen
Licence
MIT

At a glance

Process CRISPR screening data to identify essential genes and hit candidates.

  • Works in 6 steps: Quality Control Metrics Calculation → Log Fold Change Calculation → Robust Rank Aggregation (RRA)… → …
  • Tasks that involve Bioinformatics
  • SKILL.md covers When to Use, Key Features, Dependencies and Example Usage, plus 15 more sections
  • Runs Python scripts from its folder; calls python

What it does

Crispr Screen Analyzer is an agent skill from aipoch/medical-research-skills. Process CRISPR screening data to identify essential genes and hit candidates. Performs quality control, statistical analysis (RRA), and hit calling for pooled CRISPR screens including viability screens and drug resistance/sensitivity studies.

Its SKILL.md is about 11k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `crispr-screen-analyzer_audit_result_v2.json`, `references/runtime_checklist.md` and `scripts/main.py`).

It sits in Research & Science, covering Bioinformatics and Statistics. The repository describes itself as: Hundreds of agent skills for medical research, including protocol design, data analysis, evidence insights, and academic writing. The licence is MIT.

When your agent uses it

  • Tasks that involve Bioinformatics
  • Tasks that involve Statistics

Example prompts

  • “/crispr-screen-analyzer”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Quality Control Metrics Calculation
  2. Log Fold Change Calculation
  3. Robust Rank Aggregation (RRA) Statistical Analysis
  4. Hit Identification with Thresholds
  5. Gene-Level Aggregation
  6. Multi-Condition Comparison

What it can do on your machine

Read from SKILL.md and the folder at commit 686e09d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • addgene.org
    • depmap.org
    • sourceforge.net
    • github.com
    • pubmed.ncbi.nlm.nih.gov

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Crispr Screen Analyzer loads about 11k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 66 tokens; SKILL.md has 3,314 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~66
When it runs · the whole SKILL.md, loaded when a task matches
~11k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from aipoch/medical-research-skills at commit 686e09d, republished under its MIT licence (© aipoch). 3,314 words, ~10,689 tokens.

Download SKILL.mdSave it as .claude/skills/crispr-screen-analyzer/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
crispr-screen-analyzer
description
Process CRISPR screening data to identify essential genes and hit candidates. Performs quality control, statistical analysis (RRA), and hit calling for pooled CRISPR screens including viability screens and drug resistance/sensitivity studies.
license
MIT
author
AIPOCH

Source: https://github.com/aipoch/medical-research-skills

CRISPR Screen Analyzer

Analyze pooled CRISPR screening data to identify essential genes, drug resistance/sensitivity candidates, and screen quality metrics. Supports Robust Rank Aggregation (RRA) analysis, quality control assessment, and hit identification for functional genomics studies.

Key Capabilities:

  • Quality Control Assessment: Calculate Gini index, read depth, and dropout metrics to evaluate screen quality
  • Log Fold Change Calculation: Compute sgRNA-level fold changes between treatment and control conditions
  • Statistical Analysis: Perform Robust Rank Aggregation (RRA) to identify significantly enriched or depleted sgRNAs
  • Hit Identification: Apply FDR and fold change thresholds to identify candidate genes
  • Multi-Sample Support: Process multiple replicates and treatment conditions simultaneously

When to Use

  • Use this skill when the task needs Process CRISPR screening data to identify essential genes and hit candidates. Performs quality control, statistical analysis (RRA), and hit calling for pooled CRISPR screens including viability screens and drug resistance/sensitivity studies.
  • Use this skill for data analysis tasks that require explicit assumptions, bounded scope, and a reproducible output format.
  • Use this skill when you need a documented fallback path for missing inputs, execution errors, or partial evidence.

Key Features

  • Scope-focused workflow aligned to: Process CRISPR screening data to identify essential genes and hit candidates. Performs quality control, statistical analysis (RRA), and hit calling for pooled CRISPR screens including viability screens and drug resistance/sensitivity studies.
  • Packaged executable path(s): scripts/main.py.
  • Reference material available in references/ for task-specific guidance.
  • Structured execution path designed to keep outputs consistent and reviewable.

Dependencies

See ## Prerequisites above for related details.

  • Python: 3.10+. Repository baseline for current packaged skills.
  • numpy: unspecified. Declared in requirements.txt.
  • pandas: unspecified. Declared in requirements.txt.
  • scipy: unspecified. Declared in requirements.txt.

Example Usage

See ## Usage above for related details.

bash
cd "20260318/scientific-skills/Data Analytics/crispr-screen-analyzer"
python -m py_compile scripts/main.py
python scripts/main.py --help

Example run plan:

  1. Confirm the user input, output path, and any required config values.
  2. Edit the in-file CONFIG block or documented parameters if the script uses fixed settings.
  3. Run python scripts/main.py with the validated inputs.
  4. Review the generated output and return the final artifact with any assumptions called out.

Implementation Details

See ## Workflow above for related details.

  • Execution model: validate the request, choose the packaged workflow, and produce a bounded deliverable.
  • Input controls: confirm the source files, scope limits, output format, and acceptance criteria before running any script.
  • Primary implementation surface: scripts/main.py.
  • Reference guidance: references/ contains supporting rules, prompts, or checklists.
  • Parameters to clarify first: input path, output path, scope filters, thresholds, and any domain-specific constraints.
  • Output discipline: keep results reproducible, identify assumptions explicitly, and avoid undocumented side effects.

Quick Check

Use this command to verify that the packaged script entry point can be parsed before deeper execution.

bash
python -m py_compile scripts/main.py

Audit-Ready Commands

Use these concrete commands for validation. They are intentionally self-contained and avoid placeholder paths.

bash
python -m py_compile scripts/main.py
python scripts/main.py --help

Workflow

  1. Confirm the user objective, required inputs, and non-negotiable constraints before doing detailed work.
  2. Validate that the request matches the documented scope and stop early if the task would require unsupported assumptions.
  3. Use the packaged script path or the documented reasoning path with only the inputs that are actually available.
  4. Return a structured result that separates assumptions, deliverables, risks, and unresolved items.
  5. If execution fails or inputs are incomplete, switch to the fallback path and state exactly what blocked full completion.

Integration with Other Skills

Upstream Skills:

  • crispr-grna-designer: Design sgRNA libraries before screening; validate library composition
  • fastqc-report-interpreter: Assess sequencing quality before CRISPR screen analysis
  • alignment-quality-checker: Verify sgRNA alignment rates and mapping quality

Downstream Skills:

  • go-kegg-enrichment: Perform pathway enrichment on identified hit genes
  • pathway-visualization: Visualize hits in pathway contexts
  • hit-validation-planner: Design follow-up experiments for candidate genes
  • gene-essentiality-predictor: Compare screen results with known essential gene databases

Complete Workflow:

Library Design (crispr-grna-designer) → Transduction → Sequencing → fastqc-report-interpreter → crispr-screen-analyzer → go-kegg-enrichment → Hit Validation

Core Capabilities

1. Quality Control Metrics Calculation

Assess CRISPR screen quality using established metrics including Gini index, read depth, and sgRNA dropout rates.

python
from scripts.main import CRISPRScreenAnalyzer

# Initialize analyzer with count matrix and sample annotations
analyzer = CRISPRScreenAnalyzer(
    counts_file="sgrna_counts.txt",
    samplesheet="samples.csv"
)

# Calculate QC metrics
qc_results = analyzer.qc_metrics()

# Review key metrics
print("Quality Control Metrics:")
print(f"Total reads per sample:")
for sample, reads in qc_results['total_reads'].items():
    print(f"  {sample}: {reads:,} reads")

print(f"\nGini index (library representation):")
for sample, gini in qc_results['gini_index'].items():
    status = "✅ Good" if gini < 0.3 else "⚠️  Check" if gini < 0.4 else "❌ Poor"
    print(f"  {sample}: {gini:.3f} {status}")

print(f"\nZero-count sgRNAs (potential dropout):")
for sample, zeros in qc_results['zero_count_sgrnas'].items():
    pct = (zeros / len(analyzer.counts)) * 100
    print(f"  {sample}: {zeros} ({pct:.1f}%)")

QC Metrics Explained:

MetricTarget RangeInterpretation
Gini Index<0.3Measures library evenness; lower = more uniform
Total Reads>10M per sampleSufficient depth for statistical power
Zero-count sgRNAs<5%Acceptable dropout; higher indicates library loss
Read DistributionLog-normalShould follow expected distribution

Best Practices:

  • ✅ Check Gini index first: Values >0.4 indicate potential library bias or bottleneck
  • ✅ Compare replicates: QC metrics should be consistent across replicates
  • ✅ Assess time points: Later time points typically show higher dropout
  • ✅ Validate early: Poor QC may require screen repetition

Common Issues and Solutions:

Issue: High Gini index (>0.4)

  • Symptom: Uneven sgRNA representation suggesting library bottleneck
  • Solution: Check MOI (multiplicity of infection); verify puromycin selection; consider repeating screen

Issue: Excessive zero-count sgRNAs (>10%)

  • Symptom: Many sgRNAs not detected in final samples
  • Causes: Low sequencing depth, library degradation, or strong selection
  • Solution: Increase sequencing depth; verify library quality at transduction
2. Log Fold Change Calculation

Calculate log2 fold changes between treatment and control conditions to identify enriched or depleted sgRNAs.

python
from scripts.main import CRISPRScreenAnalyzer

analyzer = CRISPRScreenAnalyzer("counts.txt", "samples.csv")

# Define sample groups
control_samples = ["Control_1", "Control_2", "Control_3"]
treatment_samples = ["Drug_1", "Drug_2", "Drug_3"]

# Calculate log fold changes
lfc = analyzer.calculate_lfc(control_samples, treatment_samples)

# Analyze distribution
print("Log Fold Change Statistics:")
print(f"  Mean: {lfc.mean():.3f}")
print(f"  Std:  {lfc.std():.3f}")
print(f"  Max:  {lfc.max():.3f}")
print(f"  Min:  {lfc.min():.3f}")

# Identify extreme changes
strong_depletion = lfc[lfc < -2]  # Strong negative selection
strong_enrichment = lfc[lfc > 2]   # Strong positive selection

print(f"\nStrongly depleted sgRNAs: {len(strong_depletion)}")
print(f"Strongly enriched sgRNAs: {len(strong_enrichment)}")

LFC Calculation:

lfc = log2((treatment_mean + 1) / (control_mean + 1))

Interpretation:

LFC RangeInterpretationBiological Meaning
LFC < -2Strong depletionEssential gene or drug sensitivity
LFC -2 to -1Moderate depletionModerate effect
LFC -1 to 1No changeNo significant effect
LFC 1 to 2Moderate enrichmentModerate resistance
LFC > 2Strong enrichmentResistance gene or suppressor

Best Practices:

  • ✅ Use pseudocount of 1 to avoid log(0) issues
  • ✅ Average replicates to reduce technical variance
  • ✅ Visualize distribution to identify batch effects or outliers
  • ✅ Check positive controls (known essential genes should have negative LFC)

Common Issues and Solutions:

Issue: Skewed LFC distribution

  • Symptom: Mean LFC significantly different from 0
  • Causes: Library size differences, batch effects, or strong selection
  • Solution: Apply TMM or DESeq2 normalization; check for batch effects

Issue: Extreme outliers

  • Symptom: Few sgRNAs with very large LFC values
  • Solution: Winsorize extreme values; verify these are not technical artifacts
3. Robust Rank Aggregation (RRA) Statistical Analysis

Perform statistical analysis to identify significantly enriched or depleted sgRNAs using z-score and FDR correction.

python
from scripts.main import CRISPRScreenAnalyzer

analyzer = CRISPRScreenAnalyzer("counts.txt", "samples.csv")

# Calculate LFC first
lfc = analyzer.calculate_lfc(
    control_samples=["Ctrl_1", "Ctrl_2"],
    treatment_samples=["Treat_1", "Treat_2"]
)

# Perform RRA analysis
results = analyzer.rra_analysis(lfc, fdr_threshold=0.05)

# Review top hits
print("Top 10 Most Significant sgRNAs:")
top_hits = results.nsmallest(10, 'fdr')
print(top_hits[['sgrna', 'lfc', 'pvalue', 'fdr']].to_string(index=False))

# Summary statistics
print(f"\nTotal sgRNAs tested: {len(results)}")
print(f"Significant at FDR < 0.05: {sum(results['fdr'] < 0.05)}")
print(f"Significant depletions: {sum((results['fdr'] < 0.05) & (results['lfc'] < 0))}")
print(f"Significant enrichments: {sum((results['fdr'] < 0.05) & (results['lfc'] > 0))}")

RRA Analysis Steps:

  1. Z-score calculation: z = (lfc - mean) / std
  2. P-value calculation: Two-tailed normal test
  3. FDR correction: Benjamini-Hochberg procedure

Statistical Output:

ColumnDescriptionUsage
sgrnasgRNA identifierMapping to genes
lfcLog fold changeEffect size
pvalueRaw p-valueStatistical significance
fdrAdjusted p-value (FDR)Multiple testing correction

Best Practices:

  • ✅ Use FDR < 0.05 as standard significance threshold
  • ✅ Consider FDR < 0.01 for high-confidence hits
  • ✅ Combine p-value and LFC for hit prioritization
  • ✅ Validate top hits experimentally before publication

Common Issues and Solutions:

Issue: No significant hits despite visible effects

  • Symptom: Biological effects present but no FDR-significant results
  • Causes: High variance, insufficient replicates, or weak effects
  • Solution: Increase replicate number; use more permissive FDR threshold; use gene-level aggregation

Issue: Too many significant hits

  • Symptom: Hundreds or thousands of FDR-significant sgRNAs
  • Causes: Low variance, strong selection, or batch effects
  • Solution: Apply more stringent FDR threshold; add LFC cutoff; filter by effect size
4. Hit Identification with Thresholds

Apply statistical and biological thresholds to identify candidate genes for follow-up validation.

python
from scripts.main import CRISPRScreenAnalyzer

analyzer = CRISPRScreenAnalyzer("counts.txt", "samples.csv")
lfc = analyzer.calculate_lfc(["Ctrl_1", "Ctrl_2"], ["Treat_1", "Treat_2"])
results = analyzer.rra_analysis(lfc)

# Identify hits with multiple thresholds
threshold_configs = [
    {"fdr": 0.05, "lfc": 1.0, "name": "Standard"},
    {"fdr": 0.01, "lfc": 1.5, "name": "Stringent"},
    {"fdr": 0.1, "lfc": 0.5, "name": "Permissive"}
]

for config in threshold_configs:
    hits = analyzer.identify_hits(
        results, 
        fdr_threshold=config['fdr'],
        lfc_threshold=config['lfc']
    )
    
    depletions = hits[hits['lfc'] < 0]
    enrichments = hits[hits['lfc'] > 0]
    
    print(f"\n{config['name']} (FDR<{config['fdr']}, |LFC|>{config['lfc']}):")
    print(f"  Total hits: {len(hits)}")
    print(f"  Depletions: {len(depletions)}")
    print(f"  Enrichments: {len(enrichments)}")

# Save hits for downstream analysis
standard_hits = analyzer.identify_hits(results, fdr_threshold=0.05, lfc_threshold=1.0)
standard_hits.to_csv("hits_standard.csv", index=False)

Hit Classification:

CategoryCriteriaBiological Interpretation
EssentialFDR<0.05, LFC<-1Required for cell viability
Drug SensitiveFDR<0.05, LFC<-1Synthetic lethal with treatment
Drug ResistantFDR<0.05, LFC>1Confers resistance to treatment
SuppressorFDR<0.05, LFC>1Suppresses phenotype of interest

Best Practices:

  • ✅ Use consistent thresholds across related screens for comparability
  • ✅ Require multiple sgRNAs per gene for confidence (≥2 recommended)
  • ✅ Validate with orthogonal methods (siRNA, rescue experiments)
  • ✅ Compare with known essential genes as positive controls

Common Issues and Solutions:

Issue: Single sgRNA hits

  • Symptom: Only one sgRNA per gene significant
  • Solution: Require ≥2 significant sgRNAs per gene; check for off-target effects

Issue: Off-target effects dominating

  • Symptom: Known essential genes not identified; unexpected hits prominent
  • Solution: Use second-generation libraries with improved specificity; validate with rescue
5. Gene-Level Aggregation

Aggregate sgRNA-level results to gene-level statistics for biological interpretation.

python
import pandas as pd
from scripts.main import CRISPRScreenAnalyzer

analyzer = CRISPRScreenAnalyzer("counts.txt", "samples.csv")
lfc = analyzer.calculate_lfc(["Ctrl_1", "Ctrl_2"], ["Treat_1", "Treat_2"])
results = analyzer.rra_analysis(lfc)

# Add gene annotations (example mapping)
sgrna_to_gene = pd.read_csv("library_annotation.csv")  # sgRNA, Gene columns
results_with_gene = results.merge(sgrna_to_gene, on='sgrna')

# Aggregate to gene level
gene_results = results_with_gene.groupby('Gene').agg({
    'lfc': 'mean',           # Average LFC across sgRNAs
    'pvalue': 'min',         # Best p-value
    'fdr': 'min',            # Best FDR
    'sgrna': 'count'         # Number of sgRNAs
}).rename(columns={'sgrna': 'sgrna_count'})

# Filter genes with multiple sgRNAs
gene_results = gene_results[gene_results['sgrna_count'] >= 2]

# Identify gene-level hits
gene_hits = gene_results[
    (gene_results['fdr'] < 0.05) & 
    (abs(gene_results['lfc']) > 1.0)
]

print(f"Gene-level hits: {len(gene_hits)}")
print("\nTop 10 hits:")
print(gene_hits.nsmallest(10, 'fdr')[['lfc', 'pvalue', 'fdr', 'sgrna_count']])

Gene Aggregation Methods:

MethodDescriptionBest For
Mean LFCAverage across sgRNAsGeneral hit calling
Best FDRMost significant sgRNAConservative approach
Second-bestSecond most significantReduces outlier effects
STARS/RRARank-based aggregationStandard CRISPR analysis

Best Practices:

  • ✅ Require ≥3 sgRNAs per gene for reliable gene-level calling
  • ✅ Use mean LFC for primary analysis; best FDR for validation
  • ✅ Check sgRNA concordance - all should show same direction
  • ✅ Remove genes with conflicting sgRNAs from hit list

Common Issues and Solutions:

Issue: Discordant sgRNAs for same gene

  • Symptom: Some sgRNAs positive, others negative for same gene
  • Causes: Off-target effects, library errors, or complex biology
  • Solution: Exclude genes with discordant sgRNAs; investigate specific cases
6. Multi-Condition Comparison

Compare CRISPR screen results across multiple treatment conditions or time points.

python
from scripts.main import CRISPRScreenAnalyzer

analyzer = CRISPRScreenAnalyzer("counts.txt", "samples.csv")

# Define multiple comparisons
comparisons = {
    "Drug_A": {
        "control": ["DMSO_1", "DMSO_2"],
        "treatment": ["DrugA_1", "DrugA_2"]
    },
    "Drug_B": {
        "control": ["DMSO_1", "DMSO_2"], 
        "treatment": ["DrugB_1", "DrugB_2"]
    },
    "Combination": {
        "control": ["DMSO_1", "DMSO_2"],
        "treatment": ["Combo_1", "Combo_2"]
    }
}

# Analyze all conditions
all_results = {}
for comp_name, samples in comparisons.items():
    lfc = analyzer.calculate_lfc(samples['control'], samples['treatment'])
    results = analyzer.rra_analysis(lfc)
    hits = analyzer.identify_hits(results)
    
    all_results[comp_name] = {
        'lfc': lfc,
        'results': results,
        'hits': hits
    }
    
    print(f"{comp_name}: {len(hits)} hits")

# Find common hits across conditions
common_hits = set(all_results['Drug_A']['hits'].index)
for comp in ['Drug_B', 'Combination']:
    common_hits &= set(all_results[comp]['hits'].index)

print(f"\nCommon hits across all conditions: {len(common_hits)}")

# Compare LFC correlations between conditions
import matplotlib.pyplot as plt

lfc_drugA = all_results['Drug_A']['lfc']
lfc_drugB = all_results['Drug_B']['lfc']

correlation = lfc_drugA.corr(lfc_drugB)
print(f"\nCorrelation between Drug A and Drug B: {correlation:.3f}")

Multi-Condition Analysis:

Comparison TypeQuestion AddressedInterpretation
Drug vs ControlWhat genes mediate drug response?Resistance/sensitivity mechanisms
Condition A vs BDifferential genetic dependenciesContext-specific essentiality
Time-courseHow does genetic dependency change?Temporal dynamics
Cell line comparisonCell-type specific dependenciesLineage-specific vulnerabilities

Best Practices:

  • ✅ Use same control across multiple treatments for comparability
  • ✅ Check correlation between replicates and conditions
  • ✅ Look for condition-specific hits for mechanism insights
  • ✅ Validate common hits as robust findings

Common Issues and Solutions:

Issue: High variability between replicates

  • Symptom: Low correlation between replicates of same condition
  • Solution: Increase replicate number; check for technical batch effects

Complete Workflow Example

From count matrix to hit identification:

text

# Step 1: Run QC assessment
python scripts/main.py --counts sgrna_counts.txt --samples samples.csv --output qc_results

# Step 2: Perform differential analysis
python scripts/main.py \
  --counts sgrna_counts.txt \
  --samples samples.csv \
  --control "Ctrl_1,Ctrl_2,Ctrl_3" \
  --treatment "Drug_1,Drug_2,Drug_3" \
  --output drug_screen \
  --fdr 0.05

# Step 3: Review results
cat drug_screen_sgrna_results.csv | head -20

Python API Usage:

python
from scripts.main import CRISPRScreenAnalyzer
import pandas as pd

def analyze_crispr_screen(
    counts_file: str,
    samplesheet: str,
    control_samples: list,
    treatment_samples: list,
    output_prefix: str,
    fdr_threshold: float = 0.05,
    lfc_threshold: float = 1.0
) -> dict:
    """
    Complete CRISPR screen analysis workflow.
    """
    # Initialize analyzer
    analyzer = CRISPRScreenAnalyzer(counts_file, samplesheet)
    
    print(f"Loaded {analyzer.counts.shape[0]} sgRNAs x {analyzer.counts.shape[1]} samples")
    
    # Quality control
    print("\n1. Quality Control Assessment...")
    qc = analyzer.qc_metrics()
    
    # Check QC status
    qc_pass = all(gini < 0.4 for gini in qc['gini_index'].values())
    if not qc_pass:
        print("⚠️  Warning: High Gini index detected - check library representation")
    
    # Calculate fold changes
    print("\n2. Calculating log fold changes...")
    lfc = analyzer.calculate_lfc(control_samples, treatment_samples)
    
    # Statistical analysis
    print("\n3. Running RRA analysis...")
    results = analyzer.rra_analysis(lfc, fdr_threshold)
    
    # Identify hits
    print("\n4. Identifying significant hits...")
    hits = analyzer.identify_hits(results, fdr_threshold, lfc_threshold)
    
    # Categorize hits
    depletions = hits[hits['lfc'] < 0]
    enrichments = hits[hits['lfc'] > 0]
    
    # Save results
    results.to_csv(f"{output_prefix}_sgrna_results.csv", index=False)
    hits.to_csv(f"{output_prefix}_hits.csv", index=False)
    
    # Compile summary
    summary = {
        'total_sgrnas': len(results),
        'significant_hits': len(hits),
        'depletions': len(depletions),
        'enrichments': len(enrichments),
        'qc_metrics': qc,
        'output_files': {
            'full_results': f"{output_prefix}_sgrna_results.csv",
            'hits': f"{output_prefix}_hits.csv"
        }
    }
    
    # Print summary
    print(f"\n{'='*60}")
    print("ANALYSIS SUMMARY")
    print(f"{'='*60}")
    print(f"Total sgRNAs: {summary['total_sgrnas']}")
    print(f"Significant hits (FDR<{fdr_threshold}, |LFC|>{lfc_threshold}): {summary['significant_hits']}")
    print(f"  - Depletions: {summary['depletions']}")
    print(f"  - Enrichments: {summary['enrichments']}")
    print(f"\nResults saved:")
    print(f"  - {summary['output_files']['full_results']}")
    print(f"  - {summary['output_files']['hits']}")
    print(f"{'='*60}")
    
    return summary

# Execute workflow
results = analyze_crispr_screen(
    counts_file="sgrna_counts.txt",
    samplesheet="samples.csv",
    control_samples=["Ctrl_1", "Ctrl_2", "Ctrl_3"],
    treatment_samples=["Drug_1", "Drug_2", "Drug_3"],
    output_prefix="drug_resistance_screen",
    fdr_threshold=0.05,
    lfc_threshold=1.0
)

Expected Output Files:

analysis_results/
├── drug_resistance_screen_sgrna_results.csv  # All sgRNA statistics
├── drug_resistance_screen_hits.csv          # Significant hits only
└── qc_report.txt                            # Quality control summary

Common Patterns

Pattern 1: Viability Screen (Essential Gene Identification)

Scenario: Identify genes essential for cell survival by comparing T0 (transduction) vs T14 (14 days post-transduction).

json
{
  "screen_type": "viability",
  "comparison": "T14_vs_T0",
  "expected_depletions": "Essential genes (ribosomal, splicing, etc.)",
  "expected_enrichments": "None (unless suppressors of toxicity)",
  "positive_controls": ["RPL30", "RPS19", "PCNA"],
  "negative_controls": ["LacZ", "NTC"],
  "analysis_parameters": {
    "fdr_threshold": 0.05,
    "lfc_threshold": 1.0,
    "gene_aggregation": "mean"
  }
}

Workflow:

  1. Collect cells at T0 (immediately after transduction)
  2. Maintain parallel culture for 14 days (T14)
  3. Harvest T14 cells when control cells reach confluence
  4. Sequence both T0 and T14 samples
  5. Analyze depletion of sgRNAs at T14 relative to T0
  6. Identify genes with significantly depleted sgRNAs (essential genes)
  7. Validate top hits with individual sgRNA validation

Output Example:

Essential Gene Screen Results:
  Total sgRNAs tested: 65,383
  Significantly depleted: 3,847 sgRNAs (FDR<0.05, LFC<-1)
  
Top Essential Genes:
  RPL30: mean LFC = -4.2, 5/5 sgRNAs significant
  RPS19: mean LFC = -3.8, 4/5 sgRNAs significant
  PCNA:  mean LFC = -3.5, 5/5 sgRNAs significant
  
QC Metrics:
  Gini index: 0.25 (excellent library representation)
  Read depth: 25M per sample (sufficient)
Pattern 2: Drug Resistance Screen

Scenario: Identify genes whose knockout confers resistance to a cytotoxic drug (e.g., vemurafenib in BRAF-mutant melanoma).

json
{
  "screen_type": "drug_resistance",
  "treatment": "vemurafenib (2 μM)",
  "control": "DMSO",
  "duration": "14 days",
  "expected_depletions": "Drug sensitizers, synthetic lethal",
  "expected_enrichments": "Drug resistance genes",
  "known_resistance_genes": ["NRAS", "MAP2K1", "MEK1"],
  "analysis_parameters": {
    "fdr_threshold": 0.05,
    "lfc_threshold": 1.0,
    "focus": "enrichments"
  }
}

Workflow:

  1. Transduce cells with genome-wide sgRNA library
  2. Split into drug-treated and DMSO control groups
  3. Treat with drug at appropriate concentration (IC70-IC90)
  4. Maintain for 2-3 weeks until control cells die
  5. Harvest resistant colonies from drug-treated group
  6. Compare sgRNA representation: Drug vs DMSO
  7. Identify enriched sgRNAs (resistance genes)
  8. Validate resistance with individual sgRNAs and drug dose-response

Output Example:

Drug Resistance Screen Results (Vemurafenib):
  Significant enrichments: 156 sgRNAs (FDR<0.05, LFC>1)
  
Top Resistance Genes:
  NRAS:   mean LFC = +2.8, 4/5 sgRNAs enriched
  MAP2K1: mean LFC = +2.5, 5/5 sgRNAs enriched
  MED12:  mean LFC = +2.1, 3/5 sgRNAs enriched
  
Validation recommended:
  - Test individual sgRNAs in dose-response assay
  - Confirm resistance phenotype with cell viability assay
  - Check for known resistance mechanisms
Pattern 3: Drug Sensitivity/Synthetic Lethality Screen

Scenario: Identify genes that, when knocked out, sensitize cells to drug treatment (synthetic lethal interactions).

json
{
  "screen_type": "drug_sensitivity",
  "treatment": "PARP inhibitor (olaparib)",
  "control": "DMSO",
  "cell_line": "BRCA1-mutant ovarian cancer",
  "expected_depletions": "DNA repair genes (synthetic lethal)",
  "expected_enrichments": "Drug resistance mechanisms",
  "known_synthetic_lethal": ["PARP1", "BRCA2", "PALB2"],
  "analysis_parameters": {
    "fdr_threshold": 0.05,
    "lfc_threshold": 1.0,
    "focus": "depletions"
  }
}

Workflow:

  1. Transduce cells with sgRNA library
  2. Treat with sub-lethal drug concentration (IC30)
  3. Maintain for 2 weeks under drug selection
  4. Compare sgRNA representation: Drug-treated vs control
  5. Identify depleted sgRNAs (synthetic lethal/sensitizer genes)
  6. Validate with individual sgRNAs and combination assays
  7. Compare with genetic dependency maps (DepMap)

Output Example:

Synthetic Lethality Screen (Olaparib in BRCA1-mutant):
  Significant depletions: 234 sgRNAs (FDR<0.05, LFC<-1)
  
Top Synthetic Lethal Hits:
  BRCA2:   mean LFC = -3.2, 5/5 sgRNAs depleted
  PALB2:   mean LFC = -2.8, 4/5 sgRNAs depleted
  RAD51C:  mean LFC = -2.5, 5/5 sgRNAs depleted
  
Biological Interpretation:
  - Strong enrichment of homologous recombination genes
  - Consistent with known synthetic lethal interactions
  - Potential combination therapy targets identified
Pattern 4: Comparative Screen (Cell Line vs Cell Line)

Scenario: Compare genetic dependencies between two cell lines to identify lineage-specific vulnerabilities.

json
{
  "screen_type": "comparative",
  "comparison": "Melanoma_vs_Lung_cancer",
  "cell_lines": ["A375", "SKMEL28", "A549", "H1299"],
  "analysis_type": "differential_essentiality",
  "expected_lineage_specific": {
    "melanoma": ["MITF", "SOX10", "TYR"],
    "lung": ["NKX2-1", "TP63"]
  },
  "analysis_parameters": {
    "fdr_threshold": 0.05,
    "lfc_threshold": 1.0,
    "replicate_requirement": 2
  }
}

Workflow:

  1. Perform viability screens in multiple cell lines in parallel
  2. Normalize each screen independently
  3. Compare gene-level essentiality scores across lines
  4. Identify genes essential in one lineage but not another
  5. Validate lineage-specific dependencies
  6. Explore therapeutic relevance (tumor-type specific targets)

Output Example:

Comparative Screen: Melanoma vs Lung Cancer
  Melanoma-specific essential: 127 genes
  Lung-specific essential: 203 genes
  Common essential: 1,847 genes
  
Top Melanoma-Specific Dependencies:
  MITF:   LFC diff = -4.5 (essential in melanoma, not lung)
  SOX10:  LFC diff = -3.8
  TYR:    LFC diff = -3.2
  
Top Lung-Specific Dependencies:
  NKX2-1: LFC diff = -3.9
  TP63:   LFC diff = -3.1
  
Therapeutic Implications:
  - Lineage-specific targets identified
  - Potential for tumor-type selective therapy

Quality Checklist

Pre-Analysis Checks:

  • CRITICAL: Verify library composition matches expected sgRNA list
  • Check sequencing depth (>10M reads per sample recommended)
  • Confirm sample annotations match count matrix columns
  • Verify control and treatment sample assignments are correct
  • Check for batch effects (different sequencing runs, library preps)
  • Review positive control performance (known essential genes)
  • Confirm negative controls show no significant effects
  • Validate replicate consistency (correlation >0.7 expected)

During Analysis:

  • Calculate and review QC metrics (Gini, read depth, dropout)
  • CRITICAL: Check Gini index <0.4 for library quality
  • Examine LFC distribution for normality and outliers
  • Verify positive controls are significantly depleted (viability screens)
  • Check for batch effects using PCA or correlation heatmaps
  • Apply appropriate statistical thresholds (FDR < 0.05 standard)
  • Require multiple sgRNAs per gene for hit calling (≥2 recommended)
  • Compare hit lists with published data for similar screens

Post-Analysis Verification:

  • CRITICAL: Validate top hits show concordance across sgRNAs
  • Check known positive controls are recovered
  • Assess negative control performance (should not be significant)
  • Compare replicate correlation for hits vs non-hits
  • Review hit gene functions for biological plausibility
  • Check for potential off-target effects (seed sequence analysis)
  • Verify hit numbers are reasonable (10s-100s, not 1000s)
  • Generate visualization (MA plots, volcano plots, heatmaps)

Before Validation or Publication:

  • CRITICAL: Validate top 5-10 hits with individual sgRNAs
  • Perform rescue experiments to confirm on-target effects
  • Compare with orthogonal datasets (DepMap, published screens)
  • Check for cell line-specific vs pan-essential classification
  • Assess therapeutic relevance of identified hits
  • Plan secondary screens if primary screen quality issues found
  • Document all parameters and thresholds used
  • Prepare data for public deposition (if applicable)

Show full SKILL.md (1,273 more words)Show less

Common Pitfalls

Experimental Design Issues:

  • ❌ Insufficient sequencing depth → Poor statistical power, missed hits

    • ✅ Minimum 10M reads per sample; 20M+ for complex libraries
  • ❌ Library bottleneck → Gini index >0.4, skewed representation

    • ✅ Maintain MOI <0.3; use sufficient cell numbers (500-1000x library coverage)
  • ❌ Inadequate replicates → High variance, irreproducible results

    • ✅ Use ≥3 biological replicates per condition
  • ❌ Wrong time point → Too early (no selection) or too late (extensive dropout)

    • ✅ Optimize time point based on doubling time and selection pressure

Analysis Issues:

  • ❌ Ignoring QC metrics → Analyzing poor quality data

    • ✅ Always review Gini index, read depth, and dropout before analysis
  • ❌ Incorrect sample assignment → Control/treatment mix-up

    • ✅ Double-check sample annotation file; validate with positive controls
  • ❌ Single sgRNA hits → Potential off-target effects

    • ✅ Require ≥2 significant sgRNAs per gene; check concordance
  • ❌ Over-reliance on p-values → Many false positives with large library

    • ✅ Use FDR correction; add LFC threshold; validate experimentally

Interpretation Issues:

  • ❌ Ignoring cell number effects → Different growth rates confound results

    • ✅ Normalize for cell doublings; use appropriate controls
  • ❌ Off-target effects dominating → False positive hits

    • ✅ Use improved libraries (e.g., Brunello, Brie); validate with rescue
  • ❌ Pan-essential vs selective → Misclassifying broadly essential genes

    • ✅ Compare with DepMap data; use differential analysis for specificity
  • ❌ Not validating hits → Publishing false positives

    • ✅ Validate top hits with individual sgRNAs; perform rescue experiments

Technical Issues:

  • ❌ Batch effects → Confounding by library prep or sequencing batch

    • ✅ Randomize samples across batches; include batch in statistical model
  • ❌ Contamination → Cross-sample contamination affects quantification

    • ✅ Use unique molecular identifiers (UMIs); check for index hopping
  • ❌ Reference genome mismatch → sgRNAs not mapping correctly

    • ✅ Use same genome version as library design; check sgRNA sequences
  • ❌ Incomplete annotation → sgRNAs missing gene mapping

    • ✅ Verify library annotation file is complete and current

Troubleshooting

Problem: No significant hits despite strong biological effect

  • Symptoms: Clear phenotype but no FDR-significant sgRNAs
  • Causes:
    • High variance between replicates
    • Insufficient sequencing depth
    • Weak effect sizes
    • Stringent statistical thresholds
  • Solutions:
    • Increase replicate number
    • Increase sequencing depth
    • Use more permissive FDR threshold (0.1)
    • Consider gene-level aggregation

Problem: Too many significant hits (1000s)

  • Symptoms: Excessive number of hits, many likely false positives
  • Causes:
    • Low variance (overdispersion underestimated)
    • Strong selection pressure
    • Library quality issues
    • Noisy data
  • Solutions:
    • Use more stringent FDR threshold (0.01)
    • Increase LFC threshold (1.5 or 2.0)
    • Filter by sgRNA concordance
    • Review QC metrics and repeat if poor quality

Problem: High Gini index (>0.4)

  • Symptoms: Library representation highly skewed
  • Causes:
    • Library bottleneck at transduction
    • Insufficient cell numbers
    • High MOI leading to multiple integrations
  • Solutions:
    • Use lower MOI (<0.3)
    • Increase cell numbers (500-1000x library size)
    • Improve transduction efficiency
    • Consider repeating screen

Problem: Known essential genes not identified

  • Symptoms: Positive controls (RPL30, RPS19) not significantly depleted
  • Causes:
    • Insufficient selection time
    • Library quality issues
    • Analysis errors
  • Solutions:
    • Extend time point for viability screens
    • Check library composition and representation
    • Verify analysis parameters (control vs treatment assignment)

Problem: Discordant sgRNAs for same gene

  • Symptoms: Only 1-2 of 5 sgRNAs significant for hit genes
  • Causes:
    • Off-target effects
    • Variable sgRNA efficiency
    • Library design issues
  • Solutions:
    • Require ≥3 significant sgRNAs for gene-level hits
    • Check sgRNA sequences for off-target potential
    • Use improved second-generation libraries
    • Validate with independent sgRNAs

Problem: Batch effects between replicates

  • Symptoms: Low correlation between replicates of same condition
  • Causes:
    • Different library prep batches
    • Different sequencing runs
    • Technical variation
  • Solutions:
    • Include batch as covariate in analysis
    • Use ComBat or similar batch correction
    • Re-sequence inconsistent replicates
    • Randomize samples across batches in future

Problem: Negative controls showing significant effects

  • Symptoms: Non-targeting controls (NTC) or safe-targeting sgRNAs in hit list
  • Causes:
    • Technical artifacts
    • Random chance with large library
    • Library design issues
  • Solutions:
    • Review NTC performance; should not be systematically enriched/depleted
    • If systematic, investigate technical issues
    • Use NTC distribution to set empirical thresholds

References

Available in references/ directory:

  • (No reference files currently available for this skill)

External Resources:


Scripts

Located in scripts/ directory:

  • main.py - CRISPR screen analysis engine with QC, RRA, and hit identification

Common CRISPR Screen Types

Screen TypeComparisonExpected HitsTypical Duration
ViabilityT14 vs T0Essential genes depleted10-14 days
Drug ResistanceDrug vs DMSOResistance genes enriched14-21 days
Drug SensitivityDrug vs DMSOSensitizers depleted14-21 days
ComparativeCell A vs Cell BLineage-specific dependencies10-14 days
SensitizerDrug A+B vs Drug ACombination targets10-14 days

Parameters

ParameterTypeDefaultRequiredDescription
--counts, -cstring-YessgRNA count matrix file
--samples, -sstring-YesSample annotation file
--controlstring-NoControl samples (comma-separated)
--treatment, -tstring-NoTreatment samples (comma-separated)
--output, -ostring-NoOutput directory
--fdrfloat0.05NoFDR threshold

Usage

Basic Usage
text

# Analyze CRISPR screen data
python scripts/main.py --counts sgrna_counts.txt --samples samplesheet.csv

# With specific control and treatment
python scripts/main.py --counts counts.txt --samples samples.csv --control "Ctrl1,Ctrl2" --treatment "Treat1,Treat2"

# Custom FDR threshold
python scripts/main.py --counts counts.txt --samples samples.csv --fdr 0.01 --output ./results

Risk Assessment

Risk IndicatorAssessmentLevel
Code ExecutionPython script executed locallyLow
Network AccessNo external API callsLow
File System AccessRead count files, write resultsLow
Data ExposureProcesses genomic screening dataMedium
PHI RiskMay contain cell line genetic infoLow

Security Checklist

  • No hardcoded credentials or API keys
  • No unauthorized file system access
  • Input validation for file paths
  • Output directory restricted
  • Error messages sanitized
  • Script execution in sandboxed environment

Prerequisites

text

# Python 3.7+
numpy
pandas
scipy

Evaluation Criteria

Success Metrics
  • Successfully loads sgRNA count matrices
  • Calculates QC metrics (Gini index, zero counts)
  • Performs RRA analysis
  • Identifies significant hits with FDR control
Test Cases
  1. Basic Analysis: Count matrix + samplesheet → QC metrics + hit list
  2. RRA Analysis: Control vs Treatment → Ranked gene list with p-values
  3. QC Metrics: Count data → Gini scores, zero sgRNA counts

Lifecycle Status

  • Current Stage: Active
  • Next Review Date: 2026-03-09
  • Known Issues: None
  • Planned Improvements:
    • Add MAGeCK integration
    • Support for multiple analysis methods
    • Enhanced visualization

Last Updated: 2026-02-09
Skill ID: 183
Version: 2.0 (K-Dense Standard)

Output Requirements

Every final response should make these items explicit when they are relevant:

  • Objective or requested deliverable
  • Inputs used and assumptions introduced
  • Workflow or decision path
  • Core result, recommendation, or artifact
  • Constraints, risks, caveats, or validation needs
  • Unresolved items and next-step checks

Error Handling

  • If required inputs are missing, state exactly which fields are missing and request only the minimum additional information.
  • If the task goes outside the documented scope, stop instead of guessing or silently widening the assignment.
  • If scripts/main.py fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.
  • Do not fabricate files, citations, data, search results, or execution outcomes.

Input Validation

This skill accepts requests that match the documented purpose of crispr-screen-analyzer and include enough context to complete the workflow safely.

Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:

crispr-screen-analyzer only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.

Response Template

Use the following fixed structure for non-trivial requests:

  1. Objective
  2. Inputs Received
  3. Assumptions
  4. Workflow
  5. Deliverable
  6. Risks and Limits
  7. Next Checks

If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.

Inputs to Collect

  • Required inputs: the user goal, the primary data or source file, and the requested output format.
  • Optional inputs: output directory, formatting preferences, and validation constraints.
  • If a required input is unavailable, return a short clarification request before continuing.

Output Contract

  • Return a short summary, the main deliverables, and any assumptions that materially affect interpretation.
  • If execution is partial, label what succeeded, what failed, and the next safe recovery step.
  • Keep the final answer within the documented scope of the skill.

Validation and Safety Rules

  • Validate identifiers, file paths, and user-provided parameters before execution.
  • Do not fabricate results, metrics, citations, or downstream conclusions.
  • Use safe fallback behavior when dependencies, credentials, or required inputs are missing.
  • Surface any execution failure with a concise diagnosis and recovery path.

© aipoch, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, references) in scientific-skills/Data Analysis/crispr-screen-analyzer of aipoch/medical-research-skills.

  • SKILL.md
  • crispr-screen-analyzer_audit_result_v2.json
  • references/runtime_checklist.md
  • requirements.txt
  • scripts/main.py

Open the folder on GitHubat commit 686e09d

Compare with similar skills

Crispr Screen Analyzer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Crispr Screen Analyzer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Crispr Screen Analyzer this skillaipoch/medical-research-skills2k—~11kAutomated safety check: PassMIT
PyDESeq2 Differential Expressiondavila7/claude-code-templates32k12 repos~4kAutomated safety check: PassMIT
Ukb Ppp Region FetchClawBio/ClawBio1.2k—~4.6kAutomated safety check: PassMIT
Tooluniverse Epigenomicswu-yc/LabClaw1.1k2 repos~14kAutomated safety check: PassNone
Tooluniverse Metabolomics Analysiswu-yc/LabClaw1.1k2 repos~5.9kAutomated safety check: PassNone
Bio Population Genetics Linkage DisequilibriumGPTomics/bioSkills1.2k1 repos~4.7kAutomated safety check: PassMIT

Similar skills

  • PyDESeq2 Differential Expression

    davila7/claude-code-templates

    Runs differential gene expression analysis on bulk RNA-seq counts with PyDESeq2: design formulas, Wald tests, FDR correction and volcano or MA plots.

    32k GitHub starsUsed in 12 repos~4k tokens
    Research & ScienceAuto-check passed
  • Ukb Ppp Region Fetch

    ClawBio/ClawBio

    Fetch a regional slice of plasma pQTL summary statistics from the UK Biobank Pharma Proteomics Project (UKB-PPP; Sun 2023 Nature) for a specific (protein, ancestry) measurement.

    1.2k GitHub stars~4.6k tokensUpdated yesterday
    Research & ScienceAuto-check passed
  • Production-ready genomics and epigenomics data processing for BixBench questions.

    1.1k GitHub starsUsed in 2 repos~14k tokens
    Research & ScienceAuto-check passed
  • Analyze metabolomics data including metabolite identification, quantification, pathway analysis, and metabolic flux.

    1.1k GitHub starsUsed in 2 repos~5.9k tokens
    Research & ScienceAuto-check passed
  • Computes linkage disequilibrium (r2, D', composite Rogers-Huff r2), prunes correlated variants, clumps GWAS summary statistics to lead SNPs, and defines haplotype blocks with PLINK 1.9/2.0 and…

    1.2k GitHub starsUsed in 1 repo~4.7k tokens
    Research & ScienceAuto-check passed
  • Tests whether a proposed or predicted RNA secondary structure is supported by evolutionary covariation using R-scape, which scores compensatory substitutions against a phylogeny-aware null and…

    1.2k GitHub starsUsed in 1 repo~2.7k tokens
    Research & ScienceAuto-check passed

More from aipoch/medical-research-skills

All 567 skills in this repo
  • Academic Poster Generator

    aipoch/medical-research-skills

    Complete workflow for generating academic research posters from PDF literature; use when you need to extract paper content from PDFs and produce a LaTeX-based poster…

    2k GitHub stars~2.2k tokensUpdated 21 days ago
    Auto-check passed
  • Diagnostic Study Quality Assessment Quadas

    aipoch/medical-research-skills

    Analyzes clinical diagnostic accuracy studies for bias using the QUADAS-2 tool.

    2k GitHub stars~1.4k tokensUpdated 21 days ago
    Auto-check passed
  • Exploratory Data Analysis

    aipoch/medical-research-skills

    Perform comprehensive exploratory data analysis on scientific data files across 200+ file formats.

    2k GitHub stars~3.7k tokensUpdated 21 days ago
    Auto-check passed
  • Iso Certification

    aipoch/medical-research-skills

    A toolkit for preparing ISO 13485:2016 certification documentation for medical device QMS.

    2k GitHub stars~1.8k tokensUpdated 21 days ago
    Auto-check passed
  • Journal Skills

    aipoch/medical-research-skills

    Recommends target journals for manuscript submission by analyzing the paper topic/abstract and the journal distribution of similar PubMed literature; use when users ask for journal…

    2k GitHub stars~1.7k tokensUpdated 21 days ago
    Auto-check passed
  • Latex Posters

    aipoch/medical-research-skills

    Creates academic-poster writing packages for LaTeX using beamerposter, tikzposter, or baposter.

    2k GitHub stars~1.3k tokensUpdated 21 days ago
    Auto-check passed

Questions about Crispr Screen Analyzer

What does Crispr Screen Analyzer do?

Process CRISPR screening data to identify essential genes and hit candidates. Crispr Screen Analyzer is an agent skill from aipoch/medical-research-skills. Process CRISPR screening data to identify essential genes and hit candidates.

When should I use Crispr Screen Analyzer?

Crispr Screen Analyzer fits situations like: tasks that involve Bioinformatics; tasks that involve Statistics.

How do I install Crispr Screen Analyzer in Claude Code?

Run `npx skills add aipoch/medical-research-skills --skill crispr-screen-analyzer -a claude-code`. Or copy the skill folder (scientific-skills/Data Analysis/crispr-screen-analyzer in aipoch/medical-research-skills) into .claude/skills/crispr-screen-analyzer in your project. Claude Code loads it when a task matches its description.

How do I install Crispr Screen Analyzer in Codex?

Run `npx skills add aipoch/medical-research-skills --skill crispr-screen-analyzer -a codex`. Or copy the skill folder (scientific-skills/Data Analysis/crispr-screen-analyzer in aipoch/medical-research-skills) into .agents/skills/crispr-screen-analyzer in your project. Codex loads it when a task matches its description.

Can I use Crispr Screen Analyzer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aipoch/medical-research-skills --skill crispr-screen-analyzer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/crispr-screen-analyzer, .gemini/skills/crispr-screen-analyzer, .github/skills/crispr-screen-analyzer and .opencode/skills/crispr-screen-analyzer in your project.

What does Crispr Screen Analyzer need to run?

Going by SKILL.md and its folder, Crispr Screen Analyzer needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.

Does Crispr Screen Analyzer access the network?

SKILL.md names 5 domains. As links in the text: addgene.org, depmap.org, sourceforge.net, github.com and pubmed.ncbi.nlm.nih.gov. This is read from the text; nothing was executed.

Is Crispr Screen Analyzer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Crispr Screen Analyzer use?

Crispr Screen Analyzer is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Crispr Screen Analyzer use?

About 11k tokens (SKILL.md is roughly 43k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 136 tokens, read only when the agent opens those files.

What are the alternatives to Crispr Screen Analyzer?

Skills that share tags, products or a category with Crispr Screen Analyzer: PyDESeq2 Differential Expression (davila7/claude-code-templates, 32k stars), Ukb Ppp Region Fetch (ClawBio/ClawBio, 1.2k stars), Tooluniverse Epigenomics (wu-yc/LabClaw, 1.1k stars) and Tooluniverse Metabolomics Analysis (wu-yc/LabClaw, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Crispr Screen Analyzer?

aipoch (a GitHub organization) maintains it in aipoch/medical-research-skills, which has 1,974 GitHub stars. The repository holds 567 skills in this directory. The repository was last updated on September 17, 2026.

Source: aipoch/medical-research-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.