{
  "_id": "6a1020f2acfb0bcc41c8bdbd",
  "Package": "visPedigree",
  "Type": "Package",
  "Title": "Tidying, Analysis, and Fast Visualization of Animal and Plant\nPedigrees",
  "Version": "1.8.1",
  "Authors@R": "person(\"Sheng\",\"Luan\", email=\"luansheng@gmail.com\", role = c(\"aut\",\"cre\"))",
  "Description": "Provides tools for the analysis and visualization of\nanimal and plant pedigrees. Analytical methods include\nequivalent complete generations, generation intervals,\neffective population size (via inbreeding, coancestry, and\ndemographic approaches), founder and ancestor contributions,\npartial inbreeding, genetic diversity indices, and additive\n(A), dominance (D), and epistatic (AA) relationship matrices.\nCore algorithms — ancestry tracing, topological sorting,\ninbreeding coefficients, and matrix construction — are\nimplemented in C++ ('Rcpp', 'RcppArmadillo') and 'data.table',\nscaling to pedigrees with over one million individuals.\nPedigree graphs are rendered via 'igraph' with support for\ncompact full-sib family display; relationship matrices can be\nvisualized as heatmaps. Supports complex mating systems,\nincluding selfing and pedigrees in which the same individual\ncan appear as both sire and dam.",
  "License": "GPL-3",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "URL": "https://github.com/luansheng/visPedigree,\nhttps://luansheng.github.io/visPedigree/",
  "BugReports": "https://github.com/luansheng/visPedigree/issues",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "RoxygenNote": "7.3.3",
  "Repository": "https://luansheng.r-universe.dev",
  "Date/Publication": "2026-04-14 03:59:54 UTC",
  "RemoteUrl": "https://github.com/luansheng/vispedigree",
  "RemoteRef": "HEAD",
  "RemoteSha": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-05-14 05:54:10 UTC",
    "User": "root"
  },
  "Author": "Sheng Luan [aut, cre]",
  "Maintainer": "Sheng Luan <luansheng@gmail.com>",
  "MD5sum": "d1677cb9a03479bf85f75743d666e8ae",
  "_user": "luansheng",
  "_type": "src",
  "_file": "visPedigree_1.8.1.tar.gz",
  "_fileid": "6d1b80ed74ed2d445b13688ca7b86a4c0b94f8af8fa84862a927bfd72e221079",
  "_filesize": 12756700,
  "_sha256": "6d1b80ed74ed2d445b13688ca7b86a4c0b94f8af8fa84862a927bfd72e221079",
  "_created": "2026-05-14T05:54:10.000Z",
  "_published": "2026-05-22T09:25:06.681Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77352191351,
      "time": 190,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "6988158640"
    },
    {
      "job": 77352191001,
      "time": 217,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "6988165294"
    },
    {
      "job": 77352191502,
      "time": 192,
      "config": "linux-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6988158883"
    },
    {
      "job": 77352191442,
      "time": 153,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6988150993"
    },
    {
      "job": 77352191503,
      "time": 243,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6988162038"
    },
    {
      "job": 77352191556,
      "time": 385,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6988190928"
    },
    {
      "job": 77352191051,
      "time": 172,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6988150843"
    },
    {
      "job": 77352191536,
      "time": 290,
      "config": "macos-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6988170413"
    },
    {
      "job": 77352190796,
      "time": 264,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6988118629"
    },
    {
      "job": 77352190627,
      "time": 131,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7157203436"
    },
    {
      "job": 77352191238,
      "time": 158,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "6988151995"
    },
    {
      "job": 77352191573,
      "time": 178,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6988156242"
    },
    {
      "job": 77352191144,
      "time": 164,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6988153408"
    }
  ],
  "_buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/luansheng/vispedigree",
  "_commit": {
    "id": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
    "author": "Sheng Luan <{7497135+luansheng@users.noreply.github.com}>",
    "committer": "Sheng Luan <{7497135+luansheng@users.noreply.github.com}>",
    "message": "feat: add genlabcex parameter for independent generation label font size control\n\n- visped(): new genlabcex = NULL argument; validated as single positive number\n- plot_ped_igraph(): accepts genlabcex; overrides auto-scaled gen label cex when set\n- man/visped.Rd, man/plot_ped_igraph.Rd: regenerated via devtools::document()\n- tests/testthat/test-visped.R: added validation and end-to-end tests for genlabcex\n- vignettes/draw-pedigree.Rmd: document genlabcex usage with example\n",
    "time": 1776139194
  },
  "_maintainer": {
    "name": "Sheng Luan",
    "email": "luansheng@gmail.com",
    "login": "luansheng",
    "uuid": 7497135
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "Rcpp",
      "role": "LinkingTo"
    },
    {
      "package": "RcppArmadillo",
      "role": "LinkingTo"
    },
    {
      "package": "data.table",
      "version": ">= 1.14.0",
      "role": "Imports"
    },
    {
      "package": "igraph",
      "version": ">= 1.3.0",
      "role": "Imports"
    },
    {
      "package": "Matrix",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "Rcpp",
      "role": "Imports"
    },
    {
      "package": "lattice",
      "role": "Imports"
    },
    {
      "package": "nadiv",
      "version": ">= 2.18.0",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "luansheng",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-43",
      "n": 1
    },
    {
      "week": "2025-52",
      "n": 33
    },
    {
      "week": "2026-01",
      "n": 2
    },
    {
      "week": "2026-02",
      "n": 16
    },
    {
      "week": "2026-03",
      "n": 2
    },
    {
      "week": "2026-04",
      "n": 17
    },
    {
      "week": "2026-05",
      "n": 9
    },
    {
      "week": "2026-06",
      "n": 6
    },
    {
      "week": "2026-07",
      "n": 1
    },
    {
      "week": "2026-09",
      "n": 15
    },
    {
      "week": "2026-11",
      "n": 27
    },
    {
      "week": "2026-12",
      "n": 8
    },
    {
      "week": "2026-13",
      "n": 29
    },
    {
      "week": "2026-14",
      "n": 4
    },
    {
      "week": "2026-16",
      "n": 3
    }
  ],
  "_tags": [
    {
      "name": "release",
      "date": "2025-12-26"
    },
    {
      "name": "v0.6.2",
      "date": "2026-01-05"
    },
    {
      "name": "v0.7.1",
      "date": "2026-01-11"
    },
    {
      "name": "v1.0.0",
      "date": "2026-01-24"
    },
    {
      "name": "v1.0.1",
      "date": "2026-01-31"
    },
    {
      "name": "v1.0.1cran",
      "date": "2026-02-24"
    },
    {
      "name": "v1.3.4",
      "date": "2026-03-14"
    },
    {
      "name": "v1.5.0",
      "date": "2026-03-20"
    },
    {
      "name": "v1.8.1",
      "date": "2026-04-02"
    }
  ],
  "_stars": 20,
  "_contributors": [
    {
      "user": "luansheng",
      "count": 296,
      "uuid": 7497135
    }
  ],
  "_userbio": {
    "uuid": 7497135,
    "type": "user",
    "name": "Sheng Luan",
    "description": "Selective breeding for shrimp and fish."
  },
  "_downloads": {
    "count": 572,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/visPedigree"
  },
  "_devurl": "https://github.com/luansheng/vispedigree",
  "_pkgdown": "https://luansheng.github.io/visPedigree/",
  "_searchresults": 48,
  "_topics": [
    "openblas",
    "cpp",
    "openmp"
  ],
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/visPedigree.html",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/luansheng/vispedigree",
  "_realowner": "luansheng",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.7.1",
      "date": "2026-01-21"
    },
    {
      "version": "1.0.1",
      "date": "2026-02-23"
    },
    {
      "version": "1.8.1",
      "date": "2026-03-30"
    }
  ],
  "_exports": [
    "as_tidyped",
    "expand_pedmat",
    "has_candidates",
    "has_inbreeding",
    "inbreed",
    "is_tidyped",
    "pedancestry",
    "pedcontrib",
    "pedecg",
    "pedfclass",
    "pedgenint",
    "pedhalflife",
    "pediv",
    "pedmat",
    "pedmeta",
    "pedne",
    "pedpartial",
    "pedrel",
    "pedstats",
    "pedsubpop",
    "query_relationship",
    "splitped",
    "summary_pedmat",
    "tidyped",
    "vismat",
    "visped"
  ],
  "_datasets": [
    {
      "name": "big_family_size_ped",
      "title": "A large pedigree with big family sizes",
      "object": "big_family_size_ped",
      "class": [
        "data.table",
        "data.frame"
      ],
      "fields": [
        "Ind",
        "Sire",
        "Dam",
        "Sex",
        "Breed",
        "Year",
        "FamilyID"
      ],
      "rows": 178421,
      "table": true,
      "tojson": true
    },
    {
      "name": "complex_ped",
      "title": "A complex pedigree",
      "object": "complex_ped",
      "class": [
        "data.table",
        "data.frame"
      ],
      "fields": [
        "Ind",
        "Sire",
        "Dam",
        "Sex",
        "Gen"
      ],
      "rows": 6516,
      "table": true,
      "tojson": true
    },
    {
      "name": "deep_ped",
      "title": "A deep pedigree",
      "object": "deep_ped",
      "class": [
        "data.table",
        "data.frame"
      ],
      "fields": [
        "Ind",
        "Sire",
        "Dam",
        "Sex"
      ],
      "rows": 4396,
      "table": true,
      "tojson": true
    },
    {
      "name": "half_founder_ped",
      "title": "A pedigree with half founders",
      "object": "half_founder_ped",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Ind",
        "Sire",
        "Dam",
        "Sex"
      ],
      "rows": 600,
      "table": true,
      "tojson": true
    },
    {
      "name": "inbred_ped",
      "title": "A highly inbred pedigree",
      "object": "inbred_ped",
      "class": [
        "data.table",
        "data.frame"
      ],
      "fields": [
        "Ind",
        "Sire",
        "Dam",
        "Sex",
        "Gen"
      ],
      "rows": 7,
      "table": true,
      "tojson": true
    },
    {
      "name": "loop_ped",
      "title": "A pedigree with loops",
      "object": "loop_ped",
      "class": [
        "data.table",
        "data.frame"
      ],
      "fields": [
        "Ind",
        "Sire",
        "Dam"
      ],
      "rows": 13,
      "table": true,
      "tojson": true
    },
    {
      "name": "simple_ped",
      "title": "A simple pedigree",
      "object": "simple_ped",
      "class": [
        "data.table",
        "data.frame"
      ],
      "fields": [
        "ID",
        "Sire",
        "Dam",
        "Sex"
      ],
      "rows": 31,
      "table": true,
      "tojson": true
    },
    {
      "name": "small_ped",
      "title": "A small pedigree",
      "object": "small_ped",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Ind",
        "Sire",
        "Dam"
      ],
      "rows": 19,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "sub-.tidyped",
      "title": "Subset a tidyped object",
      "topics": [
        "[.tidyped"
      ]
    },
    {
      "page": "as_tidyped",
      "title": "Restore the tidyped class to a manipulated pedigree",
      "topics": [
        "as_tidyped"
      ]
    },
    {
      "page": "big_family_size_ped",
      "title": "A large pedigree with big family sizes",
      "topics": [
        "big_family_size_ped"
      ]
    },
    {
      "page": "complex_ped",
      "title": "A complex pedigree",
      "topics": [
        "complex_ped"
      ]
    },
    {
      "page": "deep_ped",
      "title": "A deep pedigree",
      "topics": [
        "deep_ped"
      ]
    },
    {
      "page": "expand_pedmat",
      "title": "Expand a Compact Pedigree Matrix to Full Dimensions",
      "topics": [
        "expand_pedmat"
      ]
    },
    {
      "page": "half_founder_ped",
      "title": "A pedigree with half founders",
      "topics": [
        "half_founder_ped"
      ]
    },
    {
      "page": "has_candidates",
      "title": "Check whether a tidyped object contains candidate flags",
      "topics": [
        "has_candidates"
      ]
    },
    {
      "page": "has_inbreeding",
      "title": "Check whether a tidyped object contains inbreeding coefficients",
      "topics": [
        "has_inbreeding"
      ]
    },
    {
      "page": "inbred_ped",
      "title": "A highly inbred pedigree",
      "topics": [
        "inbred_ped"
      ]
    },
    {
      "page": "inbreed",
      "title": "Calculate inbreeding coefficients",
      "topics": [
        "inbreed"
      ]
    },
    {
      "page": "is_tidyped",
      "title": "Test if an object is a tidyped",
      "topics": [
        "is_tidyped"
      ]
    },
    {
      "page": "loop_ped",
      "title": "A pedigree with loops",
      "topics": [
        "loop_ped"
      ]
    },
    {
      "page": "pedancestry",
      "title": "Calculate Ancestry Proportions",
      "topics": [
        "pedancestry"
      ]
    },
    {
      "page": "pedcontrib",
      "title": "Calculate Founder and Ancestor Contributions",
      "topics": [
        "pedcontrib"
      ]
    },
    {
      "page": "pedecg",
      "title": "Calculate Equi-Generate Coefficient",
      "topics": [
        "pedecg"
      ]
    },
    {
      "page": "pedfclass",
      "title": "Summarize Inbreeding Levels",
      "topics": [
        "pedfclass"
      ]
    },
    {
      "page": "pedgenint",
      "title": "Calculate Generation Intervals",
      "topics": [
        "pedgenint"
      ]
    },
    {
      "page": "pedhalflife",
      "title": "Calculate Information-Theoretic Diversity Half-Life",
      "topics": [
        "pedhalflife",
        "plot.pedhalflife",
        "print.pedhalflife"
      ]
    },
    {
      "page": "pediv",
      "title": "Calculate Genetic Diversity Indicators",
      "topics": [
        "pediv"
      ]
    },
    {
      "page": "pedmat",
      "title": "Genetic Relationship Matrices and Inbreeding Coefficients",
      "topics": [
        "pedmat"
      ]
    },
    {
      "page": "pedmeta",
      "title": "Access pedigree metadata from a tidyped object",
      "topics": [
        "pedmeta"
      ]
    },
    {
      "page": "pedne",
      "title": "Calculate Effective Population Size",
      "topics": [
        "pedne"
      ]
    },
    {
      "page": "pedpartial",
      "title": "Calculate Partial Inbreeding",
      "topics": [
        "pedpartial"
      ]
    },
    {
      "page": "pedrel",
      "title": "Calculate Mean Relationship or Coancestry Within Groups",
      "topics": [
        "pedrel"
      ]
    },
    {
      "page": "pedstats",
      "title": "Pedigree Statistics",
      "topics": [
        "pedstats"
      ]
    },
    {
      "page": "pedsubpop",
      "title": "Pedigree Subpopulations",
      "topics": [
        "pedsubpop"
      ]
    },
    {
      "page": "plot.tidyped",
      "title": "Plot a tidy pedigree",
      "topics": [
        "plot.tidyped"
      ]
    },
    {
      "page": "print.pedcontrib",
      "title": "Print Founder and Ancestor Contributions",
      "topics": [
        "print.pedcontrib"
      ]
    },
    {
      "page": "print.pediv",
      "title": "Print Genetic Diversity Summary",
      "topics": [
        "print.pediv"
      ]
    },
    {
      "page": "print.pedstats",
      "title": "Print Pedigree Statistics",
      "topics": [
        "print.pedstats"
      ]
    },
    {
      "page": "print.summary.tidyped",
      "title": "Print method for summary.tidyped",
      "topics": [
        "print.summary.tidyped"
      ]
    },
    {
      "page": "print.tidyped",
      "title": "Print method for tidyped pedigree",
      "topics": [
        "print.tidyped"
      ]
    },
    {
      "page": "query_relationship",
      "title": "Query Relationship Coefficients from a Pedigree Matrix",
      "topics": [
        "query_relationship"
      ]
    },
    {
      "page": "simple_ped",
      "title": "A simple pedigree",
      "topics": [
        "simple_ped"
      ]
    },
    {
      "page": "small_ped",
      "title": "A small pedigree",
      "topics": [
        "small_ped"
      ]
    },
    {
      "page": "splitped",
      "title": "Split Pedigree into Disconnected Groups",
      "topics": [
        "splitped"
      ]
    },
    {
      "page": "summary_pedmat",
      "title": "Summary Statistics for Pedigree Matrices",
      "topics": [
        "summary_pedmat"
      ]
    },
    {
      "page": "summary.tidyped",
      "title": "Summary method for tidyped objects",
      "topics": [
        "summary.tidyped"
      ]
    },
    {
      "page": "tidyped",
      "title": "Tidy and prepare a pedigree",
      "topics": [
        "tidyped"
      ]
    },
    {
      "page": "vismat",
      "title": "Visualize Relationship Matrices",
      "topics": [
        "vismat"
      ]
    },
    {
      "page": "visped",
      "title": "Visualize a tidy pedigree",
      "topics": [
        "visped"
      ]
    }
  ],
  "_pkglogo": "https://github.com/luansheng/vispedigree/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/luansheng/vispedigree/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "data.table",
    "glue",
    "igraph",
    "lattice",
    "lifecycle",
    "magrittr",
    "Matrix",
    "pkgconfig",
    "Rcpp",
    "RcppArmadillo",
    "rlang",
    "vctrs"
  ],
  "_sysdeps": [
    {
      "shlib": "liblapack",
      "package": "libopenblas0-pthread",
      "source": "openblas",
      "version": "0.3.26+ds-1ubuntu0.1",
      "name": "openblas",
      "homepage": "https://www.openblas.net/",
      "description": "Optimized BLAS (linear algebra) library (shared lib, pthread)"
    },
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "14.2.0-4ubuntu2~24.04.1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    },
    {
      "shlib": "libgomp",
      "package": "libgomp1",
      "source": "gcc",
      "version": "14.2.0-4ubuntu2~24.04.1",
      "name": "openmp",
      "homepage": "http://gcc.gnu.org/",
      "description": "GCC OpenMP (GOMP) support library"
    }
  ],
  "_vignettes": [
    {
      "source": "tidy-pedigree.Rmd",
      "filename": "tidy-pedigree.html",
      "title": "How to tidy a pedigree ",
      "author": "Sheng Luan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Installation of the visPedigree package",
        "2. Pedigree format specification",
        "3. Checking and tidying pedigree",
        "3.1 Introduction",
        "3.2 Pedigree loop detection",
        "3.3 Tracing the pedigree of a specific individual",
        "3.4 Creating an integer pedigree",
        "3.5 Calculating inbreeding coefficients",
        "3.6 Customizing generation assignment",
        "3.7 Summarizing the pedigree",
        "3.8 Splitting large pedigrees"
      ],
      "created": "2018-11-14 08:34:52",
      "modified": "2026-03-25 11:43:04",
      "commits": 17
    },
    {
      "source": "efficient-visPedigree-workflows.Rmd",
      "filename": "efficient-visPedigree-workflows.html",
      "title": "Efficient visPedigree Workflows ",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Load packages and example data",
        "2. Tidy once, reuse many times",
        "3. Fast repeated tracing from an existing tidyped",
        "4. Safe data.table usage on tidyped",
        "4.1 Adding new columns is safe",
        "4.2 Incomplete row subsetting now degrades safely",
        "4.3 Use explicit tracing when you need a valid sub-pedigree",
        "5. splitped() versus pedsubpop()",
        "6. Use accessors instead of manual attribute checks",
        "7. Recommended high-efficiency workflow",
        "8. Practical rules of thumb"
      ],
      "created": "2026-03-15 08:32:54",
      "modified": "2026-03-15 09:27:27",
      "commits": 2
    },
    {
      "source": "draw-pedigree.Rmd",
      "filename": "draw-pedigree.html",
      "title": "How to draw a pedigree ",
      "author": "Sheng Luan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1 Drawing the pedigree",
        "1.1 A simple pedigree graph",
        "1.1.1 Highlighting specific individuals",
        "1.1.2 Showing inbreeding coefficients",
        "1.2 A reduced pedigree graph",
        "1.3 An outlined pedigree graph",
        "1.4 How to use this package in a selective breeding program",
        "1.4.1 An analysis of founders for an individual",
        "1.4.2 The contribution of different families in a selective breeding program"
      ],
      "created": "2018-11-14 08:34:52",
      "modified": "2026-04-14 03:59:54",
      "commits": 18
    },
    {
      "source": "pedigree-analysis.Rmd",
      "filename": "pedigree-analysis.html",
      "title": "Pedigree Analysis and Population Genetics ",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Setup and Data Preparation",
        "2. Pedigree Overview with pedstats()",
        "3. Pedigree Completeness with pedecg()",
        "4. Generation Intervals with pedgenint()",
        "5. Subpopulation Structure with pedsubpop()",
        "6. Diversity Indicators with pediv()",
        "6.1 fe, fa, and fg: what do they measure?",
        "Effective number of founders (fe)",
        "Effective number of ancestors (fa)",
        "Founder genome equivalents (fg)",
        "Retained genetic diversity (GeneDiv)",
        "6.2 Shannon-entropy effective numbers: feH and faH",
        "Metric guide",
        "Interpreting the ratio $f_e^{(H)} / f_e$",
        "Management implications",
        "7. Diversity Dynamics over Time with pedhalflife()",
        "7.1 Column guide for $timeseries",
        "7.2 Interpreting the $\\lambda$ components",
        "7.3 Interpreting $T_{1/2}$",
        "8. Effective Population Size with pedne() and pediv()",
        "8.1 Demographic Ne",
        "8.2 Inbreeding Ne",
        "8.3 Coancestry Ne",
        "9. Average Relationship Trends with pedrel()",
        "9.1 Mean additive relationship (scale = \"relationship\")",
        "9.2 Corrected mean coancestry (scale = \"coancestry\")",
        "10. Inbreeding Trends with inbreed() and pedfclass()",
        "11. Gene Flow and Partial Inbreeding",
        "11.1 pedancestry(): founder-line proportions",
        "11.2 pedpartial(): which ancestors explain inbreeding?",
        "12. Practical Interpretation",
        "References"
      ],
      "created": "2026-03-14 02:27:24",
      "modified": "2026-03-25 10:54:54",
      "commits": 9
    },
    {
      "source": "relationship-matrix.Rmd",
      "filename": "relationship-matrix.html",
      "title": "Calculation and visualization of relationship matrix ",
      "author": "Sheng Luan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Calculating Relationship Matrices with pedmat()",
        "1.1 Supported Methods",
        "1.2 Basic Usage",
        "1.3 Sparse Matrix Representation",
        "2. Inspecting the Matrix",
        "2.1 Summary Statistics",
        "2.2 Querying Specific Relationships",
        "3. Compact Mode for Large Pedigrees",
        "3.1 Using compact = TRUE",
        "3.2 Expanding and Querying Compacted Matrices",
        "3.3 When to Use Compact Mode",
        "4. Visualizing Relationship Matrices with vismat()",
        "4.1 Relationship Heatmaps",
        "Compact Matrix — Direct Visualization",
        "Preserve Pedigree Order",
        "Display a Subset of Individuals",
        "Grouping by Pedigree Column",
        "4.2 Inbreeding and Kinship Histograms",
        "5. Performance Considerations"
      ],
      "created": "2026-01-20 14:18:28",
      "modified": "2026-03-23 07:25:42",
      "commits": 12
    },
    {
      "source": "tidyped-structure.Rmd",
      "filename": "tidyped-structure.html",
      "title": "tidyped Class Structure and Extension Notes ",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Class identity",
        "2. Core design goals",
        "3. The head invariant: IndNum == row index",
        "4. Column contract",
        "4.1 Minimal structural columns",
        "4.2 Integer pedigree columns",
        "4.3 Other common columns",
        "4.4 Column naming convention",
        "5. Metadata layer",
        "6. Structural invariants",
        "7. Constructor pipeline",
        "7.1 Full path: tidyped(raw_input)",
        "7.2 Fast path: tidyped(tp, cand = ids)",
        "7.3 new_tidyped() — internal constructor",
        "8. Three-tier guard system",
        "8.1 validate_tidyped() — visualization guard",
        "8.2 ensure_tidyped() — structure-light guard",
        "8.3 ensure_complete_tidyped() — complete-pedigree guard",
        "8.4 Choosing the right guard",
        "9. Safe subsetting contract",
        "9.1 := operations",
        "9.2 Column-only selections",
        "9.3 Row subsets",
        "10. Computational boundaries: C++ vs igraph",
        "10.1 C++ — core computation path",
        "10.2 igraph — graph-specific tasks",
        "11. Extension rules",
        "11.1 Do not add new pedigree-level attributes",
        "11.2 Keep computed state derivable",
        "11.3 Preserve data.table semantics",
        "11.4 Respect downgrade semantics",
        "11.5 Document C++ assumptions",
        "12. User-facing inspection helpers",
        "13. Maintenance checklist",
        "14. Recommended workflow"
      ],
      "created": "2026-03-15 08:32:54",
      "modified": "2026-03-25 11:36:01",
      "commits": 3
    }
  ],
  "_score": 7.635483746814912,
  "_indexed": true,
  "_nocasepkg": "vispedigree",
  "_universes": [
    "luansheng"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.8.1",
      "date": "2026-05-14T05:56:54.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
      "fileid": "592bd697981b3291b0a9db2c69d0f2b9e7641eca696367103afeeae132e05842",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.8.1",
      "date": "2026-05-14T05:57:25.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
      "fileid": "ac854a4d53dae5fa686b67f290ce269675527a3e2a0dad6665ff8f045bcfa34f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.8.1",
      "date": "2026-05-14T05:56:57.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
      "fileid": "2736f04a368f6fe9a7e66e7a07d229b587a1c39f0f14fc5899f56b7474abd20d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.8.1",
      "date": "2026-05-14T05:56:25.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
      "fileid": "56137a781fa082948606f34baf41857b87919b304ccfd22811abd4fe2a0cc56c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.8.1",
      "date": "2026-05-14T05:57:10.000Z",
      "arch": "aarch64",
      "commit": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
      "fileid": "d8e8321128096a99c7a87ed893661cbd91cae250b66b090a15cd07910ff91ce0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.8.1",
      "date": "2026-05-14T05:58:50.000Z",
      "arch": "x86_64",
      "commit": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
      "fileid": "62526c44c0c733eef67cd1ed51e498a2e16bb8ed2c58ede6771091fa28fff5f6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.8.1",
      "date": "2026-05-14T05:56:34.000Z",
      "arch": "aarch64",
      "commit": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
      "fileid": "c57367bf3045b56b1dfae830245cfc3451949f88b50e5f0aa597484f203880a1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.8.1",
      "date": "2026-05-14T05:57:19.000Z",
      "arch": "x86_64",
      "commit": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
      "fileid": "f04e65e23369c23e35b0e0772012eb58c33b54ef1b004d58096bc7f081e1b21a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.8.1",
      "date": "2026-05-14T05:55:46.000Z",
      "arch": "x86_64",
      "commit": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
      "fileid": "7602855684337f05b8e50a0e0dfbfcdc8a5c7c799f7841ac23ea183f94155c29",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.8.1",
      "date": "2026-05-14T05:55:50.000Z",
      "arch": "x86_64",
      "commit": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
      "fileid": "325c90de7d5aad5879bc80cae8731e1841ca6f635aef44b1ab738335817b68a8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.8.1",
      "date": "2026-05-14T05:55:47.000Z",
      "arch": "x86_64",
      "commit": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
      "fileid": "52f648132e8bc94097120bdafe8d9d3c12270204120f3605cf8e5d39ef8ddf43",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.8.1",
      "date": "2026-05-22T09:24:31.000Z",
      "arch": "emscripten",
      "commit": "fda6e40b8a27dbe0b8313e55345679a292aaf5ec",
      "fileid": "006dca69b4c52bf7738013443cf992908b97a84a615c199fa8a7789e0be20048",
      "status": "success",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/25844256540"
    }
  ]
}