Geneimpacts
prioritize effects of variant annotations from VEP, SnpEff, et al.
Install / Use
/learn @brentp/GeneimpactsREADME
Given multiple snpEff or VEP or BCFTools consequence annotations for a single variant, get an orderable python object for each annotation.
This is to provide a consistent interface to different variant annotations such as from snpEff ANN field and the VEP CSQ field. and the BCFTools consequence field
This will be used in gemini but should also be of general utility.
Design
There is an effect base-class and then a sub-class for snpEff, one for VEP, and one for BCFT
Effect objects are orderable (via __le__ ) and should have an __eq__ method so that we can use functools.total_ordering to provide the other comparison operators.
Given 2 effects objects, a and b: a < b == True iff the severity of b is greater than a.
We will have a classmethod: `Effect.top_severity([eff1, ... effn]) that will return the single highest severity if that exists or a list of the ties for highest
Rules for severity:
Given 2 annotations, a and b a is more severe than b if:
- b is a pseudogene and a is not
- a is coding and b is not
- a has higher severity than b ( see below)
- polyphen, then sift
- ??? transcript length? (we dont have access to this).
severity
Severity is based on the impacts from VEP and the impacts from snpEff. We reduce from the 4 categories HIGH, MODERATE, LOW, MODIFIER to 3 by renaming MODERATE to MED and renaming MODIFIER to LOW.
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
