一键导入
hdl73-signal-isolation
Batch signal isolation for Phenocycler spleen channels using matched blank pairs and kintsugi.signal
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Batch signal isolation for Phenocycler spleen channels using matched blank pairs and kintsugi.signal
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Normalize long-form CODEX cycle folders to short form before notebooks run. Trigger: cyc001_reg001_*, hard-coded cyc paths breaking, staged CODEX raw data failing in Notebooks 1/2.
v5.6.0 joint multi-TF model: single model per symbol with broadcast 1Hour context replaces dual 15Min/1Hour models. Trigger: (1) replacing weighted-voting model aggregation, (2) adding broadcast features to vectorized env, (3) limited training data + worried about overfitting from doubling obs_dim, (4) backtest builder mismatch with newer feature counts.
DEPRECATED in v5.6.0 — see joint-multi-tf-v560 skill. Documents the v5.2.0 dual-model approach (train separate 15Min/1Hour models, combine via weighted voting). Still relevant for: (1) loading legacy v5.5.0 dual models, (2) understanding the historical aggregation layer, (3) resampling pattern via origin='start'.
Surface a shipped-but-undocumented CLI feature in user-facing docs. Trigger: user reports a known feature missing from README/readthedocs even though the CLI command exists.
KINTSUGI Snakefile + CLI changes that route SLURM jobs around accounts saturated by OTHER users on the same QOS pool. Trigger: QOSGrpMemLimit, jobs stuck pending despite available GPU slots in config, noisy neighbor on shared QOS, multi-user investment pool exhaustion, _build_cycle_assignment static-vs-live.
KINTSUGI SLURM batch processing: Maximize throughput using multi-account resource calculation with GPU+CPU pools per account. Trigger: SLURM job submission, batch processing, resource maximization, GPU+CPU concurrent, headless processing, resource pool.
基于 SOC 职业分类
| name | hdl73-signal-isolation |
| description | Batch signal isolation for Phenocycler spleen channels using matched blank pairs and kintsugi.signal |
| author | smith6jt |
| date | "2026-02-25T00:00:00.000Z" |
| Item | Details |
|---|---|
| Date | 2026-02-25 |
| Goal | Process all 28 signal channels from HDL73 spleen sample with autofluorescence subtraction using matched blank pairs |
| Environment | KINTSUGI conda env, kintsugi.signal module, Python 3.x, tifffile, numpy |
| Status | Success |
HDL73 spleen sample from HiperGator had 28 signal markers but only 5 had been manually signal-isolated (CD11c, CD20, CD3e, CD4, CD8). The remaining 23 markers needed autofluorescence subtraction before the OME-TIFF could be rebuilt with all channels. Existing param files covered 9 channels (including the 5 already done), so 19 channels needed auto-analysis.
The Phenocycler cycle layout in channelnames.txt encodes 3 positions per cycle (a/b/c). Blanks at cycles 1 and 13 provide matched autofluorescence references:
POSITION_A = ["CD20", "CD31", "CD34", "CD35", "Lyve1", "PanCK", "SMActin"]
POSITION_B = ["CD8", "CD15", "CD21", "CD44", "CD45RO", "CD5", "CollagenIV", "ECAD", "FoxP3", "Ki67", "Podoplanin"]
POSITION_C = ["CD3e", "CD4", "CD11c", "CD107a", "CD163", "CD1c", "CD45", "CD68", "HLADR", "Vimentin"]
blank_avg = ((blank1.astype(np.float32) + blank13.astype(np.float32)) / 2.0).astype(np.uint16)
from kintsugi.signal import analyze_for_subtraction, subtract_autofluorescence, compute_subtraction_quality
# If param file exists, parse blank_clip_factor and background_scale_factor
# If not, auto-analyze:
params = analyze_for_subtraction(signal, blank_avg, tissue_type="spleen", marker_name=name)
result = subtract_autofluorescence(signal, blank_avg,
blank_clip_factor=params["blank_clip_factor"],
blank_scale_factor=params["blank_scale_factor"])
quality = compute_subtraction_quality(signal, result, blank_avg)
python scripts/convert_to_ome_tiff.py FromHipergator/HDL73_SPL_Processed/ImageJ Images/HDL073_PC29.ome.tiff
| Attempt | Why it Failed | Lesson Learned |
|---|---|---|
conda run -n KINTSUGI python script.py | stdout completely buffered — appeared to hang with no output for 10+ minutes | Use direct python path: $HOME/miniconda3/envs/KINTSUGI/bin/python -u |
conda run --no-banner flag | Not supported in this conda version | Stick with direct python invocation |
Importing kintsugi.signal_isolation | Module doesn't exist | Correct path is kintsugi.signal (check kintsugi._SUBMODULE_MAPPING) |
| f-strings with nested braces in inline python | SyntaxError on older Python | Use .format() for complex formatting in -c one-liners |
CD11c: clip=7000, scale=1.4
CD15: clip=9000, scale=0.7
CD1c: clip=5000, scale=1.8 # failed marker
CD20: clip=7000, scale=0.2
CD21: clip=3000, scale=1.6
CD3e: clip=12000, scale=1.9 # param file also contains ImageJ macros
CD4: clip=7000, scale=2.0
CD5: clip=10000, scale=1.4 # failed marker
CD8: clip=8000, scale=1.5
position_a: 14526 # highest autofluorescence
position_b: 6708
position_c: 4341 # lowest autofluorescence
blank_clip_factor and background_scale_factoranalyze_for_subtraction() with tissue_type="spleen" works well for most channels but PanCK, Podoplanin, SMActin got low signal preservation (<0.3) — may need manual parameter tuningFailed_markers.txt — processed anyway but results should be visually validatedscripts/process_hdl73_channels.py — the processing scriptscripts/convert_to_ome_tiff.py — OME-TIFF builderFromHipergator/HDL73_SPL_meta/channelnames.txt — cycle layout sourceFromHipergator/HDL73_SPL_Processed/Processing_parameters/ — existing param files