NutriGx Advisor
by @manuelcorpas
Generates a personalized nutrition report from consumer genetic data analyzing key SNPs to provide actionable dietary and supplementation guidance.
clawhub install nutrigx-advisorπ About This Skill
NutriGx Advisor β Personalised Nutrition from Genetic Data
Skill ID: nutrigx-advisor
Version: 0.1.0
Status: MVP
Author: David de Lorenzo (ClawBio Community)
Requires: Python 3.11+, pandas, numpy, matplotlib, seaborn, reportlab (optional)
What This Skill Does
The NutriGx Advisor generates a personalised nutrition report from consumer genetic data (23andMe, AncestryDNA raw files or VCF). It interrogates a curated set of nutritionally-relevant SNPs drawn from GWAS Catalog, ClinVar, and peer-reviewed nutrigenomics literature, then translates genotype calls into actionable dietary and supplementation guidance β all computed locally.
Key outputs
commands.sh, environment.yml, SHA-256 checksums)Trigger Phrases
The Bio Orchestrator should route to this skill when the user says anything like:
.txt or .csv (23andMe), .csv (AncestryDNA), .vcfCurated SNP Panel
Macronutrient Metabolism
| Gene | SNP | Nutrient Impact | Evidence | |---------|------------|------------------------------------------|----------| | FTO | rs9939609 | Energy balance, fat mass, carb sensitivity | Strong (GWAS) | | PPARG | rs1801282 | Fat metabolism, insulin sensitivity | Moderate | | APOA5 | rs662799 | Triglyceride response to dietary fat | Strong | | TCF7L2 | rs7903146 | Carbohydrate metabolism, T2D risk | Strong | | ADRB2 | rs1042713 | Fat oxidation, exercise Γ diet interaction | Moderate |
Micronutrient Metabolism
| Gene | SNP | Nutrient | Effect of risk allele | |---------|------------|-------------------------|----------------------------------| | MTHFR | rs1801133 | Folate / B12 | β 5-MTHF conversion (~70%) | | MTHFR | rs1801131 | Folate / B12 | β enzyme activity (~30%) | | MTR | rs1805087 | B12 / homocysteine | β homocysteine risk | | BCMO1 | rs7501331 | Beta-carotene β Vitamin A | β conversion (~50%) | | BCMO1 | rs12934922 | Beta-carotene β Vitamin A | β conversion (compound het) | | VDR | rs2228570 | Vitamin D absorption | β VDR function | | VDR | rs731236 | Vitamin D | β bone mineral density response | | GC | rs4588 | Vitamin D binding | β deficiency risk | | SLC23A1 | rs33972313 | Vitamin C transport | β renal reabsorption | | ALPL | rs1256335 | Vitamin B6 | β alkaline phosphatase activity |
Omega-3 / Fatty Acid Metabolism
| Gene | SNP | Nutrient | Effect | |---------|------------|----------------------|---------------------------------| | FADS1 | rs174546 | LC-PUFA synthesis | β/β EPA/DHA from ALA | | FADS2 | rs1535 | LC-PUFA synthesis | Modulates omega-6:omega-3 ratio | | ELOVL2 | rs953413 | DHA synthesis | β elongation of EPAβDHA | | APOE | rs429358 | Saturated fat response | Ξ΅4 β β LDL-C on high SFA diet | | APOE | rs7412 | Saturated fat response | Combined with rs429358 for Ξ΅ typing |
Caffeine & Alcohol
| Gene | SNP | Compound | Effect | |---------|------------|-------------|--------------------------------| | CYP1A2 | rs762551 | Caffeine | Slow/Fast metaboliser | | AHR | rs4410790 | Caffeine | Modulates CYP1A2 induction | | ADH1B | rs1229984 | Alcohol | Acetaldehyde accumulation risk | | ALDH2 | rs671 | Alcohol | Asian flush / toxicity risk |
Food Sensitivities
| Gene | SNP | Sensitivity | Effect | |---------|------------|----------------------|---------------------------------| | MCM6 | rs4988235 | Lactose intolerance | Non-persistence of lactase | | HLA-DQ2 | Proxy SNPs | Coeliac / gluten | HLA-DQA1/DQB1 risk haplotypes |
Antioxidant & Detoxification
| Gene | SNP | Pathway | Effect | |---------|------------|----------------------|---------------------------------| | SOD2 | rs4880 | Manganese SOD | β mitochondrial antioxidant | | GPX1 | rs1050450 | Selenium / GSH-Px | β glutathione peroxidase | | GSTT1 | Deletion | Glutathione-S-trans | Null genotype β β oxidative risk| | NQO1 | rs1800566 | Coenzyme Q10 | β CoQ10 regeneration | | COMT | rs4680 | Catechol / B vitamins | Met/Val β methylation load |
Algorithm
1. Input Parsing (parse_input.py)
Accepts:
.txt or .csv (tab-separated: rsid, chromosome, position, genotype).csvAuto-detects format from header lines. Normalises alleles to forward strand using a hard-coded reference table (avoids requiring external databases).
2. Genotype Extraction (extract_genotypes.py)
For each SNP in the panel:
1. Look up rsid in parsed data
2. Return genotype string (e.g. "AT", "TT", "AA")
3. Flag as "NOT_TESTED" if absent (common for chip-to-chip variation)
3. Risk Scoring (score_variants.py)
Each SNP is scored on a 0 / 0.5 / 1.0 scale:
0.0 β homozygous reference (lowest risk)0.5 β heterozygous1.0 β homozygous risk alleleComposite Nutrient Risk Scores (0β10) are computed per nutrient domain by summing weighted SNP scores. Weights are derived from reported effect sizes (beta coefficients or OR) in the primary literature.
Risk categories:
> Important caveat: These are polygenic risk indicators based on common > variants. They are not diagnostic. Rare pathogenic variants (e.g. MTHFR > compound heterozygosity with high homocysteine) require clinical confirmation.
4. Report Generation (generate_report.py)
Outputs a structured Markdown report with:
5. Reproducibility Bundle (repro_bundle.py)
Exports to the output directory (not committed to the repo):
commands.sh β full CLI to reproduce analysisenvironment.yml β pinned conda environmentchecksums.txt β SHA-256 checksums of input and output filesprovenance.json β timestamp and ClawBio version tagUsage
# From 23andMe raw data
openclaw "Generate my personalised nutrition report from genome.csv"From VCF
openclaw "Run NutriGx analysis on variants.vcf and flag any folate pathway risks"Targeted query
openclaw "What does my APOE status mean for my saturated fat intake?"Generate a random demo patient and run the report
python examples/generate_patient.py --run
File Structure
skills/nutrigx-advisor/
βββ SKILL.md β this file (agent instructions)
βββ nutrigx_advisor.py β main entry point
βββ parse_input.py β multi-format parser
βββ extract_genotypes.py β SNP lookup engine
βββ score_variants.py β risk scoring algorithm
βββ generate_report.py β Markdown + figures
βββ repro_bundle.py β reproducibility export
βββ .gitignore
βββ data/
β βββ snp_panel.json β curated SNP definitions
βββ tests/
β βββ synthetic_patient.csv β fixed 23andMe-format test data (for pytest)
β βββ test_nutrigx.py β pytest suite
βββ examples/
βββ generate_patient.py β random patient generator (demo use)
βββ data/ β generated patient files land here (gitignored)
βββ output/
βββ nutrigx_report.md β pre-rendered demo report
βββ nutrigx_radar.png β demo radar chart (nutrient risk profile)
βββ nutrigx_heatmap.png β demo gene Γ nutrient heatmap
> Note: Runtime output directories and randomly generated patient files are
> excluded from version control via .gitignore. Only the pre-rendered demo
> report in examples/output/ is committed.
Privacy
All computation runs locally. No genetic data is transmitted. Input files are read-only; no raw genotype data appears in any output file (reports contain only gene names, SNP IDs, and risk categories).
Limitations & Disclaimer
1. Not a medical device. This skill provides educational, research-oriented nutrigenomics analysis. It does not constitute medical advice. 2. Common variants only. The panel covers SNPs with MAF > 1% in at least one major population. Rare pathogenic variants are out of scope. 3. Population context. Effect sizes are predominantly derived from European GWAS cohorts. Risk estimates may not generalise equally across all ancestries. 4. Geneβenvironment interaction. Genetic risk scores interact with baseline diet, lifestyle, microbiome, and epigenetic state. A "high risk" score does not mean a nutrient deficiency is present β it means the individual may benefit from monitoring. 5. Simpson's Paradox note. Population-level associations used to derive weights may not reflect individual trajectories (see Corpas 2025, *Nutrigenomics and the Ecological Fallacy*).
Roadmap
References
Key literature underpinning the SNP panel and scoring algorithm:
Contributing
The SNP panel (data/snp_panel.json) is maintained by the skill author.
To suggest additions or corrections, contact David de Lorenzo directly via
GitHub (@drdaviddelorenzo) or open
an issue tagging him in the main ClawBio repository.
π‘ Examples
# From 23andMe raw data
openclaw "Generate my personalised nutrition report from genome.csv"From VCF
openclaw "Run NutriGx analysis on variants.vcf and flag any folate pathway risks"Targeted query
openclaw "What does my APOE status mean for my saturated fat intake?"Generate a random demo patient and run the report
python examples/generate_patient.py --run