{"adoption": {"forks": 346, "observed_at": "2026-08-28T04:03:15.103530+00:00", "stars": 1019}, "canonical_url": "https://ross.abutalabs.com/products/gwa_tutorial", "card": {"archived": false, "artifact_type": "learning-resource", "description": "A comprehensive tutorial about GWAS and PRS", "domain": ["bioinformatics", "education", "tutorials"], "enriched": true, "function": ["data-science", "developer-tools"], "health_score": 20, "homepage": null, "language": null, "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["MareesAT/GWA_tutorial"], "name": "MareesAT/GWA_tutorial", "platform": ["cli", "python"], "pushed_at": "2023-04-01T13:39:46+00:00", "repo": "MareesAT/GWA_tutorial", "stars": 1019, "tags": ["gwas", "prs", "plink", "genetics", "population-stratification", "quality-control", "r-scripts", "educational", "linux"], "topics": ["gwas", "qc", "prs", "r", "plink", "genetics", "population-structure", "unix", "population-stratification", "genomics", "bioinformatics"], "urls": [], "use_cases": ["learn how to perform GWAS quality control steps", "understand how to correct for population stratification using 1000 Genomes data", "run association analyses on GWAS data", "learn polygenic risk score (PRS) analysis", "get started with genetic data analysis without Unix experience", "use GWAS analysis scripts as a template for my own data", "learn to use PLINK and R for genomics"], "what_it_is": "A step-by-step tutorial repository teaching genome-wide association study (GWAS) analysis, including quality control, population stratification, association testing, and polygenic risk score (PRS) analysis. It provides shell and R scripts designed for researchers without prior Unix experience, using freely downloadable genetic data.", "when_to_avoid": ["you need production-ready, maintained software with a license for clinical use", "you work on Windows without a Unix/Linux environment or server", "you need a polished GUI or interactive tool rather than shell scripts", "you require guaranteed support or updates, as the project is tutorial-oriented"], "when_to_choose": ["you are a researcher new to GWAS and need a guided, step-by-step walkthrough", "you want educational scripts covering QC through PRS in one place", "you need a template pipeline for analyzing your own genetic data", "you want to learn PLINK and R workflows on a Unix/Linux system"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/gwa_tutorial", "repo": "MareesAT/GWA_tutorial", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.103530+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:09:20.570223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "970faa52552bd39907fc8f3bfab88bc20ef1b553b687415db36fc93dfe1b5aa4", "fetched_at": "2026-08-28T04:03:15.103530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MareesAT/GWA_tutorial"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.103530+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:09:20.570223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "970faa52552bd39907fc8f3bfab88bc20ef1b553b687415db36fc93dfe1b5aa4", "fetched_at": "2026-08-28T04:03:15.103530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MareesAT/GWA_tutorial"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:09:20.570223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "970faa52552bd39907fc8f3bfab88bc20ef1b553b687415db36fc93dfe1b5aa4", "fetched_at": "2026-08-28T04:03:15.103530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MareesAT/GWA_tutorial"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.103530+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.103530+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.103530+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:09:20.570223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "970faa52552bd39907fc8f3bfab88bc20ef1b553b687415db36fc93dfe1b5aa4", "fetched_at": "2026-08-28T04:03:15.103530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MareesAT/GWA_tutorial"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.103530+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.103530+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:09:20.570223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "970faa52552bd39907fc8f3bfab88bc20ef1b553b687415db36fc93dfe1b5aa4", "fetched_at": "2026-08-28T04:03:15.103530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MareesAT/GWA_tutorial"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.103530+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.103530+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.103530+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:09:20.570223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "970faa52552bd39907fc8f3bfab88bc20ef1b553b687415db36fc93dfe1b5aa4", "fetched_at": "2026-08-28T04:03:15.103530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MareesAT/GWA_tutorial"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.103530+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:15.103530+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:09:20.570223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "970faa52552bd39907fc8f3bfab88bc20ef1b553b687415db36fc93dfe1b5aa4", "fetched_at": "2026-08-28T04:03:15.103530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MareesAT/GWA_tutorial"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:09:20.570223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "970faa52552bd39907fc8f3bfab88bc20ef1b553b687415db36fc93dfe1b5aa4", "fetched_at": "2026-08-28T04:03:15.103530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MareesAT/GWA_tutorial"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:09:20.570223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "970faa52552bd39907fc8f3bfab88bc20ef1b553b687415db36fc93dfe1b5aa4", "fetched_at": "2026-08-28T04:03:15.103530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MareesAT/GWA_tutorial"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:09:20.570223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "970faa52552bd39907fc8f3bfab88bc20ef1b553b687415db36fc93dfe1b5aa4", "fetched_at": "2026-08-28T04:03:15.103530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MareesAT/GWA_tutorial"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3932, "days_push": 1250, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}