用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/nahisaho/satori --skill scientific-healthcare-ai命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | scientific-healthcare-ai |
| description | ヘルスケア AI スキル。PyHealth 臨床 ML パイプライン、 フローサイトメトリー (FlowIO) 解析、電子健康記録 (EHR) 処理、 臨床予測モデル構築のガイダンス。 |
臨床データ解析・ヘルスケア機械学習パイプラインを提供する。 PyHealth フレームワーク、フローサイトメトリー解析ツールを活用。
"""
PyHealth による臨床予測モデル構築。
pip install pyhealth
K-Dense-AI 参照: pyhealth — 臨床 ML フレームワーク
"""
from pyhealth.datasets import MIMIC3Dataset
from pyhealth.tasks import readmission_prediction_mimic3_fn
def build_clinical_pipeline(
mimic3_root,
tables=("DIAGNOSES_ICD", "PROCEDURES_ICD", "PRESCRIPTIONS"),
code_mapping=None,
):
"""
MIMIC-III データセットから臨床予測パイプラインを構築。
Parameters:
mimic3_root: str — MIMIC-III CSV ディレクトリパス
tables: tuple — 使用するテーブル
code_mapping: dict | None — コードマッピング設定
"""
# Step 1: Dataset loading
if code_mapping is None:
code_mapping = {
"NDC": ("ATC", {"target_kwargs": {"level": 3}}),
"ICD9CM": "CCSCM",
"ICD9PROC": "CCSPROC",
}
dataset = MIMIC3Dataset(
root=mimic3_root,
tables=tables,
code_mapping=code_mapping,
)
print(f"MIMIC-III dataset: {len(dataset.patients)} patients")
return dataset
def apply_clinical_task(dataset, task_fn=None):
"""
臨床タスク関数を適用しサンプルを生成。
"""
from pyhealth.datasets import split_by_patient
if task_fn is None:
task_fn = readmission_prediction_mimic3_fn
samples = dataset.set_task(task_fn)
train, val, test = split_by_patient(samples, [0.8, 0.1, 0.1])
print(f"Clinical task samples: "
f"train={len(train)}, val={len(val)}, test={len(test)}")
return train, val, test
def train_clinical_model(
train_dataset,
val_dataset,
model_type="Transformer",
epochs=20,
batch_size=64,
):
"""
PyHealth モデルの学習。
Parameters:
train_dataset: SampleDataset
val_dataset: SampleDataset
model_type: str — "Transformer", "RETAIN", "GRU", "CNN"
epochs: int — 学習エポック数
"""
from pyhealth.models import Transformer
from pyhealth.trainer import Trainer
model_classes = {
"Transformer": Transformer,
}
ModelClass = model_classes.get(model_type, Transformer)
model = ModelClass(
dataset=train_dataset,
feature_keys=["conditions", "procedures", "drugs"],
label_key="label",
mode="binary",
)
trainer = Trainer(model=model)
trainer.train(
train_dataloader=train_dataset,
val_dataloader=val_dataset,
epochs=epochs,
monitor="pr_auc",
)
print(f"Clinical model ({model_type}): trained for {epochs} epochs")
return model, trainer
def read_fcs_file(fcs_path):
"""
FCS ファイルの読み込みと前処理。
pip install flowio
K-Dense-AI 参照: flowio — FCS file I/O
Parameters:
fcs_path: str — FCS ファイルパス
"""
import flowio
import numpy as np
import pandas as pd
fcs_data = flowio.FlowData(fcs_path)
# Extract channel names
channels = []
for i in range(1, fcs_data.channel_count + 1):
name = fcs_data.channels.get(f"P{i}N", f"Channel_{i}")
channels.append(name)
# Convert to DataFrame
events = np.array(fcs_data.events).reshape(-1, fcs_data.channel_count)
df = pd.DataFrame(events, columns=channels)
print(f"FCS '{fcs_path}': {len(df)} events x {len(channels)} channels")
return df, fcs_data
def gate_fcs_data(df, channel, low=None, high=None):
"""
単純な矩形ゲーティング。
Parameters:
df: pd.DataFrame — FCS データ
channel: str — チャネル名
low: float | None — 下限
high: float | None — 上限
"""
mask = pd.Series([True] * len(df))
if low is not None:
mask &= df[channel] >= low
if high is not :
mask &= df[channel] <= high
gated = df[mask]
pct = (gated) / (df) *
(
)
gated
def map_medical_codes(codes, source_system, target_system):
"""
医療コード間のマッピング。
Parameters:
codes: list[str] — ソースコードのリスト
source_system: str — "ICD9CM", "ICD10CM", "NDC", "ATC", "SNOMED"
target_system: str — 変換先コード体系
"""
try:
from pyhealth.medcode import CrossMap
mapper = CrossMap(source_system, target_system)
results = {}
for code in codes:
mapped = mapper.map(code)
results[code] = mapped
mapped_count = sum(1 for v in results.values() if v)
print(f"Code mapping {source_system}→{target_system}: "
f"{mapped_count}/{len(codes)} mapped")
return results
except ImportError:
print("pyhealth.medcode not available; install pyhealth")
return {}
def evaluate_clinical_model(trainer, test_dataset):
"""
臨床予測モデルの評価。
Parameters:
trainer: Trainer — 学習済み Trainer
test_dataset: SampleDataset — テストデータ
"""
metrics = trainer.evaluate(test_dataset)
print("Clinical model evaluation:")
for metric_name, value in metrics.items():
print(f" {metric_name}: {value:.4f}")
return metrics
| ファイル | 形式 |
|---|---|
results/clinical_predictions.csv | CSV |
results/clinical_metrics.json | JSON |
results/fcs_processed.csv | CSV |
results/code_mapping.json | JSON |
| カテゴリ | 主要ツール | 用途 |
|---|---|---|
| (K-Dense) | pyhealth | 臨床 ML フレームワーク |
| (K-Dense) | flowio | FCS ファイル I/O |
注: 本スキルは ToolUniverse ツールを持たず、 K-Dense-AI Scientific Skills からの参照のみ。
| スキル | 関連 |
|---|---|
scientific-clinical-nlp | 臨床 NLP |
scientific-biostatistics-survival | 生存時間解析 |
scientific-single-cell-rnaseq | 単一細胞解析 |
scientific-machine-learning-omics | ML x オミクス |
scientific-biothings-idmapping | ID マッピング |
pyhealth, flowio, numpy, pandas, scikit-learn
実験の監査レポート・データ来歴(プロベナンス)生成スキル。 データ変換履歴・使用ツールのバージョン・データ整合性チェックを 含むトレーサビリティレポートを自動生成する。 「監査レポート作成」「データ来歴を記録」「トレーサビリティ」で発火。
派生実験設計スキル。既存の実験をベースに条件を変更した派生実験を 設計する。実験計画法(DOE)に基づくパラメータ探索を支援。 「派生実験を設計して」「条件を変えて実験」「パラメータ探索」で発火。
実験テンプレート生成スキル。研究目的・仮説・手法・実験条件・評価基準・ スケジュールを構造化した実験計画書を自動作成する。 「実験テンプレート作成して」「実験計画を立てて」「実験プロトコルを作成」で発火。