# purgeR 1.8.3 (CRAN)

Inbreeding-Purging Estimation in Pedigreed Populations

[Record of 1.8.3](/cran/purgeR/v/1.8.3.md) | Compare: [With 1.8.2](/cran/purgeR/compare/1.8.2...1.8.3.md), [With another package](/compare/purgeR.md#add), [Downloads](/downloads/compare/purgeR.md#add) | [Licences](/cran/purgeR/licences.md) | [SBOM](/cran/purgeR/sbom.md)

Install from CRAN: `install.packages("purgeR")`

Also from:

- r2u (Ubuntu binaries): `sudo apt install r-cran-purger` _Listed from recorded download activity on this channel, not from a live index, so read it as last known. Bioconductor packages are named r-bioc-<name> there._
- Fedora COPR (iucar/cran): `sudo dnf install R-CRAN-purgeR` _A rebuild of what CRAN lists, so it can lag CRAN by a rebuild._
- autoCRAN (openSUSE): `sudo zypper install R-purgeR` _Listed from recorded download activity on this channel, not from a live index, so read it as last known._

- CRAN checks: OK (notes on 2 of 13)
- CRAN 30-day downloads: 498 (down 2.4% on the 30 days before, the worse direction)
- Dependent packages: 0 (none suggest it)
- Test coverage: 94% (of lines run by tests)
- Advisories: None known

## About

[Method](/about/licenses.md)

Inbreeding-purging analysis of pedigreed populations, including the computation of the inbreeding coefficient, partial, ancestral and purged inbreeding coefficients, and measures of the opportunity of purging related to the individual reduction of inbreeding load.

**Full description**

Inbreeding-purging analysis of pedigreed populations, including the computation of the inbreeding coefficient, partial, ancestral and purged inbreeding coefficients, and measures of the opportunity of purging related to the individual reduction of inbreeding load. In addition, functions to calculate the effective population size and other parameters relevant to population genetics are included. See López-Cortegano E. (2022) <doi:10.1093/bioinformatics/btab599>.

- Maintainer: Eugenio López-Cortegano
- Licence: [GPL-2](/licences/GPL-2.md)
- Latest release: 25 Jun 2026
- First release: 30 Apr 2021

- [CRAN page](https://cran.r-project.org/package=purgeR)
- [Source repository](https://gitlab.com/elcortegano/purger)
- [Issues](https://gitlab.com/elcortegano/purgeR/-/work_items/)
- [Source of every release](https://github.com/cran/purgeR)

[Compare with another package](/compare/purgeR.md#add)

**More details**

- Releases: 11
- Needs compilation: Yes
- Needs R: >= 3.5.0
- Config/roxygen2/version: 8.0.0
- Date: 2026-06-25
- LazyData: true

**Subjects (1) [Method](/about/subjects.md#found)**

- [Population genetics](/topics/subjects/population-genetics.md)

**Cite**

#### Package

Run in R for the authors' entry:

`citation("purgeR")`

The package provides a citation file, so `citation()` returns the authors' own entry.

It points to 10.1093/bioinformatics/btab599.

#### R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA: Balamuta, J. J. (2026). R Observatory: Metrics for purgeR version 1.8.3 [Data set]. HJJB, LLC. Data release v2026-10-28. https://doi.org/10.5281/zenodo.21843040

BibTeX:

```
@misc{robservatorypurgeR,
  author    = {Balamuta, James Joseph},
  title     = {{R} {Observatory}: Metrics for {purgeR} version 1.8.3},
  year      = {2026},
  publisher = {HJJB, LLC},
  doi       = {10.5281/zenodo.21843040},
  url       = {https://r-observatory.thecoatlessprofessor.com/packages/purgeR},
  note      = {Data set. Data release v2026-10-28}
}
```

From data release v2026-10-28, which the citation names so these numbers can be found later.

## Health

[Method](/about/checks-health.md)

No warnings or errors. 2 of 13 check platforms have notes.

13 CRAN platforms: 2 Note, 11 OK.

**Check output (2)**

**CRAN incoming feasibility**, Note on 2 platforms

```
Maintainer: ‘Eugenio López-Cortegano <elcortegano@protonmail.com>’

The BugReports field in DESCRIPTION has
  https://gitlab.com/elcortegano/purgeR/-/work_items/
which should likely be
  https://gitlab.com/elcortegano/purgeR/-/issues
instead.
```

**Rd contents**, Note on 2 platforms

```
Rd files without \usage:
  ‘sample_allele.Rd’ ‘search_ancestors.Rd’
\arguments should not be documented without \usage.
```

Platforms now:

- r-devel-linux-x86_64-debian-clang: Note
- r-devel-linux-x86_64-debian-gcc: Note
- r-devel-linux-x86_64-fedora-clang: OK
- r-devel-linux-x86_64-fedora-gcc: OK
- r-devel-windows-x86_64: OK
- r-oldrel-macos-arm64: OK
- r-oldrel-macos-x86_64: OK
- r-oldrel-windows-x86_64: OK
- r-patched-linux-x86_64: OK
- r-release-linux-x86_64: OK
- r-release-macos-arm64: OK
- r-release-macos-x86_64: OK
- r-release-windows-x86_64: OK

#### Over time

No change since 27 Jun 2026

**As a list (12)**

| Changed | Worst status | OK | Notes | Warnings | Errors |
| --- | --- | ---: | ---: | ---: | ---: |
| 27 Jun 2026 | Note | 12 | 1 | 0 | 0 |
| 9 Jun 2026 | OK | 13 | 0 | 0 | 0 |
| 7 Jun 2026 | Error | 12 | 0 | 0 | 1 |
| 2 May 2026 | OK | 13 | 0 | 0 | 0 |
| 25 Apr 2026 | Note | 11 | 1 | 0 | 0 |
| 22 Apr 2026 | OK | 14 | 0 | 0 | 0 |
| 18 Apr 2026 | Error | 13 | 0 | 0 | 1 |
| 16 Apr 2026 | OK | 14 | 0 | 0 | 0 |
| 10 Apr 2026 | Note | 11 | 3 | 0 | 0 |
| 9 Apr 2026 | Error | 10 | 3 | 0 | 1 |
| 28 Mar 2026 | Note | 13 | 1 | 0 | 0 |
| 10 Mar 2026 | OK | 14 | 0 | 0 | 0 |

Since March 2026

[Check results on CRAN](https://cran.r-project.org/web/checks/check_results_purgeR.html)

## Downloads

[Method](/about/downloads.md)

- Downloads in the last 30 days: 507 (down 6.3% on the 30 days before, the worse direction. It is the sum of 3 channels: CRAN, r2u and autoCRAN.)

CRAN alone: rank among CRAN packages, last 30 days: 6,234 of 26,530.

| Channel | Downloads in the last 30 days | In the total | Rank in that channel | Change |
| --- | ---: | --- | --- | --- |
| CRAN | 498 | yes | 6,234 of 26,530 | down 2.4% on the 30 days before, the worse direction |
| r2u | 4 | yes | 10,337 of 30,526 | down 75% on the 30 days before, the worse direction |
| autoCRAN | 5 | yes | 10,893 of 29,212 | down 66.7% on the 30 days before, the worse direction |

Other windows: [Last 90 days](/cran/purgeR.md?win=90d#downloads), [Last 365 days](/cran/purgeR.md?win=365d#downloads), [All time](/cran/purgeR.md?win=all#downloads).

To leave channels out of the total, name them in the address, joined by dots: `?off=r2u.autocran`.

#### Over time

Downloads over time, the last 12 whole months:

| Month | CRAN | r2u | autoCRAN | Sum |
| --- | ---: | ---: | ---: | ---: |
| Oct 2025 | 350 | 26 | no figure | 376 |
| Nov 2025 | 285 | 32 | no figure | 317 |
| Dec 2025 | 292 | 28 | no figure | 320 |
| Jan 2026 | 276 | 30 | no figure | 306 |
| Feb 2026 | 306 | 38 | no figure | 344 |
| Mar 2026 | 325 | 29 | no figure | 354 |
| Apr 2026 | 269 | 49 | no figure | 318 |
| May 2026 | 240 | 42 | no figure | 282 |
| Jun 2026 | 436 | 31 | no figure | 467 |
| Jul 2026 | 403 | 25 | 27 | 455 |
| Aug 2026 | 347 | 20 | 35 | 402 |
| Sep 2026 | 501 | no figure | 11 | not whole yet |

The sum stops at Aug 2026: r2u has no later month on record yet.

First day on record: CRAN 30 Apr 2021, r2u 22 May 2022, autoCRAN 29 Jun 2026.

Every channel here counts downloads, so the channels can be stacked and summed for one period. Each channel counts in its own way and covers a different span of years, so read a sum as a rough total, and read a rise where a channel begins as that channel starting, not as growth.

Weeks start on Monday. A first or last week or month that the channel does not cover in full is left out, so every point is a whole period.

Days with no record add nothing to their week or month. For a little-used package that is usually a day with no downloads, but it can also be a gap in collection.

[Compare downloads](/downloads/compare/purgeR.md#add)

## Dependencies

[Method](/about/reverse-dependencies.md)

- Needs: 7
- Dependent packages: 0
- Suggested by: 0

**Needs (7)**

- [doSNOW](/cran/doSNOW.md)
- [foreach](/cran/foreach.md)
- parallel
- [progress](/cran/progress.md)
- [Rcpp](/cran/Rcpp.md)
- [RcppProgress](/cran/RcppProgress.md)
- [shiny](/cran/shiny.md)

- Installing it adds: 41 packages, 27.0 MB of source
- Of those, need compilation: 20

**Optional extras (22)**

- [caret](/cran/caret.md)
- [coda](/cran/coda.md)
- [dplyr](/cran/dplyr.md)
- [e1071](/cran/e1071.md)
- [ggplot2](/cran/ggplot2.md)
- [ggraph](/cran/ggraph.md)
- [glmnet](/cran/glmnet.md)
- [gtable](/cran/gtable.md)
- [igraph](/cran/igraph.md)
- [knitr](/cran/knitr.md)
- [magrittr](/cran/magrittr.md)
- [pander](/cran/pander.md)
- [plotly](/cran/plotly.md)
- [plyr](/cran/plyr.md)
- [purrr](/cran/purrr.md)
- [rmarkdown](/cran/rmarkdown.md)
- [scales](/cran/scales.md)
- [stringr](/cran/stringr.md)
- [testthat](/cran/testthat.md)
- [tibble](/cran/tibble.md)
- [tidyr](/cran/tidyr.md)
- [tidyselect](/cran/tidyselect.md)

## Code

[Method](/about/code-metrics.md)

Selected function: `check_basic`

- Kind: Internal R function
- File: R/check.R, line 12
- Lines: 15
- Complexity: 2
- Covered by tests: 100%

Called by 16: [`ip_Fij`](/cran/purgeR.md?fn=ip_Fij&view=focus#code) (77% of lines run by tests), [`pop_Nancestors`](/cran/purgeR.md?fn=pop_Nancestors&view=focus#code) (88% of lines run by tests), [`w_reproductive_value`](/cran/purgeR.md?fn=w_reproductive_value&view=focus#code) (100% of lines run by tests), [`ip_op`](/cran/purgeR.md?fn=ip_op&view=focus#code) (88% of lines run by tests), [`ped_maternal`](/cran/purgeR.md?fn=ped_maternal&view=focus#code) (92% of lines run by tests), [`ped_rename`](/cran/purgeR.md?fn=ped_rename&view=focus#code) (100% of lines run by tests), [`ip_Fa`](/cran/purgeR.md?fn=ip_Fa&view=focus#code) (100% of lines run by tests), [`ip_g`](/cran/purgeR.md?fn=ip_g&view=focus#code) (88% of lines run by tests), [`ped_sort`](/cran/purgeR.md?fn=ped_sort&view=focus#code) (100% of lines run by tests), [`ip_F`](/cran/purgeR.md?fn=ip_F&view=focus#code) (100% of lines run by tests), [`ped_clean`](/cran/purgeR.md?fn=ped_clean&view=focus#code) (100% of lines run by tests), [`pop_t`](/cran/purgeR.md?fn=pop_t&view=focus#code) (100% of lines run by tests), [`w_offspring`](/cran/purgeR.md?fn=w_offspring&view=focus#code) (94% of lines run by tests), [`pop_hwd`](/cran/purgeR.md?fn=pop_hwd&view=focus#code) (100% of lines run by tests), [`w_grandoffspring`](/cran/purgeR.md?fn=w_grandoffspring&view=focus#code) (100% of lines run by tests), [`ped_graph`](/cran/purgeR.md?fn=ped_graph&view=focus#code) (100% of lines run by tests)

Calls 7: [`check_df`](/cran/purgeR.md?fn=check_df&view=focus#code) (100% of lines run by tests), [`check_names`](/cran/purgeR.md?fn=check_names&view=focus#code) (100% of lines run by tests), [`check_repeat_id`](/cran/purgeR.md?fn=check_repeat_id&view=focus#code) (100% of lines run by tests), [`check_zero_id`](/cran/purgeR.md?fn=check_zero_id&view=focus#code) (100% of lines run by tests), [`check_index`](/cran/purgeR.md?fn=check_index&view=focus#code) (100% of lines run by tests), [`check_order`](/cran/purgeR.md?fn=check_order&view=focus#code) (91% of lines run by tests), [`check_types`](/cran/purgeR.md?fn=check_types&view=focus#code) (100% of lines run by tests)

Paths: 2 steps each way.

Called by 16:

- [`ip_Fij`](/cran/purgeR.md?fn=ip_Fij&view=focus#code), called by 1
  - [`ip_op`](/cran/purgeR.md?fn=ip_op&view=focus#code)
- [`pop_Nancestors`](/cran/purgeR.md?fn=pop_Nancestors&view=focus#code), called by 5
  - [`pop_Na`](/cran/purgeR.md?fn=pop_Na&view=focus#code)
  - [`pop_Nae`](/cran/purgeR.md?fn=pop_Nae&view=focus#code)
  - [`pop_Nf`](/cran/purgeR.md?fn=pop_Nf&view=focus#code)
  - [`pop_Nfe`](/cran/purgeR.md?fn=pop_Nfe&view=focus#code)
  - [`pop_Ng`](/cran/purgeR.md?fn=pop_Ng&view=focus#code)
- [`w_reproductive_value`](/cran/purgeR.md?fn=w_reproductive_value&view=focus#code)
- [`ip_op`](/cran/purgeR.md?fn=ip_op&view=focus#code)
- [`ped_maternal`](/cran/purgeR.md?fn=ped_maternal&view=focus#code)
- [`ped_rename`](/cran/purgeR.md?fn=ped_rename&view=focus#code), called by 2
  - [`ped_sort`](/cran/purgeR.md?fn=ped_sort&view=focus#code)
  - [`ped_clean`](/cran/purgeR.md?fn=ped_clean&view=focus#code)
- [`ip_Fa`](/cran/purgeR.md?fn=ip_Fa&view=focus#code)
- [`ip_g`](/cran/purgeR.md?fn=ip_g&view=focus#code)
- [`ped_sort`](/cran/purgeR.md?fn=ped_sort&view=focus#code)
- [`ip_F`](/cran/purgeR.md?fn=ip_F&view=focus#code), called by 1
  - [`check_Fcol`](/cran/purgeR.md?fn=check_Fcol&view=focus#code), called by 5
- [`ped_clean`](/cran/purgeR.md?fn=ped_clean&view=focus#code)
- [`pop_t`](/cran/purgeR.md?fn=pop_t&view=focus#code), called by 1
  - [`check_tcol`](/cran/purgeR.md?fn=check_tcol&view=focus#code), called by 2
- [`w_offspring`](/cran/purgeR.md?fn=w_offspring&view=focus#code)
- [`pop_hwd`](/cran/purgeR.md?fn=pop_hwd&view=focus#code)
- [`w_grandoffspring`](/cran/purgeR.md?fn=w_grandoffspring&view=focus#code)
- and 1 more

Calls 7:

- [`check_df`](/cran/purgeR.md?fn=check_df&view=focus#code)
- [`check_names`](/cran/purgeR.md?fn=check_names&view=focus#code), calls 1
  - [`check_length`](/cran/purgeR.md?fn=check_length&view=focus#code), calls 1
- [`check_repeat_id`](/cran/purgeR.md?fn=check_repeat_id&view=focus#code)
- [`check_zero_id`](/cran/purgeR.md?fn=check_zero_id&view=focus#code)
- [`check_index`](/cran/purgeR.md?fn=check_index&view=focus#code)
- [`check_order`](/cran/purgeR.md?fn=check_order&view=focus#code)
- [`check_types`](/cran/purgeR.md?fn=check_types&view=focus#code)

The open file in the files map is `R/check.R`.

- Functions: 28
- Lines: 194
- Calls that stay inside it: 34
- Calls to other files: 2, to 2
- Calls from other files: 74, from 16

It calls: `R/inbreeding.R` (1 call), `R/generations.R` (1 call)

Called from: `R/expected.R` (12 calls), `R/fitness.R` (12 calls), `R/inbreeding.R` (10 calls), `R/partial.R` (5 calls), `R/load.R` (5 calls), `R/maternal.R` (5 calls), `R/opurging.R` (4 calls), `R/Nancestors.R` (4 calls), `R/time.R` (3 calls), `R/rename.R` (3 calls), `R/clean.R` (2 calls), `R/sort.R` (2 calls), and 4 more

| Function in check.R | Calls in other files |
| --- | --- |
| [`check_basic`](/cran/purgeR.md?fn=check_basic&view=focus#code) selected | nothing outside this file |
| [`check_Fcol`](/cran/purgeR.md?fn=check_Fcol&view=focus#code) | [`ip_F`](/cran/purgeR.md?fn=ip_F&view=focus#code) |
| [`check_tcol`](/cran/purgeR.md?fn=check_tcol&view=focus#code) | [`pop_t`](/cran/purgeR.md?fn=pop_t&view=focus#code) |
| [`check_ancestors`](/cran/purgeR.md?fn=check_ancestors&view=focus#code) | nothing outside this file |
| [`check_B`](/cran/purgeR.md?fn=check_B&view=focus#code) | nothing outside this file |

**More functions (23)**

| Function in check.R | Calls in other files |
| --- | --- |
| [`check_bool`](/cran/purgeR.md?fn=check_bool&view=focus#code) | nothing outside this file |
| [`check_col`](/cran/purgeR.md?fn=check_col&view=focus#code) | nothing outside this file |
| [`check_d`](/cran/purgeR.md?fn=check_d&view=focus#code) | nothing outside this file |
| [`check_df`](/cran/purgeR.md?fn=check_df&view=focus#code) | nothing outside this file |
| [`check_F`](/cran/purgeR.md?fn=check_F&view=focus#code) | nothing outside this file |
| [`check_h`](/cran/purgeR.md?fn=check_h&view=focus#code) | nothing outside this file |
| [`check_index`](/cran/purgeR.md?fn=check_index&view=focus#code) | nothing outside this file |
| [`check_int`](/cran/purgeR.md?fn=check_int&view=focus#code) | nothing outside this file |
| [`check_length`](/cran/purgeR.md?fn=check_length&view=focus#code) | nothing outside this file |
| [`check_na`](/cran/purgeR.md?fn=check_na&view=focus#code) | nothing outside this file |
| [`check_names`](/cran/purgeR.md?fn=check_names&view=focus#code) | nothing outside this file |
| [`check_Ne`](/cran/purgeR.md?fn=check_Ne&view=focus#code) | nothing outside this file |
| [`check_not_col`](/cran/purgeR.md?fn=check_not_col&view=focus#code) | nothing outside this file |
| [`check_nrows`](/cran/purgeR.md?fn=check_nrows&view=focus#code) | nothing outside this file |
| [`check_null`](/cran/purgeR.md?fn=check_null&view=focus#code) | nothing outside this file |
| [`check_order`](/cran/purgeR.md?fn=check_order&view=focus#code) | nothing outside this file |
| [`check_reference`](/cran/purgeR.md?fn=check_reference&view=focus#code) | nothing outside this file |
| [`check_repeat_id`](/cran/purgeR.md?fn=check_repeat_id&view=focus#code) | nothing outside this file |
| [`check_s`](/cran/purgeR.md?fn=check_s&view=focus#code) | nothing outside this file |
| [`check_target`](/cran/purgeR.md?fn=check_target&view=focus#code) | nothing outside this file |
| [`check_types`](/cran/purgeR.md?fn=check_types&view=focus#code) | nothing outside this file |
| [`check_u`](/cran/purgeR.md?fn=check_u&view=focus#code) | nothing outside this file |
| [`check_zero_id`](/cran/purgeR.md?fn=check_zero_id&view=focus#code) | nothing outside this file |


4 files with no calls to or from another: `R/shiny.R`, `R/zzz.R`, `src/inbreeding_utils.h`, `src/opurging.cpp`.

The whole package has 102 function names in 31 files and 147 calls between them. Most calls between files: `R/check.R` and `R/expected.R` (12 calls), `R/check.R` and `R/fitness.R` (12 calls), `R/check.R` and `R/inbreeding.R` (11 calls), `R/check.R` and `R/load.R` (5 calls), `R/check.R` and `R/partial.R` (5 calls).

Graph: the whole call graph has 87 function names that take part in a call and 147 calls between them, set out in 8 layers with callers before what they call. 15 function names have no calls and are left out. Called by the most functions: `check_basic` (16), `check_length` (15), `check_not_col` (10), `check_int` (9), `check_Ne` (6). Calling the most functions: `ip_Fij` (8), `check_basic` (7), `exp_B` (7), `w_reproductive_value` (7), `exp_Fs` (5).

Most connected functions: [`check_basic`](/cran/purgeR.md?fn=check_basic&view=focus#code) 23, [`check_length`](/cran/purgeR.md?fn=check_length&view=focus#code) 16, [`check_not_col`](/cran/purgeR.md?fn=check_not_col&view=focus#code) 11, [`check_int`](/cran/purgeR.md?fn=check_int&view=focus#code) 10, [`ip_Fij`](/cran/purgeR.md?fn=ip_Fij&view=focus#code) 9, [`pop_Nancestors`](/cran/purgeR.md?fn=pop_Nancestors&view=focus#code) 9

To select another function, add ?fn=NAME to this address.

The call graph also has an address of its own: /cran/purgeR/graph.md?fn=check_basic&view=focus

- Functions: 108
- Public exports: 25
- Lines of R code: 2,161
- Median complexity: 2

**Functions (108)**

| Function (sorted, low to high) | Kind | File | Lines | Complexity | Covered |
| --- | --- | --- | ---: | ---: | ---: |
| [`exp_F`](/cran/purgeR.md?fn=exp_F#code) | Public | R/expected.R | 6 | 2 | 100% |
| [`exp_Fa`](/cran/purgeR.md?fn=exp_Fa#code) | Public | R/expected.R | 6 | 2 | 100% |
| [`exp_g`](/cran/purgeR.md?fn=exp_g#code) | Public | R/expected.R | 22 | 4 | 94% |
| [`ip_F`](/cran/purgeR.md?fn=ip_F#code) | Public | R/inbreeding.R | 5 | 1 | 100% |
| [`ip_Fa`](/cran/purgeR.md?fn=ip_Fa#code) | Public | R/inbreeding.R | 8 | 2 | 100% |
| [`ip_Fij`](/cran/purgeR.md?fn=ip_Fij#code) | Public | R/partial.R | 39 | 11 | 77% |
| [`ip_g`](/cran/purgeR.md?fn=ip_g#code) | Public | R/inbreeding.R | 10 | 2 | 88% |
| [`ip_op`](/cran/purgeR.md?fn=ip_op#code) | Public | R/opurging.R | 11 | 2 | 88% |
| [`ped_clean`](/cran/purgeR.md?fn=ped_clean#code) | Public | R/clean.R | 17 | 3 | 100% |
| [`ped_graph`](/cran/purgeR.md?fn=ped_graph#code) | Public | R/igraph.R | 25 | 1 | 100% |
| [`ped_maternal`](/cran/purgeR.md?fn=ped_maternal#code) | Public | R/maternal.R | 20 | 4 | 92% |
| [`ped_rename`](/cran/purgeR.md?fn=ped_rename#code) | Public | R/rename.R | 24 | 3 | 100% |

This page lists 1 to 12 of 108 functions. [Next](/cran/purgeR.md?sort=name&order=asc&fpage=2#functions)

**Size and composition**

#### Lines by kind (7,312)

| Kind | Lines | Share |
| --- | ---: | ---: |
| R code | 2,161 | 30% |
| Tests | 497 | 7% |
| Documentation | 2,197 | 30% |
| Guides | 798 | 11% |
| Compiled code | 1,659 | 23% |

#### Lines by language

| Language | Lines | Share |
| --- | ---: | ---: |
| R | 2,658 | 36% |
| Rd | 2,197 | 30% |
| C++ | 1,499 | 21% |
| Vignettes | 798 | 11% |
| C | 160 | 2% |

Languages are counted from file extensions.

- Files: 145
- R functions: 75
- Compiled functions: 35

**Complexity**

- Median: 2
- Mean: 2.45
- Highest: 11
- Median lines per function: 6

_About complexity: Cyclomatic complexity counts the independent paths through a function: 1 is a straight line, higher is harder to test. R functions only._

**Call graph figures**

- R functions: 75
- Calls: 131
- Unconnected: 9
- Groups: 1

**Growth (11 releases)**

Total lines by release: from 6,394 (on 30 Apr 2021) to 7,312 (on 25 Jun 2026). The lowest is 6,374 and the highest is 7,312.

**Release changes**

[Both releases side by side](/cran/purgeR/compare/1.8.2...1.8.3.md)

**1.8.2 to 1.8.3**, 28 Nov 2023 to 25 Jun 2026

- Files changed: 55
- Lines added: 2,598
- Lines deleted: 1,092
- Exports: No change

**Changed measures (19)**

| Measure | Subject | Before | After |
| --- | --- | ---: | ---: |
| Internal functions | Structure | 38 | 50 |
| Total lines | Structure | 6,859 | 7,312 |
| Lines of R code | Structure | 1,862 | 2,161 |
| Lines of compiled code | Structure | 1,652 | 1,659 |
| Lines of tests | Structure | 469 | 497 |
| R functions | Languages | 63 | 75 |
| Compiled share | Languages | 24% | 23% |
| Lines of documentation | Documentation | 2,078 | 2,197 |
| Help pages citing references | Documentation | 43% | 39% |
| Help pages with examples (share) | Documentation | 32% | 29% |
| Test cases | Testing | 23 | 25 |
| Test lines per line of code | Testing | 0.25 | 0.23 |
| Mean complexity | Complexity | 2.4 | 2.45 |
| Lines per function (mean) | Complexity | 9.91 | 10.03 |
| Functions (nodes) | Call graph | 63 | 75 |
| Call edges | Call graph | 107 | 131 |
| Mean connections | Call graph | 3.4 | 3.49 |
| Functions with no connections | Call graph | 8 | 9 |
| Direct dependencies | Dependencies | 6 | 7 |

**Most changed files (12 of 55)**

| File | Lines added | Lines deleted |
| --- | ---: | ---: |
| `inst/doc/purgeR-tutorial.html` | 894 | 360 |
| `inst/doc/ip.html` | 719 | 379 |
| `R/partial.R` | 83 | 55 |
| `inst/doc/ip.R` | 61 | 61 |
| `R/check.R` | 98 | 7 |
| `MD5` | 54 | 39 |
| `src/opurging.cpp` | 42 | 43 |
| `R/load.R` | 82 | 0 |
| `R/expected.R` | 51 | 6 |
| `inst/shiny/README.md` | 57 | 0 |
| `src/inbreeding_utils.h` | 30 | 17 |
| `inst/shiny/map.R` | 40 | 0 |

## Tests

[Method](/about/coverage.md)

The tests ran and coverage was measured.

- Lines run by tests: 94.3%
- Expressions run by tests: 94.9%
- Test cases: 25
- Exports named in tests: 92%

**Coverage by file (19)**

19 files measured, least covered first.

| File | Lines | Run by tests | Not run | Coverage |
|---|---:|---:|---:|---:|
| `R/shiny.R`, 1 function | 1 | 0 | 1 | 0% |
| `R/zzz.R`, 1 function | 1 | 0 | 1 | 0% |
| `R/partial.R`, 4 functions | 93 | 74 | 19 | 80% |
| `R/check.R`, 28 functions | 125 | 102 | 23 | 82% |
| `R/Nancestors.R`, 6 functions | 17 | 14 | 3 | 82% |
| `R/opurging.R`, 1 function | 8 | 7 | 1 | 88% |
| `R/maternal.R`, 1 function | 13 | 12 | 1 | 92% |
| `R/inbreeding.R`, 3 functions | 17 | 16 | 1 | 94% |
| `R/load.R`, 3 functions | 25 | 24 | 1 | 96% |
| `R/expected.R`, 4 functions | 33 | 32 | 1 | 97% |
| `R/fitness.R`, 3 functions | 51 | 50 | 1 | 98% |
| `R/clean.R`, 1 function | 10 | 10 | 0 | 100% |
| `R/generations.R`, 1 function | 9 | 9 | 0 | 100% |
| `R/igraph.R`, 1 function | 16 | 16 | 0 | 100% |
| `R/mating.R`, 1 function | 3 | 3 | 0 | 100% |
| `R/Ne.R`, 4 functions | 17 | 17 | 0 | 100% |
| `R/rename.R`, 1 function | 18 | 18 | 0 | 100% |
| `R/sort.R`, 2 functions | 23 | 23 | 0 | 100% |
| `R/time.R`, 1 function | 11 | 11 | 0 | 100% |

Not measured, 13 files: `R/RcppExports.R`, `src/error.h`, `src/fitness.cpp`, `src/genedrop.cpp`, `src/inbreeding.cpp`, `src/inbreeding_utils.cpp`, `src/inbreeding_utils.h`, `src/mating.cpp`, `src/opurging.cpp`, `src/partial.cpp`, `src/populationSize.cpp`, `src/RcppExports.cpp`, `src/utils.h`.

**Coverage run**

- Lines counted: 491
- Lines the tests ran: 438
- Tests passed: Yes
- Measured with: covr 3.6.5 on R 4.6.1

**Test suite**

- Has tests: Yes
- Test frameworks: testthat
- Test cases: 25
- Lines of tests: 497
- Test lines per line of code: 0.23

## Documentation

[Method](/about/code-metrics.md)

- Exports documented: 100%
- Arguments documented: 100%
- Return value documented: 100%
- Help pages with examples: 29%
- Examples run in checks: 100%

**Guides (2)**

- [Inbreeding and Purging Estimates](https://cran.r-project.org/web/packages/purgeR/vignettes/ip.html)
- [purgeR tutorial](https://cran.r-project.org/web/packages/purgeR/vignettes/purgeR-tutorial.html)

**Other documentation**

- README: No
- Release notes file: Yes
- Help pages: 69
- Lines of documentation: 2,197

## Datasets

[Method](/about/objects.md)

9 datasets, 5 can be loaded by name

| Dataset | Size | Columns |
| --- | --- | --- |
| [arrui](/cran/purgeR/data/arrui.md), Arrui pedigree | 380 × 10 | id, dam, sire, survival15, prod, sex and 4 more |
| [arrui_op](/cran/purgeR/data/arrui_op.md) | 380 × 3 | Fi, Oe, yob |
| [atlas](/cran/purgeR/data/atlas.md), Cuvier's gazelle pedigree | 948 × 10 | id, dam, sire, survival15, prod, sex and 4 more |
| [dama](/cran/purgeR/data/dama.md), Dama gazelle pedigree | 1,316 × 10 | id, dam, sire, survival15, prod, sex and 4 more |
| [dama_rv](/cran/purgeR/data/dama_rv.md) | 1,265 × 2 | t, R |
| [darwin](/cran/purgeR/data/darwin.md), Darwin/Wedgwood pedigree | 63 × 3 | Individual, Mother, Father |
| [dorcas](/cran/purgeR/data/dorcas.md), Dorcas gazelle pedigree | 1,279 × 10 | id, dam, sire, survival15, prod, sex and 4 more |
| [pim](/cran/purgeR/data/pim.md) | 380 × 380 |  |
| [posterior](/cran/purgeR/data/posterior.md) | 1,000 × 3 |  |

## People

[Method](/about/author-identity.md)

- [Eugenio López-Cortegano](/people/Eugenio+L%C3%B3pez-Cortegano.md): Maintainer since 1.0 (2021), author. ORCID https://orcid.org/0000-0001-6914-6305

## Repository

[Method](/about/repo-signals.md#figures)

[elcortegano](/repos/gitlab.com/elcortegano.md) / [purger](https://gitlab.com/elcortegano/purger) on gitlab.com

- Stars: 2
- Forks: 0
- Open issues: 0
- Last commit: 25 Jun 2026

**Activity**

- Commits: 686
- Open merge requests: 0
- Tagged releases: 5
- Latest tagged release: 1.5, 10 Jul 2022
- Issues closed in: –
- Merge requests closed in: –
- Merge requests merged: –
- Created: 1 Sep 2020
- Licence file reads as: –

**Development practices (2)**

| Kind | Found |
| --- | --- |
| Continuous integration | GitLab CI |
| Coverage | .covrignore |

## History

[Method](/about/archive.md)

The line runs from the first release of purgeR on 30 Apr 2021 to 28 Oct 2026 and marks all 11 of its releases.

| Version | Released | R |
| --- | --- | ---: |
| [1.8.3](/cran/purgeR/v/1.8.3.md) current | 25 Jun 2026 | 4.6.1 |
| [1.8.2](/cran/purgeR/v/1.8.2.md) | 28 Nov 2023 | 4.3.2 |
| [1.8](/cran/purgeR/v/1.8.md) | 16 Aug 2023 | 4.3.1 |
| [1.7](/cran/purgeR/v/1.7.md) | 7 Dec 2022 | 4.2.2 |
| [1.6](/cran/purgeR/v/1.6.md) | 21 Nov 2022 | 4.2.2 |
| [1.5](/cran/purgeR/v/1.5.md) | 12 Jul 2022 | 4.2.1 |
| [1.4](/cran/purgeR/v/1.4.md) | 14 Dec 2021 | 4.1.2 |
| [1.3](/cran/purgeR/v/1.3.md) | 18 Aug 2021 | 4.1.1 |

**Earlier versions (3)**

| Version | Released | R |
| --- | --- | ---: |
| [1.2](/cran/purgeR/v/1.2.md) | 12 Jul 2021 | 4.1.0 |
| [1.1](/cran/purgeR/v/1.1.md) | 10 May 2021 | 4.0.5 |
| [1.0](/cran/purgeR/v/1.0.md) | 30 Apr 2021 | 4.0.5 |

**Release notes (1.8.3)**

- Performance improvements

---

R Observatory is independent of the R Project, CRAN and Bioconductor. The same page for people is at /cran/purgeR, and every address is listed at /llms.txt.
