GenoConvert
fake .map output file: change chrom 0 (unmapped) to chrom 1, as SNPs on chromosome 0 get excluded by default by e.g. PLINK & GCTACalcRped
: drop dummy parents of 'half founders' from output (1 known + 1 unknown parent not supported by pkg kinship2)
- make assignment of grandparents to singletons a bit more conservative
- minor fixes to pass CRAN checks
- improved assignment rate when some birth years are unknown
- improved messages, with {cli} markup
- a few minor bugfixes in the Fortran code
- upgrade of
GenoConvert
: new vcf and genlight input, various bugs fixed, behaviour made more consistent and clearer through additional messages. - retain SNP names in
GenoConvert
andSnpStats
- fix bug in
MkGenoErrors
(used bySimGeno
) causing about 3x too many hom|hom errors whenSnpError
is a single value: first beta-distributed per-SNP genotyping error rates$E_l$ were generated, and then$(E_l/2)^2$ calculated. Now the single value is by default first morphed into a length 3 vector (hom|hom, het|hom, hom|het), and three beta distributions are generated. - adds log to
MkGenoErrors
-
SimGeno
ParMis default changed from 0.4 to 0 - default genotyping pattern slightly changed to ensure the probability a homozyogote
does not have a genotyping error is identical to a heterozygote (see
ErrToM
). - Beta-version of
EstEr
(estimation of genotyping errors) removed due to inaccurate estimations and misuse. Will (probably) be re-implemented in a future version.
- fixes bugs introduced since version 2.5, plus various other edits in source code to improve assignment rate
- fix bug in
CalcMaxMismatch
: OH with both parents counts as 2 mismatches (was 1)
- fix bug causing some negative parental LLRs, and possibly some non-assignments
- speed increase for lower call rates
- add OutFormat 'ped' to
GenoConvert
, and fix bug with OutFormat 'col'
- change
EstConf
example to nSim=1 to ensure runtime < 5 sec to pass CRAN check
- add
mtSame
: specify if individuals have the same or different mitochondrial haplotype - improved parentage assignment performance when there are many genetically similar candidate parents
- fixes CRAN issue 'cannot use Fortran's random number generator'
- add specification of assumed genotyping error rate via length 3 vector: hom|hom, het|hom, hom|het
- expand
CalcPairLL
helpfile
- fixes CRAN pretest NOTES, including broken links in vignette
- add updated vignettes (main + age); accidentally included old versions in 2.5.3
- fixed bug in
CalcBYprobs
, which caused Year.last to be ignored
- fixes CRAN error 'DLL requires the use of native symbols'
- fix error 'sibship number out of bounds'
- fix error when
LifeHistData$Sex
includesNA
- fix several minor bugs affecting rare cases
- improved performance when a large proportion of birth years is not exactly known
- optional column
Year.last
added toLifeHistData
(last possible offspring birth year) - New functions
GetAncestors
andGetDescendants
- New parameter
MinAgeParent
forMakeAgePrior()
- New parameter
StrictGenoCheck
,Strict
forCheckGeno()
; update msgs - update
CheckLH
, now flexible column order in LifeHistData. - changed maxmismatch from
qntl = 0.999^(1/nrow(GenoM))
to0.9999^(1/nrow(GenoM))
in all functions callingCalcMaxMismatch
- checks up to 6 generations back when making assignment to avoid individual being its own ancestor (was 5)
- fix bug in
SnpStats()
when AF=0 or SNP is missing for all individuals.
- R markdown file to create (or serve as a first draft of) a summary report of input and output, called via
sequoia_report()
PedCompare()
parameterminSibSize
(minimum sibship size for which the non-genotyped parent is considered 'dummyfiable') changed default value from2sib
(2 genotyped siblings) to1sib1GP
. This reflects the increased success of reconstructing grandoffspring-grandparent pairs in newest version, which make the output ofPedCompare(,minSibSize='2sib')
confusing. This also affectsEstConf()
.GetRelM()
now allows input of Pedigree AND Pairs. This a.o. allowsPlotRelPairs()
with both inferred pedigree plusGetMaybeRel()
output.
- switch from library xlsx to openxlsx in
writeSeq()
(easier to install) - adds purl=FALSE to vignette chunks & include
SeqOUT_HSg5
for quicker vignette compilation - include additional griffin example data:
Geno_griffin
,Conf_griffin
(output fromEstConf()
) andMaybeRel_griffin
(output fromGetMaybeRel()
), as well as the script used to create these (mk_griffin_data.R
) - many examples are rewritten, for clarification & to speed up package check
- the plotting function of
SummarySeq()
was internal and is now exported (PlotSeqSum()
) - output from
sequoia()
now includesargs.AP
. - in
SummarySeq()
, ifPedigree
is provided rather thanSeqList
andSNPd=NULL
, all individuals are categorised asObserved
(was:Genotyped
). PedPolish()
now has arguments to specify whether to drop extra columns (besides id-dam-sire) and whether to keep rows with non-unique or NA ids.SnpStats()
now includes HWE tests
- fixes several memory issues identified by CRAN
- fixes various bugs in
SimGeno()
for non-autosomal inheritance; this option is still experimental and non-autosomal SNPs are not supported by the pedigree reconstruction. - fixes
cannot allocate vector of size ...
issue inGetRelM()
with very large pedigrees, which affectedMakeAgePrior()
and therebysequoia()
. EstConf()
$ConfProb
used the wrong denominator, namely the number of parents in the reference pedigree rather than in the inferred pedigree.- fixes bug resulting in LL(FA)=777 ('impossible') for pairs with all 4 parents unknown. Likely only affected
CalcPairLL()
, as LL(HS)=LL(GP)=LL(FA) for these pairs. Origin time unknown. - fixes bug in
GenoConvert()
whenInformat='single'
.
- fixes bug: OH count was always zero when there was no co-parent
- fixes bug in
CalcPairLL()
HS likelihood when conditioning on pedigree was incorrect. No/minimal effect on pedigree reconstruction. - fixes bug in
DuplicateCheck()
(always automatically called bysequoia()
) that on very rare occasions caused R to crash
fixes minor bugs identified by CRAN valgrind and gcc-ASAN
minor edits to vignette to comply with CRAN precheck
- Hermaphrodites: dummy individuals with offspring as both dam and as sire now have prefix 'H'; closer links between the two 'clonal' sibship parts during pedigree reconstruction for improved performance
- Assignment of sibship grandparents moved to before check & assignment of additional parents; this proved to increase correct assignments without increasing incorrect assignments.
- new function
CalcBYprobs()
to estimate the probability that individual i is born in year y.
- various edits to Fortran code improving general performance.
- fixed inconsistent rounding in
EstConf()
output - bug in
GenoConvert()
regarding InData vs InFile
- now possible to run with assumed genotyping error rate
Err=0
- further improvements when a large proportion of birth years are missing
- various bugs related to hermaphrodites
- Sibship clustering etc. now done from oldest to youngest individual instead of in order of occurrence in genotype file, giving quicker convergence to final high likelihood pedigree.
- hermaphrodites: re-implemented and greatly improved sibship clustering. Specification of hermaphrodite vs diocious is now separate input parameter
Herm
instead of specified viaComplex
. New output list elementDummyClones
- improved performance when a large proportion of birth years are missing
- new function
CalcRped()
to calculate pedigree relatedness. Uses packagekinship2
.
Various smaller bugs have been fixed, some affecting assignment rate
- parameter 'maxSibIter' (-9/-1/0/>0) deprecated and replaced by 'Module' (pre/dup/par/ped).
sequoia()
: OptionFindMaybeRel
has been deprecated; callGetMaybeRel()
directly instead.- new function
CalcPairLL()
, returns likelihoods for each of the 7 considered relationships (PO, FS, HS, GP, FA, HA, U) for each specified pair of individuals - new function
RelPlot()
for Colony-like visualisation of pairwise relationships (automatically called byComparePairs()
)
-
sequoia()
: fixed errorobject 'ErrM' not found
when re-using output from a previous sequoia run. Circumvent this bug in version 2.0.7 by fooling the program to think it's output from an older version:names(ParOUT$Specs)[match("MaxMismatchOH", names(ParOUT$Specs))] <- "foo"
. -
sequoia()
: fixed bug causing genotyped parents to not always be monogamous whenComplx='mono'
. - various functions: fixed error when dummy prefixes have different number of characters (
Error in data.frame(id = c(dID[s(nd[1]), 1], dID[s(nd[2]), 2]), VtoM(TMP$dumparrf, : arguments imply differing number of rows)
) -
GetMaybeRel()
: fixed error(subscript) logical subscript too long
when input pedigree contains dummies -
GetMaybeRel()
: fixed error causing likely GP pairs not to be included output -
PedCompare()
: fixed id.dam.cat and id.sire.cat being 'NANA' instead of XD, XG or XX when Symmetrical=TRUE -
PlotAgePrior()
: Avoid usinggrDevices::hcl.colors()
in R versions <3.6, where this function is not yet available -
ComparePairs()
: fixed bug whenPairs2
but notPed2
is specified -
MakeAgePrior()
: fixed bug when there are no FS pairs in the input pedigree -
MakeAgePrior()
:MaxAgeParent
was ignored when a pedigree with overlapping generations was supplied
- most examples are now set to
\donttest
instead of\dontrun
, so that they can be run usingexample()
. Note that some can be quite time consuming, especiallyEstConf()
. - new function
PlotPedComp()
to visualisePedCompare()
output SimGeno()
: deprecated input parameters (since v 1.3.1) are dropped completelygetAssignCat()
no longer drops additional columns from input pedigree- Speed increase for
CalcOHLLR(, CalcLLR = FALSE)
- More thorough input checks, which are more consistent across different functions
PedCompare()
output elementDummyMatch
now also include output class of matched individual's parents & offspring- Duplicate check in
sequoia()
now only returns pairs for which LL_duplicate - max(LL_{not duplicate}) > T_filter; when call rates are low this may be a substantially shorter list than in previous versions, where all pairs with fewer than MaxMismatchDUP differences were listed. ComparePairs()
can now be called for a single pedigree, as well as to compare two pedigrees- If the plotting window in Rstudio is too small and
Plot=TRUE
, all functions will print a message and return results as usual, instead of throwing an error and not returning results. MakeAgePrior()
: more consistent implementation; is now called bysequoia()
with only lifehistory data of genotyped individuals.EstConf()
now also returns the fullCounts
table fromPedCompare()
;$RunParams
now holds the evaluated input paramters, instead of e.g.V[i]
when called from inside a loop.
- The genotyping error matrix (probability of observed genotype conditional on actual) is now fully customisable in all relevant functions, see help file of new function
ErrToM
. The default has changed very slightly from version 1.3. - new function
CalcOHLLR()
to calculate Mendelian errors and parental log-likelihood ratios for any pedigree - new function
getAssignable()
to flag genotyped and 'dummifiable' individuals in any pedigree - new function
ComparePairs()
to compare pairwise relationships between 2 pedigrees; replaces now-deprecatedDyadCompare
. - function
PedPolish()
is now user available.
- Deprecated option
MaxMismatch
of functionsequoia
, now calculated internally by new functionCalcMaxMismatch
based on number of SNPs, presumed genotyping error rate, and minor allele frequencies - function
EstConf()
now also estimates confidence for parent-pairs; output has changed considerably. - rewrote function
PedCompare()
to increase clarity of code for easier maintenance; changed output format somewhat. - Added a vignette about the ageprior, and rewrote sections of the main vignette to incorporate new functions
- In the Fortran part, re-implemented how (candidate) (grand)parent-pairs are filtered and assigned
GenoConvert()
skipped first individual when reading .raw file. Circumvent this bug in earlier versions by using optionheader=FALSE
(then header row is removed only once...)ConfProb()
expected input parameternSim
to be strictly integer, now relaxed to any value convertible to a whole number- fixed
ERROR! ***Invalid ParProb!***
triggered when some SNPs are monomorphic - fixed
SEGFAULT
triggered when some SNPs have very high missingness (>80%); possibly sibship size out of bounds - fixed
Error arguments imply differing number of rows
when there are dummy parents of 1 sex only - fixed various mostly minor bugs in the Fortran code
- fixed bugs regarding 'link time optimisation'
LifeHistData
may have 2 additional columns, with minimum and maximum possible birth year- second example pedigree (
Ped_griffin
) to illustrate overlapping generations, used in age vignette SummarySeq()
: added a pedigree summary table identical to a subset of the table returned by R packagepedantics
'pedStatSummary
; that package has been archived on CRAN. Added optionPanels
to only plot (a) specific panel(s).
- fixes bug that caused R to crash (Fortran array indexing out-of-bounds)
- several functions have become user-visible:
CheckGeno()
,MkGenoErrors()
,GetMaybeRel()
,GetRelCat()
- plotting functions added:
PlotAgePrior()
andSummarySeq()
- function
SimGeno()
input parameters have changed, old ones will be deprecated
- extended vignette with function overview & FAQ
- numerous edits to fortran source code to better handle certain (rarer) types of relatives
- various bug fixes in fortran source code
- possibly.
- added functions
EstConf
,SnpStats
- considerable changes in Fortran code
- added functionality for hermaphrodites (in silico cloned into male + female)
First version on CRAN!