用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ffsshhttiikk/opencode-agents-skills --skill genetics命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | genetics |
| description | Study of heredity, genes, genetic variation, and inheritance patterns |
| category | biology |
| keywords | ["genetics","inheritance","Mendelian genetics","gene mapping","mutation","genetic disorders","genomics"] |
Genetics studies heredity, genetic variation, and the function and behavior of genes. I cover Mendelian inheritance, genetic linkage, gene mapping, mutation analysis, population genetics, quantitative genetics, and genetic disorders. I help analyze inheritance patterns, calculate genetic risks, and understand gene function.
import numpy as np
from typing import List, Dict, Tuple
from itertools import combinations
class MendelianGenetics:
def __init__(self, gene_name: str):
self.gene_name = gene_name
def predict_offspring(self, parent1_genotype: str,
parent2_genotype: str) -> Dict:
alleles1 = list(parent1_genotype)
alleles2 = list(parent2_genotype)
offspring = {}
for a1 in alleles1:
for a2 in alleles2:
genotype = ''.join(sorted([a1, a2]))
offspring[genotype] = offspring.get(genotype, 0) + 1
total = sum(offspring.values())
return {k: v/total for k, v in offspring.items()}
def calculate_carrier_probability(self, affected_frequency: float,
carrier_frequency: float) -> float:
return 2 * np.sqrt(affected_frequency) # Approximate for recessive
def calculate_recurrence_risk() -> :
(affected_status):
(affected_status):
() -> :
prob_exclusion =
prob_inclusion =
child child_alleles:
child alleged_father_alleles:
prob_inclusion +=
child random_man_alleles:
prob_exclusion +=
prob_inclusion / prob_exclusion prob_exclusion > ()
:
():
.population = population
() -> :
p = allele_frequency_a
q = - p
{
: p**,
: *p*q,
: q**
}
() -> :
Hs = np.mean(heterozygosity_loci)
(heterozygosity_total - Hs) / heterozygosity_total
() -> :
( * ne_census - ) / ( + variance)
() -> []:
p = p0
frequencies = [p]
_ (generations):
p = p / ( - selection_coefficient * ( - p))
frequencies.append(p)
frequencies
() -> :
coefficients = {
: /,
: /,
: /,
: /
}
coefficients.get(consanguinity, )
:
():
.chromosome = chromosome
() -> :
recombinations =
total = (markers) -
i (total):
genotypes_parent1[i] != genotypes_parent1[i+]:
recombinations +=
genotypes_parent2[i] != genotypes_parent2[i+]:
recombinations +=
recombinations / ( * total)
() -> :
likelihood_observed = ( - theta) ** ( - recombination_fraction) * \
theta ** recombination_fraction
likelihood_null =
np.log10(likelihood_observed / likelihood_null)
() -> :
-np.log10( - * recombination_fraction) /
:
():
.test_type = test_type
() -> :
sensitivity = true_positives / (true_positives + false_negatives)
specificity = true_negatives / (true_negatives + false_positives)
ppv = true_positives / (true_positives + false_positives)
npv = true_negatives / (true_negatives + false_negatives)
{
: sensitivity,
: specificity,
: ppv,
: npv
}
() -> :
evidence = likelihood_given_disease * prior + \
likelihood_given_no_disease * ( - prior)
(likelihood_given_disease * prior) / evidence
cross = MendelianGenetics()
offspring = cross.predict_offspring(, )
()
hw = PopulationGenetics()
frequencies = hw.hardy_weinberg()
()