{
  "_id": "6aafa1be3d719c1f8407ffa7",
  "Package": "lineager",
  "Title": "Row-Level Data Provenance and Exclusion Tracking",
  "Version": "0.1.1.9000",
  "Authors@R": "person(\"Ndoh\", \"Penn\",\nemail = \"ndohpenn9@gmail.com\",\nrole  = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0009-0003-9054-465X\"))",
  "Description": "Provides row-level data provenance tracking for analytical\npipelines. Tags datasets with unique lineage identifiers that\npersist through filter, join, and derive operations. Requires\ndocumented reasons for every row exclusion, capturing who was\nremoved, why, and at which pipeline stage. Variable derivations\nare registered as structured specifications linking output\nvariables back to their source. Any row in any downstream\ndataset can be traced back to its origin via lg_trace().\nGenerates structured HTML provenance reports suitable for\nregulatory submissions, internal audit, or analytical\ndocumentation. General-purpose: works for clinical data,\nmachine learning pipelines, financial modelling, epidemiology,\nor any workflow where row-level accountability matters.\nOptional features support pharmaceutical users including\npopulation flag definitions, source-to-analysis variable\nmapping, and Reviewer's Guide-aligned report output.\nComplements the 'regulog' package for tamper-evident\nsession-level audit logging. For more details see\n<https://reprostats.org/lineager/>.",
  "License": "MIT + file LICENSE",
  "URL": "https://reprostats.org, https://github.com/repro-stats/lineager",
  "BugReports": "https://github.com/repro-stats/lineager/issues",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Repository": "https://repro-stats.r-universe.dev",
  "Date/Publication": "2026-08-20 15:33:36 UTC",
  "RemoteUrl": "https://github.com/repro-stats/lineager",
  "RemoteRef": "HEAD",
  "RemoteSha": "3dbf8053e5a1df80c64c8f859f8716b568117535",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-09-20 09:01:57 UTC",
    "User": "root"
  },
  "Author": "Ndoh Penn [aut, cre] (ORCID: <https://orcid.org/0009-0003-9054-465X>)",
  "Maintainer": "Ndoh Penn <ndohpenn9@gmail.com>",
  "_user": "repro-stats",
  "_type": "src",
  "_file": "lineager_0.1.1.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/ca2431619a6d975ea827776567d31475e856991d4e6dd84a93dc1b85747778fa",
  "_filesize": 476467,
  "_sha256": "ca2431619a6d975ea827776567d31475e856991d4e6dd84a93dc1b85747778fa",
  "_expires": "2026-12-29T09:05:00.000Z",
  "_created": "2026-09-20T09:01:57.000Z",
  "_published": "2026-09-20T09:05:02.055Z",
  "_jobs": [
    {
      "job": 106053134191,
      "time": 146,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10601828260"
    },
    {
      "job": 106053134195,
      "time": 142,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10601888216"
    },
    {
      "job": 106053134190,
      "time": 73,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10601903115"
    },
    {
      "job": 106053134177,
      "time": 92,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10602107747"
    },
    {
      "job": 106052747021,
      "time": 185,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10602197618"
    },
    {
      "job": 106053134184,
      "time": 119,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "10602487095"
    },
    {
      "job": 106053134186,
      "time": 102,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10602322502"
    },
    {
      "job": 106053134220,
      "time": 83,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10602287598"
    },
    {
      "job": 106053134207,
      "time": 76,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10602327376"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/repro-stats/actions/runs/35501030523",
  "_status": "success",
  "_upstream": "https://github.com/repro-stats/lineager",
  "_commit": {
    "id": "3dbf8053e5a1df80c64c8f859f8716b568117535",
    "author": "ndohpenngit <ndohpenn9@gmail.com>",
    "committer": "ndohpenngit <ndohpenn9@gmail.com>",
    "message": "Increment version number to 0.1.1.9000\n",
    "time": 1787240016
  },
  "_maintainer": {
    "name": "Ndoh Penn",
    "email": "ndohpenn9@gmail.com",
    "login": "ndohpenngit",
    "linkedin": "in/ndohpenn",
    "orcid": "0009-0003-9054-465X",
    "description": "Statistician | Open-source enthusiast",
    "uuid": 55984177
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "dplyr",
      "version": ">= 1.1.0",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "version": ">= 2.0.3",
      "role": "Imports"
    },
    {
      "package": "admiral",
      "role": "Suggests"
    },
    {
      "package": "DiagrammeR",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "haven",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "mockery",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "tibble",
      "role": "Suggests"
    }
  ],
  "_owner": "repro-stats",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-26",
      "n": 14
    },
    {
      "week": "2026-27",
      "n": 1
    },
    {
      "week": "2026-28",
      "n": 12
    },
    {
      "week": "2026-29",
      "n": 5
    },
    {
      "week": "2026-30",
      "n": 1
    },
    {
      "week": "2026-31",
      "n": 5
    },
    {
      "week": "2026-32",
      "n": 2
    },
    {
      "week": "2026-34",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-06-24"
    },
    {
      "name": "v0.1.1",
      "date": "2026-08-09"
    }
  ],
  "_topics": [
    "adam",
    "audit-trail",
    "cdisc",
    "clinical-trials",
    "data-provenance",
    "pharma",
    "reproducibility",
    "sdtm"
  ],
  "_stars": 2,
  "_contributors": [
    {
      "user": "ndohpenngit",
      "count": 41,
      "uuid": 55984177
    }
  ],
  "_userbio": {
    "uuid": 290093114,
    "type": "organization",
    "name": "reprostats",
    "followers": 1,
    "description": "Open-source R tools for reproducibility and audit logging"
  },
  "_downloads": {
    "count": 288,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/lineager"
  },
  "_devurl": "https://github.com/repro-stats/lineager",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/lineager.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/repro-stats/lineager",
  "_realowner": "repro-stats",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.1",
      "date": "2026-08-20"
    }
  ],
  "_exports": [
    "%>%",
    "lg_derive",
    "lg_disposition",
    "lg_end",
    "lg_exclusions",
    "lg_filter",
    "lg_history",
    "lg_id",
    "lg_join",
    "lg_lineage",
    "lg_operations",
    "lg_plot",
    "lg_population",
    "lg_report",
    "lg_spec",
    "lg_start",
    "lg_tag",
    "lg_trace"
  ],
  "_help": [
    {
      "page": "lineager-package",
      "title": "lineager: Row-Level Data Provenance and Exclusion Tracking",
      "topics": [
        "lineager-package",
        "lineager"
      ]
    },
    {
      "page": "sub-.lg_df",
      "title": "Subset an 'lg_df', preserving lineage attributes",
      "topics": [
        "[.lg_df"
      ]
    },
    {
      "page": "lg_derive",
      "title": "Derive new variables with documented derivation",
      "topics": [
        "lg_derive"
      ]
    },
    {
      "page": "lg_disposition",
      "title": "Generate a subject disposition summary",
      "topics": [
        "lg_disposition"
      ]
    },
    {
      "page": "lg_end",
      "title": "End a lineager provenance session",
      "topics": [
        "lg_end"
      ]
    },
    {
      "page": "lg_exclusions",
      "title": "Retrieve the exclusion registry",
      "topics": [
        "lg_exclusions"
      ]
    },
    {
      "page": "lg_filter",
      "title": "Filter a tagged dataset with mandatory exclusion documentation",
      "topics": [
        "lg_filter"
      ]
    },
    {
      "page": "lg_history",
      "title": "Retrieve the operation history recorded on a tagged object",
      "topics": [
        "lg_history"
      ]
    },
    {
      "page": "lg_id",
      "title": "Retrieve lineage IDs from a tagged dataset",
      "topics": [
        "lg_id"
      ]
    },
    {
      "page": "lg_join",
      "title": "Join two tagged datasets with lineage tracking",
      "topics": [
        "lg_join"
      ]
    },
    {
      "page": "lg_lineage",
      "title": "Build a pipeline lineage graph from the active session",
      "topics": [
        "lg_lineage"
      ]
    },
    {
      "page": "lg_operations",
      "title": "Retrieve the operation log as a data frame",
      "topics": [
        "lg_operations"
      ]
    },
    {
      "page": "lg_plot",
      "title": "Render a lineage graph",
      "topics": [
        "lg_plot"
      ]
    },
    {
      "page": "lg_population",
      "title": "Document and apply a population flag",
      "topics": [
        "lg_population"
      ]
    },
    {
      "page": "lg_report",
      "title": "Generate a CDISC Reviewer's Guide-aligned provenance report",
      "topics": [
        "lg_report"
      ]
    },
    {
      "page": "lg_spec",
      "title": "Document an SDTM-to-ADaM variable derivation",
      "topics": [
        "lg_spec"
      ]
    },
    {
      "page": "lg_start",
      "title": "Start a lineager provenance session",
      "topics": [
        "lg_start"
      ]
    },
    {
      "page": "lg_tag",
      "title": "Tag a dataset to begin lineage tracking",
      "topics": [
        "lg_tag"
      ]
    },
    {
      "page": "lg_trace",
      "title": "Trace a subject's complete lineage journey",
      "topics": [
        "lg_trace"
      ]
    }
  ],
  "_pkglogo": "https://github.com/repro-stats/lineager/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/repro-stats/lineager/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "dplyr",
    "generics",
    "glue",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "R6",
    "rlang",
    "tibble",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "exclusion-tracking.Rmd",
      "filename": "exclusion-tracking.html",
      "title": "Exclusion tracking and subject tracing",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Setup: a realistic multi-stage pipeline",
        "1. lg_filter() in depth",
        "Mandatory reason",
        "reason_code: machine-readable classification",
        "population: grouping exclusions by analysis set",
        "2. The exclusion registry",
        "Filter by population",
        "Filter by dataset",
        "The exclusion record structure",
        "3. Disposition tables",
        "Group by reason",
        "Group by population",
        "Group by dataset",
        "4. Subject tracing",
        "Tracing an excluded subject",
        "Tracing an included subject",
        "Tracing a subject not found",
        "Using the trace result programmatically",
        "5. The operation log",
        "6. Visualise exclusions as a lineage graph",
        "7. Common patterns",
        "Cascaded filters with verbose tracking"
      ],
      "created": "2026-06-24 09:51:55",
      "modified": "2026-07-08 14:26:52",
      "commits": 4
    },
    {
      "source": "getting-started.Rmd",
      "filename": "getting-started.html",
      "title": "Getting started with lineager",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Start a session",
        "2. Tag your source datasets",
        "Tagging multiple datasets",
        "3. Derive new variables",
        "4. Join datasets with lineage tracking",
        "5. Filter with mandatory exclusion reasons",
        "6. The session operation log",
        "7. End the session",
        "8. Complete minimal workflow",
        "9. Visualise the pipeline"
      ],
      "created": "2026-06-24 09:51:55",
      "modified": "2026-07-30 16:06:26",
      "commits": 6
    },
    {
      "source": "populations-and-reporting.Rmd",
      "filename": "populations-and-reporting.html",
      "title": "Populations, variable specifications, and reporting",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Setup: a complete pipeline",
        "Derive analysis variables",
        "1. lg_population(): documenting analysis sets",
        "Multiple populations",
        "What lg_population() records",
        "print method",
        "2. lg_spec(): documenting variable derivations",
        "Documenting flag derivations",
        "Overwriting a spec",
        "3. lg_report(): generating the provenance report",
        "In-memory report (inspect without writing to disk)",
        "Write to file",
        "Report arguments",
        "4. A note on CDISC-specific usage",
        "5. Visualise the pipeline lineage",
        "6. End the session"
      ],
      "created": "2026-06-24 09:51:55",
      "modified": "2026-07-20 11:24:59",
      "commits": 5
    }
  ],
  "_score": 5.380211241711606,
  "_indexed": true,
  "_nocasepkg": "lineager",
  "_universes": [
    "repro-stats",
    "ndohpenngit"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.1.9000",
      "date": "2026-09-20T09:04:21.000Z",
      "distro": "resolute",
      "commit": "3dbf8053e5a1df80c64c8f859f8716b568117535",
      "fileid": "https://r2.ropensci.org/e7407c74a2407673cf21ff6f95a32baa0dd52bd1e3e31f1aa138b44353e53d4b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/35501030523"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.1.9000",
      "date": "2026-09-20T09:04:18.000Z",
      "distro": "resolute",
      "commit": "3dbf8053e5a1df80c64c8f859f8716b568117535",
      "fileid": "https://r2.ropensci.org/9eea0eb1ee0c53f9bf100b840a7037b4f5e805072e43a2bf335c796348e444c4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/35501030523"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.1.9000",
      "date": "2026-09-20T09:03:20.000Z",
      "commit": "3dbf8053e5a1df80c64c8f859f8716b568117535",
      "fileid": "https://r2.ropensci.org/19a4838e1592667282978e88a42eb75f8a72c61b55b2eaea4ed14db6296e2c09",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/35501030523"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.1.9000",
      "date": "2026-09-20T09:03:40.000Z",
      "commit": "3dbf8053e5a1df80c64c8f859f8716b568117535",
      "fileid": "https://r2.ropensci.org/f2eefd950be219f186cf2636b329f92e24b05ea3c349ae5c0d4c4466b8ff3ef8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/35501030523"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.1.9000",
      "date": "2026-09-20T09:04:12.000Z",
      "commit": "3dbf8053e5a1df80c64c8f859f8716b568117535",
      "fileid": "https://r2.ropensci.org/3aa2c888226aed5e8389af91839507cc5e50866a0afcbb263dfe8dfc07a9b6f0",
      "status": "success",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/35501030523"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.1.9000",
      "date": "2026-09-20T09:03:30.000Z",
      "commit": "3dbf8053e5a1df80c64c8f859f8716b568117535",
      "fileid": "https://r2.ropensci.org/aa5aaac25f282c67609f2ba062d0839a3744c4d2e4740fe31455e184f5f3485a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/35501030523"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.1.9000",
      "date": "2026-09-20T09:03:10.000Z",
      "commit": "3dbf8053e5a1df80c64c8f859f8716b568117535",
      "fileid": "https://r2.ropensci.org/fd1be7dda8e2f5bb14824e922f674d6a212b99278cd13488c02099c05c84b464",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/35501030523"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.1.9000",
      "date": "2026-09-20T09:03:03.000Z",
      "commit": "3dbf8053e5a1df80c64c8f859f8716b568117535",
      "fileid": "https://r2.ropensci.org/2aa48fb652232ff2e15c5eefddc1a30695ce909a96bbf42487ec39163742c8ff",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/35501030523"
    }
  ]
}