{
  "_id": "6adb01d1343c88418cb725ae",
  "Package": "visPedigree",
  "Type": "Package",
  "Title": "Tidying, Analysis, and Fast Visualization of Animal and Plant\nPedigrees",
  "Version": "1.10.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.\nMatrix-free pedigree traversals apply additive relationship\nmatrices or their inverses to vectors and matrices without\nmaterializing dense square matrices. Pedigree graphs are\nrendered via 'igraph' with support for compact full-sib family\ndisplay; relationship matrices can be visualized as heatmaps.\nSupports complex mating systems, including selfing and\npedigrees in which the same individual can appear as both sire\nand 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/Needs/website": "rmarkdown",
  "Config/testthat/edition": "3",
  "RoxygenNote": "7.3.3",
  "Repository": "https://luansheng.r-universe.dev",
  "Date/Publication": "2026-09-23 04:40:24 UTC",
  "RemoteUrl": "https://github.com/luansheng/vispedigree",
  "RemoteRef": "HEAD",
  "RemoteSha": "2899405f033629114001894c8ad2c311840a88a6",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-10-23 06:32:02 UTC",
    "User": "root"
  },
  "Author": "Sheng Luan [aut, cre]",
  "Maintainer": "Sheng Luan <luansheng@gmail.com>",
  "_user": "luansheng",
  "_type": "src",
  "_file": "visPedigree_1.10.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/21a9bd82620bff086816718bee0e39c0e3803961e30b26932320efeffd9ed3c5",
  "_filesize": 8744315,
  "_sha256": "21a9bd82620bff086816718bee0e39c0e3803961e30b26932320efeffd9ed3c5",
  "_expires": "2027-01-31T06:42:23.000Z",
  "_created": "2026-10-23T06:32:02.000Z",
  "_published": "2026-10-23T06:42:25.010Z",
  "_upstream": "https://github.com/luansheng/vispedigree",
  "_status": "success",
  "_maintainer": {
    "name": "Sheng Luan",
    "email": "luansheng@gmail.com",
    "login": "luansheng",
    "description": "Selective breeding for shrimp and fish.",
    "uuid": 7497135
  },
  "_jobs": [
    {
      "job": 120277364760,
      "time": 155,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12483192105"
    },
    {
      "job": 120277364789,
      "time": 201,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12483651078"
    },
    {
      "job": 120277364793,
      "time": 288,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12483441837"
    },
    {
      "job": 120277364831,
      "time": 288,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12482579441"
    },
    {
      "job": 120277364951,
      "time": 228,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12483213614"
    },
    {
      "job": 120277364975,
      "time": 552,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12483259321"
    },
    {
      "job": 120277364939,
      "time": 183,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12483461467"
    },
    {
      "job": 120277364873,
      "time": 364,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12483358392"
    },
    {
      "job": 120274799573,
      "time": 470,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12483321444"
    },
    {
      "job": 120277364886,
      "time": 294,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12483532242"
    },
    {
      "job": 120277364849,
      "time": 425,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12483761564"
    },
    {
      "job": 120277364882,
      "time": 243,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12482434986"
    },
    {
      "job": 120277364925,
      "time": 125,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12483611072"
    },
    {
      "job": 120277364964,
      "time": 400,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12483716375"
    },
    {
      "job": 120277364851,
      "time": 386,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12483955265"
    }
  ],
  "_buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919",
  "_commit": {
    "id": "2899405f033629114001894c8ad2c311840a88a6",
    "author": "Sheng Luan <{7497135+luansheng@users.noreply.github.com}>",
    "committer": "Sheng Luan <{7497135+luansheng@users.noreply.github.com}>",
    "message": "ci: skip renv activation on CI\n\nThe pkgdown workflow failed in setup-r-dependencies with\n\n  Error in library(pak, lib.loc = Sys.getenv(\"R_LIB_FOR_PAK\")) :\n    there is no package called 'pak'\n\nrenv/activate.R masks install.packages(), so the pak that\nsetup-r-dependencies installs goes through renv's cache and lands in\nrenv/library as a symlink, while the packages pak subsequently installs\nare ordinary directories. The workflow's cache covers renv/library but\nnot renv's cache, so as soon as that cache was restored the symlink\ndangled; renv reported exactly one package with a missing cache entry,\npak, because it was the only cache-linked entry in the library. That run\nwas the first ever to hit the cache -- the run that created it was a\nmiss, so the entry had never been round-tripped.\n\nClearing the cache alone would not fix this: the workflow deletes\n.github/pkg.lock at the end of each run, so hashFiles() over it is\nconstant and the key never changes, and the next run would save a cache\nwith the same dangling symlink.\n\nrenv.lock is not tracked, so renv has no lockfile to restore on CI and\nmanages nothing there. Skip activation when CI is set, which is what\nGitHub Actions does; locally renv still activates as before. Without a\nrenv project the action falls back to R_LIBS_SITE and caches real\ndirectories.\n\n.Rprofile is .Rbuildignore'd, so the CRAN tarball is unaffected.\n",
    "time": 1790138424
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_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"
    },
    {
      "package": "devtools",
      "role": "Suggests"
    },
    {
      "package": "roxygen2",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "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
    },
    {
      "week": "2026-27",
      "n": 7
    },
    {
      "week": "2026-28",
      "n": 23
    },
    {
      "week": "2026-29",
      "n": 6
    },
    {
      "week": "2026-30",
      "n": 5
    },
    {
      "week": "2026-31",
      "n": 3
    },
    {
      "week": "2026-32",
      "n": 2
    },
    {
      "week": "2026-39",
      "n": 8
    }
  ],
  "_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"
    },
    {
      "name": "v1.9.0",
      "date": "2026-07-11"
    },
    {
      "name": "v1.10.0",
      "date": "2026-08-08"
    },
    {
      "name": "v1.10.1",
      "date": "2026-09-23"
    }
  ],
  "_stars": 22,
  "_contributors": [
    {
      "user": "luansheng",
      "count": 304,
      "uuid": 7497135
    }
  ],
  "_userbio": {
    "uuid": 7497135,
    "type": "user",
    "name": "Sheng Luan",
    "followers": 29,
    "description": "Selective breeding for shrimp and fish."
  },
  "_downloads": {
    "count": 565,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/visPedigree"
  },
  "_devurl": "https://github.com/luansheng/vispedigree",
  "_pkgdown": "https://luansheng.github.io/visPedigree/",
  "_searchresults": 69,
  "_topics": [
    "openblas",
    "cpp",
    "openmp"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/visPedigree.html"
  ],
  "_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"
    },
    {
      "version": "1.9.0",
      "date": "2026-07-15"
    },
    {
      "version": "1.10.1",
      "date": "2026-09-24"
    }
  ],
  "_exports": [
    "as_tidyped",
    "expand_pedmat",
    "has_candidates",
    "has_inbreeding",
    "inbreed",
    "is_tidyped",
    "pedancestry",
    "pedcontrib",
    "pedecg",
    "pedexport",
    "pedfclass",
    "pedgenint",
    "pedhalflife",
    "pediv",
    "pedmat",
    "pedmeta",
    "pedne",
    "pedpartial",
    "pedprod",
    "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": "pedexport",
      "title": "Export a pedigree to a breeding software format",
      "topics": [
        "pedexport"
      ]
    },
    {
      "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": "pedprod",
      "title": "Matrix-Free Pedigree Relationship Products",
      "topics": [
        "pedprod"
      ]
    },
    {
      "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.32+ds-5",
      "name": "openblas",
      "homepage": "https://www.openblas.net/",
      "description": "Optimized BLAS (linear algebra) library (shared lib, pthread)"
    },
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    },
    {
      "shlib": "libgomp",
      "package": "libgomp1",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "openmp",
      "homepage": "http://gcc.gnu.org/",
      "description": "GCC OpenMP (GOMP) support library"
    }
  ],
  "_vignettes": [
    {
      "source": "efficient-visPedigree-workflows.Rmd",
      "filename": "efficient-visPedigree-workflows.html",
      "title": "Efficient Pedigree Data Workflows in R",
      "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-07-25 13:48:56",
      "commits": 3
    },
    {
      "source": "pedigree-analysis.Rmd",
      "filename": "pedigree-analysis.html",
      "title": "Pedigree Analysis and Genetic Diversity in R",
      "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-07-25 08:34:05",
      "commits": 14
    },
    {
      "source": "relationship-matrix.Rmd",
      "filename": "relationship-matrix.html",
      "title": "Pedigree Relationship Matrices and Matrix-Free Products in R",
      "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. Matrix-Free Products with pedprod()",
        "2.1 When to Use pedprod vs pedmat",
        "2.2 Basic Usage — $A x$ (vector)",
        "2.3 Products with $A^",
        "2.4 Multiple Contribution Schemes — $A X$",
        "2.5 Practical Use Cases",
        "Optimal Contribution Selection (OCS)",
        "Mixed Model Equations",
        "Founder Contribution Analysis",
        "2.6 Performance and Scalability",
        "3. Inspecting the Matrix",
        "3.1 Summary Statistics",
        "3.2 Querying Specific Relationships",
        "4. Compact Mode for Large Pedigrees",
        "4.1 Using compact = TRUE",
        "4.2 Expanding and Querying Compacted Matrices",
        "4.3 When to Use Compact Mode",
        "5. Visualizing Relationship Matrices with vismat()",
        "5.1 Relationship Heatmaps",
        "Compact Matrix — Direct Visualization",
        "Preserve Pedigree Order",
        "Display a Subset of Individuals",
        "Grouping by Pedigree Column",
        "5.2 Inbreeding and Kinship Histograms",
        "6. Performance Considerations",
        "References"
      ],
      "created": "2026-01-20 14:18:28",
      "modified": "2026-09-23 01:35:08",
      "commits": 20
    },
    {
      "source": "draw-pedigree.Rmd",
      "filename": "draw-pedigree.html",
      "title": "Pedigree Visualization in R",
      "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.1.3 Drawing a plant pedigree with monoecious individuals",
        "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-09-23 01:35:08",
      "commits": 31
    },
    {
      "source": "tidy-pedigree.Rmd",
      "filename": "tidy-pedigree.html",
      "title": "Preparing and Validating Pedigree Data in R",
      "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",
        "3.9 Working with plant pedigrees and selfing",
        "References"
      ],
      "created": "2018-11-14 08:34:52",
      "modified": "2026-07-25 13:48:56",
      "commits": 23
    },
    {
      "source": "tidyped-structure.Rmd",
      "filename": "tidyped-structure.html",
      "title": "tidyped: Pedigree Data Structure and Extension Guide",
      "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-07-25 13:48:56",
      "commits": 4
    }
  ],
  "_score": 8.00081570710133,
  "_indexed": true,
  "_nocasepkg": "vispedigree",
  "_universes": [
    "luansheng"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.10.1",
      "date": "2026-10-23T06:34:18.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/75a4f6e5bbc88ee8831a0819216144eaac92973d7a66b6cdb39fff65bf2b48db",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.10.1",
      "date": "2026-10-23T06:34:46.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/e84766bb483cbc62217c33242ac9a70a55af41e57e4a487aee9772d49cbbf33d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.10.1",
      "date": "2026-10-23T06:36:30.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/0b1f545b4a7f53a05c4853d8eb4fa5ee1fa9d4d140749bd182bde9423986ef23",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.10.1",
      "date": "2026-10-23T06:36:42.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/2a5606ddfe513a8d51af4c1028bbfa35a56e980ddc5663fa92a08829eef15bb6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.10.1",
      "date": "2026-10-23T06:34:54.000Z",
      "arch": "aarch64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/2785b4fe868f42cfc85f1ad186ec51cbea2b79d2c9378e9e8aa65729f9c88e85",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.10.1",
      "date": "2026-10-23T06:38:28.000Z",
      "arch": "x86_64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/a1c05a21f1422bd104bc9dcbdd13e18c30d705c154fa4a12ab945b0c395dfb3b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.10.1",
      "date": "2026-10-23T06:34:27.000Z",
      "arch": "aarch64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/774011590715312a0b78d6e86769278e4d750d5fdfad21c1db8606f19e02f7b9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.10.1",
      "date": "2026-10-23T06:36:12.000Z",
      "arch": "x86_64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/d0b11dde0ca6865e6f56cd12449c0f0fa7a73c9728a9da90e32ed86e00a9b85d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.10.1",
      "date": "2026-10-23T06:37:30.000Z",
      "arch": "emscripten",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/12bb0f83efd5b3bdeba64248b2e272a7ffae6bbed40c710634d744c5eb93c61b",
      "status": "success",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.10.1",
      "date": "2026-10-23T06:37:41.000Z",
      "arch": "aarch64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/ed6a3ddce9579d2397dc7fe1aa9833a2bc472ec673e907d5598615a4370ee645",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.10.1",
      "date": "2026-10-23T06:33:58.000Z",
      "arch": "x86_64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/50ba23bf260e2826ae14736f594558be77610f83a884aaf910bcbd9dd0eba323",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.10.1",
      "date": "2026-10-23T06:33:34.000Z",
      "arch": "x86_64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/68c94c55e6e79ba837ef8d7310f1f01f4baaeb27be095a9c845c820fff50a0ff",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.10.1",
      "date": "2026-10-23T06:37:19.000Z",
      "arch": "aarch64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/a50ae85bafbc253ab5fbe6b04123fe26f4c15b02f8e7513c26d980283d7470b5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.10.1",
      "date": "2026-10-23T06:37:24.000Z",
      "arch": "x86_64",
      "commit": "2899405f033629114001894c8ad2c311840a88a6",
      "fileid": "https://r2.ropensci.org/175046d46f64e480e6d26e873c1d1e1ffec1e2964093a7d1c89c905297bd07c9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/luansheng/actions/runs/39911301919"
    }
  ]
}