一键导入
variant-analysis
Parse VCF files and count variants by FILTER status. Use when users ask about VCF file parsing, variant counting, or PASS/FAIL filter statistics.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Parse VCF files and count variants by FILTER status. Use when users ask about VCF file parsing, variant counting, or PASS/FAIL filter statistics.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Interact with research artifacts running in separate Docker containers via artifact-runner. Execute commands through HTTP API, read files, and verify artifact functionality.
Evaluate research artifacts running in separate Docker containers via artifact-runner. Access artifacts through HTTP API, execute commands, read files, and analyze PDFs.
Interact with artifact containers via HTTP API for paper evaluation tasks. Execute commands, read files, and list directories in remote artifact environments.
Evaluate research artifacts against NDSS badge criteria (Available, Functional, Reproduced) by checking DOI, documentation, exercisability, and reproducibility requirements.
Extract text, tables, and structured information from PDF documents using pdfplumber, PyPDF2, or pdftotext command-line tools.
Calculate protein dihedral angle (phi/psi) from atomic coordinates using the torsion formula. Use when computing backbone dihedral angles from atomic positions or validating protein geometry.
| name | variant-analysis |
| description | Parse VCF files and count variants by FILTER status. Use when users ask about VCF file parsing, variant counting, or PASS/FAIL filter statistics. |
VCF (Variant Call Format) is a standard file format for storing genetic variant data. This skill covers parsing VCF files and counting variants by their FILTER status.
VCF files have:
#FILTER column:
PASS — variant passed all filters. (dot/missing) — no filter applied, treated as PASSLowQual, mapq) — variant failed the filter# Parse VCF file line by line
with open("/root/input.vcf") as f:
for line in f:
if line.startswith("#"):
continue # Skip header
fields = line.strip().split("\t")
chrom = fields[0]
pos = fields[1]
ref = fields[2]
alt = fields[3]
qual = fields[4]
filt = fields[5] # FILTER column
info = fields[6] # INFO column
total = 0
passed = 0
failed = 0
with open("/root/input.vcf") as f:
for line in f:
if line.startswith("#"):
continue
fields = line.strip().split("\t")
filt = fields[5] # FILTER column
total += 1
if filt == "PASS" or filt == ".":
passed += 1
else:
failed += 1
print(f"Total variants: {total}")
print(f"Passed variants: {passed}")
print(f"Failed variants: {failed}")
PASS or . (missing/empty)LowQual, mapq<20)PASS and . are equivalent — both mean the variant passed filtering# should not be counted as variantsimport vcf
reader = vcf.VCFReader(filename="/root/input.vcf")
records = list(reader)
total = len(records)
passed = sum(1 for r in records if r.FILTER is None or r.FILTER == "PASS")
failed = total - passed
# — skip these. (missing) means no filter applied — treated as PASS