Automatically identify Western Blot gel bands, perform densitometric analysis, and calculate normalized values relative to loading controls.
Automatically identify Western Blot gel bands, perform densitometric analysis, and calculate normalized values relative to loading controls.
See ## Features above for related details.
scripts/__init__.py plus 1 additional script(s).numpy>=1.21.0
opencv-python>=4.5.0
pandas>=1.3.0
matplotlib>=3.4.0
scipy>=1.7.0
scikit-image>=0.18.0
See ## Usage above for related details.
cd "20260318/scientific-skills/Data Analytics/western-blot-quantifier"
python -m py_compile scripts/main.py
python scripts/main.py --help
Example run plan:
CONFIG block or documented parameters if the script uses fixed settings.python scripts/main.py with the validated inputs.See ## Workflow above for related details.
scripts/__init__.py with additional helper scripts under scripts/.Use this command to verify that the packaged script entry point can be parsed before deeper execution.
python -m py_compile scripts/main.py
Use these concrete commands for validation. They are intentionally self-contained and avoid placeholder paths.
python -m py_compile scripts/main.py
python scripts/main.py --help
# Call in Python
from skills.western_blot_quantifier.scripts.main import WesternBlotQuantifier
# Create analyzer
analyzer = WesternBlotQuantifier()
# Analyze single image
result = analyzer.analyze(
image_path="path/to/wb_image.png",
reference_bands=["GAPDH"], # Loading control band names
target_bands=["p53", "Bcl-2"], # Target protein band names
lane_positions=[0.2, 0.4, 0.6, 0.8] # Lane positions (relative to image width)
)
print(result.summary())
result.save("output/quantification_results.csv")
python -m skills.western_blot_quantifier.scripts.main \
--input path/to/wb_image.png \
--reference GAPDH \
--targets p53,Bcl-2 \
--lanes 4 \
--output results.csv
| Parameter | Description | Default |
|---|---|---|
image_path | Gel image path | Required |
reference_bands | Loading control protein name list | ["GAPDH"] |
target_bands | Target protein name list | [] |
lane_positions | Lane position list | Auto-detect |
threshold | Band detection threshold | 0.1 |
background_correction | Background correction method | "rolling_ball" |
Lane,Protein,Raw_Intensity,Background,Corrected_Intensity,Normalized_to_Reference
1,GAPDH,125000.5,5000.2,120000.3,1.00
1,p53,85000.2,3000.1,82000.1,0.68
1,Bcl-2,62000.8,2500.5,59500.3,0.50
2,GAPDH,118000.3,4800.2,113200.1,1.00
...
{
"raw_data": DataFrame, # Raw optical density data
"normalized_data": DataFrame, # Normalized data
"band_regions": List[Dict], # Detected band region coordinates
"statistics": Dict, # Statistical analysis results
"figures": Dict # Visualization chart paths
}
pip install -r requirements.txt
from skills.western_blot_quantifier.scripts.main import WesternBlotQuantifier
analyzer = WesternBlotQuantifier()
# Analyze 4-lane Western Blot results
result = analyzer.analyze(
image_path="experiment_data/wb_gel.png",
reference_bands=["GAPDH"],
target_bands=["p53", "p21"],
lane_count=4
)
# View normalized results
print(result.normalized_data)
# Save charts
result.save_figures("output/")
import glob
analyzer = WesternBlotQuantifier()
for image_path in glob.glob("experiments/*.png"):
result = analyzer.analyze(
image_path=image_path,
reference_bands=["β-actin"],
target_bands=["Target_Protein"],
lane_count=6
)
result.save(f"output/{Path(image_path).stem}_results.csv")
OpenClaw Skills
| Risk Indicator | Assessment | Level |
|---|---|---|
| Code Execution | Python/R scripts executed locally | Medium |
| Network Access | No external API calls | Low |
| File System Access | Read input files, write output files | Medium |
| Instruction Tampering | Standard prompt guidelines | Low |
| Data Exposure | Output files saved to workspace | Low |
# Python dependencies
pip install -r requirements.txt
Every final response should make these items explicit when they are relevant:
scripts/main.py fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.This skill accepts requests that match the documented purpose of western-blot-quantifier 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:
western-blot-quantifieronly handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.
Use the following fixed structure for non-trivial requests:
If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.
使用 Arthas 的 watch/trace 获取 EagleEye traceId / 获取请求的 traceId