Myome Logo
Myome Technical Series - Part 7

Hereditary Health Artifacts

Multi-Generational Health Transfer and Family-Calibrated Risk

Joe Scanlin

November 2025

About This Section

This section introduces one of Myome's most novel contributions: hereditary health artifacts—comprehensive, structured health records designed for multi-generational transfer. You'll learn about the five-layer artifact structure, Bayesian genetic risk propagation models that use family outcomes to refine risk predictions, and the open-source toolkit for creating and consuming these artifacts.

7. Hereditary Health Artifacts

One of Myome's most profound and novel contributions is the creation of hereditary health artifacts—comprehensive, structured health records designed for multi-generational transfer. These artifacts transform vague family health histories ("Grandpa had heart problems") into precise, actionable health intelligence that descendants can leverage for decades.

7.1 The Problem with Traditional Family Health Histories

Current approaches to family health history suffer from critical limitations:

Information Loss

Each generation loses ~70% of detailed health information through verbal transmission alone. Critical details like age of onset, biomarker trajectories, and treatment responses are forgotten.

Lack of Context

Statements like "high cholesterol" lack context—what value? At what age? How did it trend? What interventions were attempted?

No Phenotype Data

Traditional pedigrees capture diagnosis timing but miss the rich phenotypic data that explains how genetic risk manifested and what modified it.

Environmental Blindness

Occupational exposures, pollution levels, lifestyle factors—all critical modifiers of genetic risk—are rarely documented.

7.2 Hereditary Artifact Architecture

Myome's hereditary health artifacts are structured as immutable, cryptographically-signed data packages that contain:

Hereditary Health Artifact Structure HEREDITARY HEALTH ARTIFACT 1. Core Identity & Metadata • Individual ID (hashed) • Birth year • Sex • Ethnicity • Data collection period • Artifact creation date • Digital signature • Access permissions 2. Genomic Foundation • Complete genome sequence (VCF format) • Pathogenic variants (ClinVar annotations) • Polygenic risk scores (PRS) for major diseases • Pharmacogenomic markers 3. Longitudinal Biomarker Trajectories • Time-series: glucose, lipids, blood pressure, HRV, VO₂ max, body composition • Statistical summaries: mean, variance, trends, change-points, age-matched percentiles 4. Disease Onset & Progression • Diagnosis dates and ages • Pre-clinical biomarker patterns (6-24 months pre-diagnosis) • Treatment history and responses • Disease progression trajectories 5. Environmental Exposures & Lifestyle • Occupational exposures • Smoking/alcohol history • Exercise patterns • Diet quality • Sleep data • Stress biomarkers • Geographic residence history (pollution exposure)
Figure 2: Hierarchical structure of a Myome hereditary health artifact, containing five layers of health data designed for multi-generational transfer.

7.3 Artifact Generation and Curation

Hereditary artifacts are not simply data dumps—they are carefully curated, privacy-aware packages generated through a multi-stage process:

Algorithm 3: Hereditary Artifact Generation

Input: Individual's complete health record \(\mathcal{H}\), privacy preferences \(\mathcal{P}\), intended recipients \(\mathcal{R}\)

Output: Hereditary artifact \(\mathcal{A}\) with cryptographic signature

1. Data Selection:

a. Extract core datasets: \(\mathcal{D}_{\text{genome}}, \mathcal{D}_{\text{biomarkers}}, \mathcal{D}_{\text{diseases}}, \mathcal{D}_{\text{environment}}\)

b. Apply privacy filters based on \(\mathcal{P}\) (e.g., exclude mental health if specified)

2. Statistical Summarization:

a. For each biomarker time series \(B(t)\), compute:

• Lifetime trajectory: \(\{\text{age}_i, \text{mean}(B), \text{std}(B), \text{percentile}(B)\}_i\)

• Change-points: \(\{t_j : |\Delta B(t_j)| > \theta\}\) (disease-related shifts)

• Age-matched z-scores: \(z(B, \text{age}) = \frac{B - \mu_{\text{pop}}(\text{age})}{\sigma_{\text{pop}}(\text{age})}\)

3. Pre-clinical Pattern Extraction:

For each diagnosed disease \(D\) at age \(a_D\):

• Extract biomarkers \([a_D - 24\text{mo}, a_D]\) (pre-clinical window)

• Compute deviation from baseline: \(\Delta B_{\text{pre}}(t) = B(t) - \text{baseline}(B)\)

4. Genetic Risk Integration:

a. Annotate pathogenic variants with penetrance data

b. Compute updated PRS based on observed outcomes (Bayesian updating)

c. Generate genotype-phenotype associations: \(\{(g_i, p_i, \text{effect size})\}\)

5. Encryption & Signing:

a. Serialize artifact to JSON schema

b. Encrypt with recipient public keys: \(\mathcal{A}_{\text{enc}} = \text{Encrypt}(\mathcal{A}, \{\text{pubkey}_r : r \in \mathcal{R}\})\)

c. Generate digital signature: \(\sigma = \text{Sign}(\text{hash}(\mathcal{A}), \text{privkey}_{\text{donor}})\)

6. Return \((\mathcal{A}_{\text{enc}}, \sigma, \text{metadata})\)

This algorithm ensures that artifacts are both comprehensive and privacy-preserving, containing only information the donor explicitly consents to share.

7.4 Data Schema and Implementation

Hereditary artifacts use a standardized JSON schema for interoperability and long-term readability:

{
              "artifact_version": "1.0.0",
              "artifact_id": "ha_abc123...",
              "created_at": "2025-01-15T00:00:00Z",
              "signature": "0x...",

              "donor": {
                "id_hash": "sha256:...",
                "birth_year": 1970,
                "sex": "M",
                "ethnicity": ["European", "East Asian"],
                "data_collection_period": {
                  "start": "2020-01-01",
                  "end": "2045-12-31"
                }
              },

              "genomic_data": {
                "vcf_url": "ipfs://Qm...",
                "vcf_hash": "sha256:...",
                "pathogenic_variants": [
                  {
                    "gene": "APOE",
                    "variant": "rs429358",
                    "zygosity": "heterozygous",
                    "alleles": ["C", "T"],
                    "interpretation": "APOE-ε3/ε4",
                    "associated_conditions": ["Alzheimer's disease"],
                    "risk_increase": 3.0,
                    "observed_penetrance": null
                  },
                  {
                    "gene": "LDLR",
                    "variant": "rs688",
                    "zygosity": "heterozygous",
                    "interpretation": "Familial hypercholesterolemia carrier",
                    "associated_conditions": ["Hypercholesterolemia", "CAD"],
                    "risk_increase": 2.5,
                    "observed_penetrance": 1.0,
                    "notes": "LDL >190 mg/dL by age 35, statin therapy age 40"
                  }
                ],
                "polygenic_risk_scores": {
                  "coronary_artery_disease": {
                    "score": 1.84,
                    "percentile": 92,
                    "interpretation": "High genetic risk",
                    "observed_outcome": "MI at age 58"
                  },
                  "type_2_diabetes": {
                    "score": 0.76,
                    "percentile": 38,
                    "interpretation": "Below average genetic risk",
                    "observed_outcome": "No diagnosis through age 75"
                  }
                },
                "pharmacogenomics": {
                  "CYP2C9": "*1/*3",
                  "VKORC1": "GG",
                  "warfarin_dosing": "Reduced dose required (3mg/day)",
                  "clopidogrel_response": "Normal metabolizer"
                }
              },

              "biomarker_trajectories": {
                "ldl_cholesterol": {
                  "unit": "mg/dL",
                  "measurement_frequency": "annual",
                  "data_points": 40,
                  "summary_statistics": {
                    "age_20_30": {"mean": 115, "std": 12, "percentile": 45},
                    "age_30_40": {"mean": 145, "std": 18, "percentile": 75},
                    "age_40_50": {"mean": 178, "std": 22, "percentile": 88},
                    "age_50_60": {"mean": 142, "std": 15, "percentile": 62},
                    "age_60_70": {"mean": 128, "std": 14, "percentile": 48}
                  },
                  "changepoints": [
                    {
                      "age": 35,
                      "before": 148,
                      "after": 180,
                      "event": "Untreated elevation",
                      "clinical_significance": "Exceeded treatment threshold"
                    },
                    {
                      "age": 40,
                      "before": 185,
                      "after": 142,
                      "event": "Statin initiation (atorvastatin 40mg)",
                      "clinical_significance": "23% reduction achieved"
                    }
                  ],
                  "trajectory_url": "ipfs://Qm..."
                },
                "vo2_max": {
                  "unit": "mL/kg/min",
                  "measurement_frequency": "quarterly",
                  "data_points": 120,
                  "summary_statistics": {
                    "age_20_30": {"mean": 52, "std": 4, "percentile": 85},
                    "age_30_40": {"mean": 48, "std": 5, "percentile": 75},
                    "age_40_50": {"mean": 42, "std": 4, "percentile": 65},
                    "age_50_60": {"mean": 38, "std": 3, "percentile": 60},
                    "age_60_70": {"mean": 35, "std": 3, "percentile": 65}
                  },
                  "notes": "Consistent exercise maintained above-average fitness despite age-related decline"
                }
              },

              "disease_events": [
                {
                  "condition": "Myocardial Infarction",
                  "icd10": "I21.9",
                  "onset_age": 58,
                  "onset_date": "2028-03-15",
                  "severity": "moderate",
                  "pre_clinical_biomarkers": {
                    "timeline_months_before": [-24, -18, -12, -6, -3, -1],
                    "hscrp": [1.2, 1.8, 2.4, 3.1, 4.2, 6.8],
                    "ldl": [142, 148, 156, 162, 171, 178],
                    "hrv_sdnn": [58, 54, 51, 48, 42, 38],
                    "resting_hr": [62, 64, 66, 68, 72, 78]
                  },
                  "genetic_context": {
                    "prs_cad": 1.84,
                    "relevant_variants": ["LDLR rs688", "APOB rs1367117"]
                  },
                  "treatment": {
                    "acute": "PCI with stent placement",
                    "chronic": ["atorvastatin 80mg", "aspirin 81mg", "metoprolol 50mg"],
                    "outcome": "Full recovery, no subsequent events through age 75"
                  },
                  "lessons_for_descendants": [
                    "Early statin therapy (by age 30-35) may have prevented or delayed event",
                    "HRV decline preceded event by 18-24 months—useful early warning signal",
                    "Regular exercise and diet modification at age 45 improved outcomes"
                  ]
                }
              ],

              "environmental_lifestyle": {
                "smoking": {
                  "status": "former",
                  "pack_years": 5,
                  "quit_age": 32
                },
                "alcohol": {
                  "average_drinks_per_week": 4,
                  "pattern": "social, moderate"
                },
                "exercise": {
                  "pattern": "consistent",
                  "average_weekly_minutes": {
                    "age_20_40": 240,
                    "age_40_60": 180,
                    "age_60_plus": 150
                  },
                  "primary_activities": ["running", "cycling", "resistance training"]
                },
                "diet": {
                  "pattern": "Mediterranean-style",
                  "notes": "Adopted age 45 post-MI, maintained long-term"
                },
                "occupation": {
                  "primary": "Software engineer",
                  "exposures": ["sedentary", "low physical hazard"],
                  "years": 40
                },
                "geographic_history": [
                  {
                    "location": "San Francisco, CA",
                    "years": "1990-2010",
                    "avg_pm25": 12.4,
                    "avg_aqi": 45
                  },
                  {
                    "location": "Seattle, WA",
                    "years": "2010-2045",
                    "avg_pm25": 8.2,
                    "avg_aqi": 38
                  }
                ]
              },

              "interpretation_for_descendants": {
                "key_findings": [
                  "High genetic risk for CAD (PRS 92nd percentile) materialized at age 58",
                  "LDL >140 by age 30 was early warning sign—descendants should monitor from age 25",
                  "Statin therapy effective—23% LDL reduction, no side effects",
                  "Exercise and diet modification at age 45 likely extended healthspan",
                  "HRV monitoring provided 18-month early warning before MI"
                ],
                "recommendations_for_carriers": [
                  "Obtain lipid panel by age 25, repeat annually if LDL >130",
                  "Consider early statin therapy (age 30-35) if LDL >150 despite lifestyle",
                  "Prioritize cardiovascular exercise (target VO₂ max >40 throughout life)",
                  "Adopt Mediterranean diet by age 30",
                  "Monitor HRV—sustained decline warrants cardiac workup",
                  "Coronary calcium scan at age 45 to assess atherosclerosis burden"
                ]
              },

              "privacy_settings": {
                "excluded_data": ["mental_health_diagnoses", "substance_use_details"],
                "recipient_access": {
                  "descendants_direct": "full",
                  "descendants_indirect": "summary_only",
                  "researchers": "anonymized_aggregate"
                }
              }
            }
            

7.5 Genetic Risk Propagation Models

A key innovation in hereditary artifacts is the Bayesian genetic risk propagation model—using observed health outcomes in ancestors to refine risk predictions for descendants.

Traditional polygenic risk scores (PRS) are computed from genome-wide association studies (GWAS) and provide population-level risk. However, they don't account for family-specific risk modifiers or penetrance variations. Myome updates these risks using family outcomes:

Bayesian PRS Update:

\[ P(\text{disease} \mid \text{PRS}_{\text{child}}, \mathcal{F}) = \frac{P(\mathcal{F} \mid \text{disease}, \text{PRS}_{\text{child}}) \cdot P(\text{disease} \mid \text{PRS}_{\text{child}})}{P(\mathcal{F})} \] (17)

Where \(\mathcal{F}\) represents family health outcomes (e.g., "father and grandfather both had MI before age 60 despite moderate PRS").

The likelihood term \(P(\mathcal{F} \mid \text{disease}, \text{PRS})\) is estimated from the family artifact database:

\[ P(\mathcal{F} \mid \text{disease}) \propto \prod_{i \in \text{ancestors}} P(\text{outcome}_i \mid \text{PRS}_i, \text{shared genetics}) \] (18)

This allows us to compute family-calibrated risk scores that are far more accurate than population PRS alone:

import numpy as np
            from scipy import stats

            class FamilyCalibratedRisk:
                """Compute family-calibrated disease risk using hereditary artifacts"""

                def __init__(self, population_prs_model):
                    self.prs_model = population_prs_model

                def compute_family_risk(self, child_genotype, family_artifacts):
                    """
                    Compute Bayesian updated risk given family health outcomes

                    Args:
                        child_genotype: Child's genetic variants
                        family_artifacts: List of hereditary artifacts from parents/grandparents

                    Returns:
                        Updated risk probability and confidence interval
                    """
                    # Base population risk from PRS
                    population_risk = self.prs_model.predict_risk(child_genotype)

                    # Extract family outcomes
                    family_outcomes = self.extract_family_outcomes(family_artifacts)

                    # Compute family likelihood
                    family_likelihood = self.compute_family_likelihood(
                        family_outcomes,
                        child_genotype
                    )

                    # Bayesian update
                    posterior_risk = self.bayesian_update(
                        prior=population_risk,
                        likelihood=family_likelihood
                    )

                    return posterior_risk

                def extract_family_outcomes(self, artifacts):
                    """Extract disease outcomes and ages from family artifacts"""
                    outcomes = []

                    for artifact in artifacts:
                        for disease_event in artifact['disease_events']:
                            outcomes.append({
                                'condition': disease_event['condition'],
                                'onset_age': disease_event['onset_age'],
                                'prs': artifact['genomic_data']['polygenic_risk_scores'].get(
                                    self.condition_to_prs_key(disease_event['condition'])
                                ),
                                'relatedness': artifact['relatedness'],  # 0.5 for parent, 0.25 for grandparent
                                'genetic_variants': artifact['genomic_data']['pathogenic_variants']
                            })

                    return outcomes

                def compute_family_likelihood(self, family_outcomes, child_genotype):
                    """
                    Compute likelihood of family outcomes given child's genetics

                    Uses principle: if close relatives with similar genetics had early disease,
                    child's risk is higher than population PRS suggests
                    """
                    # Count affected relatives weighted by relatedness
                    weighted_affected = 0
                    weighted_unaffected = 0

                    for outcome in family_outcomes:
                        weight = outcome['relatedness']
                        genetic_similarity = self.compute_genetic_similarity(
                            child_genotype,
                            outcome['genetic_variants']
                        )

                        if outcome['condition'] == self.target_disease:
                            # Early onset increases risk more
                            age_factor = self.age_adjustment(outcome['onset_age'])
                            weighted_affected += weight * genetic_similarity * age_factor
                        else:
                            # Relative avoided disease despite genetic risk
                            if outcome.get('prs', {}).get('score', 0) > 1.0:  # High PRS but no disease
                                weighted_unaffected += weight * genetic_similarity

                    # Likelihood ratio
                    if weighted_unaffected > 0:
                        likelihood_ratio = (weighted_affected + 1) / (weighted_unaffected + 1)
                    else:
                        likelihood_ratio = weighted_affected + 1

                    return likelihood_ratio

                def compute_genetic_similarity(self, child_genotype, ancestor_variants):
                    """
                    Compute proportion of high-risk variants shared between child and ancestor
                    """
                    shared_variants = 0
                    total_variants = len(ancestor_variants)

                    for variant in ancestor_variants:
                        if self.child_has_variant(child_genotype, variant):
                            shared_variants += 1

                    return shared_variants / total_variants if total_variants > 0 else 0.5

                def age_adjustment(self, onset_age):
                    """
                    Early onset increases risk signal more than late onset
                    Scale: age 40 → 2.0x, age 60 → 1.0x, age 80 → 0.5x
                    """
                    return np.exp((60 - onset_age) / 20)

                def bayesian_update(self, prior, likelihood):
                    """
                    Update prior risk with family likelihood

                    Uses Beta distribution for conjugate updating
                    """
                    # Model risk as Beta distribution
                    # Convert prior probability to Beta parameters
                    alpha_prior = prior * 100  # Scale for numerical stability
                    beta_prior = (1 - prior) * 100

                    # Update with family likelihood (treat as pseudo-observations)
                    alpha_posterior = alpha_prior + likelihood * 10
                    beta_posterior = beta_prior + (1 / likelihood) * 10

                    # Posterior mean
                    posterior_mean = alpha_posterior / (alpha_posterior + beta_posterior)

                    # 95% credible interval
                    credible_interval = (
                        stats.beta.ppf(0.025, alpha_posterior, beta_posterior),
                        stats.beta.ppf(0.975, alpha_posterior, beta_posterior)
                    )

                    return {
                        'risk': posterior_mean,
                        'ci_lower': credible_interval[0],
                        'ci_upper': credible_interval[1],
                        'risk_increase_factor': posterior_mean / prior
                    }


            # Example usage
            child_genotype = load_genotype("child_genome.vcf")
            family_artifacts = [
                load_artifact("grandfather.json"),
                load_artifact("grandmother.json"),
                load_artifact("father.json"),
                load_artifact("mother.json")
            ]

            risk_calculator = FamilyCalibratedRisk(population_prs_model)
            cad_risk = risk_calculator.compute_family_risk(
                child_genotype,
                family_artifacts
            )

            print(f"Population PRS risk: 15%")
            print(f"Family-calibrated risk: {cad_risk['risk']*100:.1f}%")
            print(f"95% CI: [{cad_risk['ci_lower']*100:.1f}%, {cad_risk['ci_upper']*100:.1f}%]")
            print(f"Risk increase factor: {cad_risk['risk_increase_factor']:.2f}x")
            

7.6 Multi-Generational Health Visualization

Myome provides interactive visualizations that allow descendants to explore family health patterns across generations:

Three-Generation Cardiovascular Health Timeline Age 20 Age 40 Age 60 Age 80 Age 100 Grandfather Father Son LDL MI age 66 Statin LDL Early Rx age 35 No cardiac events LDL Current age 38 Projected with early intervention Risk without intervention (age ~60) Genetic Context • APOE-ε3/ε4 (all) • LDLR variant (all) • PRS CAD: 92nd %ile Grandfather: No early Rx Father: Statin age 35 Son: Statin age 32 + lifestyle Key Insight Early intervention at age 32-35 (vs. age 66) may prevent/delay MI by 20-30 years based on family data. HRV monitoring provides 18-24 month early warning.
Figure 3: Multi-generational cardiovascular health timeline showing how family data informs risk prediction and intervention timing. Each generation's genetic similarity enables precise forecasting of disease risk and optimal treatment windows.

7.7 Genotype-Phenotype Mapping Across Generations

The true power of hereditary artifacts emerges when genotype and phenotype are mapped across multiple generations. This creates a family-specific understanding of how genetic variants manifest under different environmental and lifestyle contexts.

Consider the APOE gene example—a major determinant of Alzheimer's disease risk. The ε4 allele increases risk 3-fold (heterozygous) or 12-fold (homozygous), but penetrance varies dramatically based on lifestyle factors:

Factor Effect on APOE-ε4 Risk Hazard Ratio Evidence Level
High education (>16 years) Protective (cognitive reserve) 0.67 Meta-analysis, n=42,000
Mediterranean diet Protective 0.71 RCT, n=7,447
Regular exercise (>150 min/wk) Protective 0.58 Cohort, n=1,600
Poor sleep (<6h nightly) Risk-enhancing 1.42 Cohort, n=2,600
Type 2 diabetes Risk-enhancing 1.86 Meta-analysis, n=28,000
Cardiovascular disease Risk-enhancing 2.1 Cohort, n=15,000

If three generations of a family carry APOE-ε4 and track their health through Myome, descendants gain unprecedented insights:

Multi-Generational APOE-ε4 Case Study

Grandfather (b. 1940, ε3/ε4):

  • High school education, sedentary office work, poor diet
  • Type 2 diabetes onset age 58, poorly controlled (HbA1c 8.5-9.2%)
  • Mild cognitive impairment age 72, Alzheimer's diagnosis age 76
  • GrimAge acceleration: +8 years by age 70

Father (b. 1965, ε3/ε4):

  • College education, adopted Mediterranean diet age 45, regular exercise
  • No diabetes (maintained HbA1c <5.7%), normal cardiovascular health
  • Cognitive testing through age 60: no decline, remains above baseline
  • GrimAge acceleration: +2 years by age 60 (improved from +5 at age 50 via lifestyle)

Son (b. 1995, ε3/ε4):

  • Graduate education, Mediterranean diet from age 25, exercise 5x/week
  • Proactive glucose monitoring (CGM), HbA1c 5.1%, excellent metabolic health
  • Sleep optimization (7.5-8h nightly), stress management, HRV tracking
  • GrimAge acceleration: -2 years (biological age younger than chronological)
  • Projected outcome: 65% reduction in Alzheimer's risk vs. grandfather based on cumulative protective factors

The hereditary artifact quantifies this risk reduction mathematically:

Multi-Factor Risk Reduction:

\[ \text{HR}_{\text{combined}} = \text{HR}_{\text{base}} \times \prod_{i} \text{HR}_i \] (19)
\[ \text{HR}_{\text{son}} = 3.0 \times 0.67 \times 0.71 \times 0.58 \times \frac{1}{1.42} \times \frac{1}{1.86} = 0.62 \] (20)

Meaning the son's cumulative risk (0.62x) is lower than baseline despite carrying APOE-ε4, due to comprehensive protective lifestyle factors documented and validated across family generations.

7.8 Open-Source Implementation Toolkit

To make hereditary health artifacts practical and accessible, Myome provides a complete open-source toolkit:

Core Libraries

# Install Myome hereditary artifact toolkit
            pip install myome-hereditary

            # Or build from source
            git clone https://github.com/myome/myome-hereditary.git
            cd myome-hereditary
            pip install -e .
            

Artifact Generation Example

from myome_hereditary import ArtifactGenerator, PrivacySettings

            # Initialize generator
            generator = ArtifactGenerator(
                donor_health_record="path/to/myome_database.db",
                genome_file="path/to/genome.vcf"
            )

            # Configure privacy settings
            privacy = PrivacySettings(
                exclude_categories=['mental_health', 'reproductive_health'],
                anonymize_location=True,
                include_interpretations=True
            )

            # Specify recipients (public key encryption)
            recipients = [
                {'name': 'Son', 'pubkey': load_pubkey('son_pubkey.pem')},
                {'name': 'Daughter', 'pubkey': load_pubkey('daughter_pubkey.pem')}
            ]

            # Generate artifact
            artifact = generator.create_artifact(
                privacy_settings=privacy,
                recipients=recipients,
                include_longitudinal_data=True,
                years_of_data=(2020, 2025)
            )

            # Save encrypted artifact
            artifact.save('hereditary_artifact.json.enc')

            # Generate human-readable summary
            artifact.generate_summary_pdf('artifact_summary.pdf')

            print(f"Artifact created: {artifact.artifact_id}")
            print(f"Size: {artifact.size_mb:.2f} MB")
            print(f"Data points: {artifact.total_measurements:,}")
            print(f"Covered period: {artifact.years_covered} years")
            

Artifact Consumption Example

from myome_hereditary import ArtifactReader, FamilyRiskAnalyzer

            # Load family artifacts
            grandfather_artifact = ArtifactReader.load(
                'grandfather_artifact.json.enc',
                private_key='my_private_key.pem'
            )

            father_artifact = ArtifactReader.load(
                'father_artifact.json.enc',
                private_key='my_private_key.pem'
            )

            # Analyze family patterns
            analyzer = FamilyRiskAnalyzer(
                my_genome='my_genome.vcf',
                family_artifacts=[grandfather_artifact, father_artifact]
            )

            # Compute family-calibrated risks
            cad_risk = analyzer.compute_risk('coronary_artery_disease')
            print(f"Population PRS risk: {cad_risk.population_risk*100:.1f}%")
            print(f"Family-calibrated risk: {cad_risk.family_calibrated_risk*100:.1f}%")
            print(f"Risk increase factor: {cad_risk.risk_factor:.2f}x")

            # Get actionable recommendations
            recommendations = analyzer.get_recommendations('coronary_artery_disease')
            for rec in recommendations:
                print(f"\n{rec.category}:")
                print(f"  Action: {rec.action}")
                print(f"  Evidence: {rec.evidence_source}")
                print(f"  Expected benefit: {rec.risk_reduction*100:.0f}% risk reduction")
                print(f"  Start by age: {rec.recommended_age}")

            # Visualize family trajectories
            analyzer.plot_family_biomarker_trajectory(
                biomarker='ldl_cholesterol',
                save_path='family_ldl_trajectory.png'
            )
            

7.9 Ethical and Privacy Considerations

Hereditary health artifacts raise important ethical questions that Myome addresses through technical and policy safeguards:

Informed Consent

Artifact generation requires explicit consent. Donors specify exactly what data is included, who can access it, and under what conditions. Consent is cryptographically signed and irrevocable.

Right to Genetic Privacy

Descendants have the right NOT to know their genetic risk. Artifacts support tiered access: full genomic data, summary-level risk scores only, or no genetic information.

Anti-Discrimination Protection

Artifacts include cryptographic timestamps proving they were created before insurance applications, employment decisions, etc., protecting against genetic discrimination.

Revocable Access

Donors can revoke artifact access at any time. Recipients must periodically re-authenticate to maintain access, enabling post-mortem privacy control via trusted executors.

These safeguards ensure that hereditary artifacts serve their intended purpose—empowering descendants with health knowledge—without creating new vectors for discrimination or privacy violation.