家系図の複合確率と子の遺伝リスク計算
家系図の複合確率計算では、複数の親遺伝子型の組み合わせから同じ子の遺伝子型や疾患が生じ得る場合に、その確率を求めます。互いに排他的な各経路について、親Aの遺伝子型確率、親Bの遺伝子型確率、条件付き伝達確率をご入力ください。各経路内の独立した3要素を乗算し、経路ごとの寄与を加算します。途中の計算、合計確率、百分率をすべて表示するため、積の法則と和の法則を明確にご確認いただけます。
無料で実行
家系図の問いを排他的な経路として表します
最初に、子が発症する、保因者になる、特定の遺伝子型を受け継ぐなど、対象とする結果を1つ定めてください。次に、その結果を生じ得る親の遺伝子型の組み合わせをすべて列挙します。各行には一意の名称、親Aの確率、親Bの確率、その組み合わせにおける子の条件付き確率が必要です。経路同士は互いに排他的でなければなりません。同じ親の状態を別名で重複させたり、重なりのある状況を複数行に分けたりしないでください。両親が保因者である行と、親Aが発症し親Bが保因者である行は別の経路です。割合は0から1の小数で入力し、25%は0.25とします。各行では親の2つの確率が独立であると仮定します。血縁、集団構造、共通の証拠などによる相関がある場合は、この単純化したモデルを使う前に適切な同時確率を求めてください。
行内では積、行の間では和を使います
まず親Aの確率と親Bの確率を掛け、独立性を仮定した親の同時確率を求めます。次に条件付き伝達確率を掛け、その経路が子のリスクに寄与する値を得ます。0.5、0.4、0.25なら寄与は0.05です。各行が同じ結果へ至る排他的な選択肢であるため、最後に寄与を加算します。応答には親の同時確率、各寄与、合計の小数値と百分率が含まれ、自動処理でも安定するよう小数第十二位まで丸めます。合計が1を超える場合は、経路の重複または入力の不整合を示すため拒否します。0は有効な結果です。計算は決定論的であり、ネットワーク、乱数、日時には依存しません。
遺伝的な確実性を過大評価せず解釈します
合計値は入力された数値と仮定から得られる結果であり、診断や完全な臨床リスク評価ではありません。実際の確率は、浸透率、表現型、祖先集団、de novo変異、検査感度、相、伴性遺伝、血族関係、親族間の依存性などに左右されます。本ツールはこれらを推論せず、家族記録から家系図を作成することもありません。確定済みの確率を組み合わせるだけです。各伝達値が遺伝形式と対象結果に一致すること、同じ証拠を親の確率に二重使用していないことをご確認ください。表示される寄与は、課題の確認、授業での説明、ソフトウェア試験に利用できます。医療または生殖に関する判断では、遺伝専門職に家系図、検査、不確実性をご相談ください。ブラウザーは無料で、API リクエストは $0.002 です。
活用例
不確かな保因者経路の統合
親の確率と該当するメンデル伝達リスクを掛け、異なる遺伝子型経路を加算します。
遺伝学課題の検算
親の同時確率と各寄与を表示し、積の法則と和の法則の適用箇所を確認します。
再現可能なテストデータ作成
ネットワークやシミュレーション誤差なしで、教材やソフトウェア試験用の結果を生成します。
よくある質問
各経路は何を表しますか?
同じ子の対象結果につながる、互いに排他的な親遺伝子型の組み合わせです。
経路内で確率を掛ける理由は何ですか?
独立なら積が親の同時確率となり、伝達確率を掛けると子への寄与になります。
寄与を加算する理由は何ですか?
同じ結果への排他的な代替経路だからです。重複する経路は別々に入力しないでください。
遺伝疾患を診断できますか?
いいえ。入力値の算術処理のみを行い、臨床判断や遺伝カウンセリングの代わりにはなりません。
合計が1を超えるとどうなりますか?
経路の重複または確率の不整合が疑われるため、入力を拒否します。
利用料金はいくらですか?
ブラウザーでは無料です。成功したAPI リクエスト1回は $0.002 です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/bio/pedigree-probability-combined \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pathways":[{"label":"Both parents are carriers","parent_a_probability":0.5,"parent_b_probability":0.4,"transmission_probability":0.25},{"label":"Parent A affected, parent B carrier","parent_a_probability":0.1,"parent_b_probability":0.4,"transmission_probability":0.5}]}'const res = await fetch("https://api.kit.forhosting.com/bio/pedigree-probability-combined", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pathways": [
{
"label": "Both parents are carriers",
"parent_a_probability": 0.5,
"parent_b_probability": 0.4,
"transmission_probability": 0.25
},
{
"label": "Parent A affected, parent B carrier",
"parent_a_probability": 0.1,
"parent_b_probability": 0.4,
"transmission_probability": 0.5
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/bio/pedigree-probability-combined",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pathways": [
{
"label": "Both parents are carriers",
"parent_a_probability": 0.5,
"parent_b_probability": 0.4,
"transmission_probability": 0.25
},
{
"label": "Parent A affected, parent B carrier",
"parent_a_probability": 0.1,
"parent_b_probability": 0.4,
"transmission_probability": 0.5
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/bio/pedigree-probability-combined", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pathways":[{"label":"Both parents are carriers","parent_a_probability":0.5,"parent_b_probability":0.4,"transmission_probability":0.25},{"label":"Parent A affected, parent B carrier","parent_a_probability":0.1,"parent_b_probability":0.4,"transmission_probability":0.5}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pathways":[{"label":"Both parents are carriers","parent_a_probability":0.5,"parent_b_probability":0.4,"transmission_probability":0.25},{"label":"Parent A affected, parent B carrier","parent_a_probability":0.1,"parent_b_probability":0.4,"transmission_probability":0.5}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/bio/pedigree-probability-combined", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"pathways": [
{
"label": "Both parents are carriers",
"parent_a_probability": 0.5,
"parent_b_probability": 0.4,
"transmission_probability": 0.25
},
{
"label": "Parent A affected, parent B carrier",
"parent_a_probability": 0.1,
"parent_b_probability": 0.4,
"transmission_probability": 0.5
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.pedigree_probability_combined",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |