This release corrects a number of latent defects that were found while adding a regression test suite to the package. Several of them prevented documented functionality from being used at all. The linkage maps produced by ASMap are unchanged.
Complete documentation is now published at
https://drj001.github.io/ASMap/, as a set of articles covering
each function, the technical basis of the MSTmap algorithm and a
fully worked example. The documentation has been substantially
revised in the process. Notably, code that was previously displayed
but never executed is now run when the articles are built, which
uncovered several examples that no longer worked: plot.rf,
plot.missing and plot.map have not been exported by
qtl for some time and are now given as plotRF,
plotMissing and plotMap.
The comprehensive PDF vignette has been retired and replaced by
a short HTML vignette, vignette("ASMap"), which introduces the
package and points to the articles for complete detail. The package
build therefore no longer requires LaTeX, removing the class of
failure that led to the archiving of version 1.0-8.
Corrected the package bibliography, in which four entries contained unexpanded LaTeX macros, one entry listed an incorrect URL, and the authors of the MSTmap reference were separated in a way that caused them to be reordered when rendered.
pushCross and pullCross used the type
argument before it had been resolved by match.arg. In
pushCross this tested a condition of length four, which R
4.2.0 and later treat as an error, so the function failed whenever
the default argument was used. In pullCross it caused
recursive indexing. Both now resolve type before first use.
pushCross checked the number of genotypes in the pushed
marker set before establishing that any such markers existed, which
produced an uninformative error. It now reports that there are no
markers of that type to push back.
mstmap.data.frame failed rather than warning when marker
or genotype names contained spaces, and assigned corrected genotype
names to the marker names. Spaces are now replaced with a
"-" separator in the correct component, with a warning.
alignCross raised an uninformative error when the
maps argument was not a list, and when object had a
single class. Both are now reported correctly.
mstmap.data.frame did not reject numeric input for
RILn population types, because the test used
is.numeric on a data.frame.
mstmap.cross and mstmap.data.frame could pick up
an unrelated object named omit.list from the calling
environment.
Corrected the axis labels produced by pValue and a
cross reference in a statMark error message.
Two memory leaks in the MSTmap C++ code have been repaired. A
working array in the marker relocation step was allocated on every
call and never released, and the object holding the genotype data
and the pairwise distance matrix was never released at the end of a
map construction. For a linkage group of n markers the latter
retained an n \times n matrix of doubles per call. The base
class destructor is now virtual, as the object is owned through a
base class pointer.
The distance function member is now initialised, and an unrecognised distance function is reported rather than leading to the use and release of an uninitialised pointer.
Corrected undefined behaviour when testing whether a genotype
string is numeric, which passed a possibly negative char to
isdigit.
Added a guard, equivalent to the one already used for doubled
haploid populations, for the case where two markers in a RIL
population share no scored individuals. This previously divided by
zero and propagated NaN into the distance matrix.
These changes do not alter the linkage maps produced. Marker orders and genetic distances are unchanged on all bundled datasets.
A testthat regression test suite has been added. It pins the marker orders and genetic distances produced for the bundled datasets so that internal changes can be shown not to alter the linkage maps.
This release restored ASMap to CRAN following the archiving of version 1.0-8. There were no user visible changes to the functionality of the package.
The package vignette used the tabu LaTeX package, which
is no longer maintained and is incompatible with current versions of
the array package. Re-building the vignette therefore failed
with an “Undefined control sequence” error, which led to the
archiving of version 1.0-8 on CRAN. The vignette now uses
tabularx from the standard LaTeX tools bundle, which
provides the same functionality.
Version 1.0-x of the ASMap package celebrates the
Journal of Statistical Software publication, Taylor and Butler
(2017). The paper succinctly summarizes the important contents of
the package vignette and provides a useful quick reference for the
functionality of the package. If you use ASMap in your
publication please reference it using the bibliographic reference obtainable using
citation("ASMap") and given below.
Taylor, J., Butler, D. (2017) R Package ASMap: Efficient Genetic Linkage Map Construction and Diagnosis. Journal of Statistical Software, 79(6), 1–29.
There is now a p-value function to emulate Figure 1.1 in
the vignette. The function allows users to specify their own set
of threshold distances and population sizes, making it easier to
determine the correct choice of p.value to use in
mstmap.cross and mstmap.data.frame.
The function combineMap has been updated to include
merging of linkage maps by "marker" or
"genotype". Merging by "genotype" is identical to
the previous version of the function. Merging by
"marker" provides the ability to combine linkage maps with
different sets of genotypes through common markers.
fixClones muddled linkage groups when an inputted map
had more than one linkage group. This has now been amended.
The fixClones function crashed when consensus =
FALSE was set. This has now been amended.
The cross.scheme of the object was lost when pushing
back markers using pushCross. This has now been amended.
The function quickEst crashed when there were linkage
groups with one marker. This has now been amended.
The function alignCross crashed with a non-descript
error when there were no matching markers in supplied reference
maps. This has now been amended to provide a more descript error.
This is the first documented NEWS release of ASMap. For this reason it contains information about features of the package as well as recent bug fixes.
The package now contains a function to assist in identifying
and orienting linkage groups (see ?alignCross).
The heat map in the package now uses a diverging colour palette chosen from the default palettes available in RColorBrewer.
The package now includes a PDF vignette. This can be found on any operating system using the command
> vignette("ASMap")
The vignette includes extensive descriptions of the package functions as well as fully worked example that showcases the package functions throuh pre-diagnosis, construction and post diagnosis of a linkage map. It also describes how the package can be used efficiently for techniques such as fine mapping or combining maps.
The package now includes three fully documented marker data sets for users to explore. See the vignette for more details.
Fixed a nasty bug in combineMap() that switched
genotype names for certain linkage maps
Fixed bug that returned inflated distances for "ARIL"
populations when using mstmap.data.frame().
If the constructed map contained linkage groups with one
marker profileMark() graphically displaced the interval
statistics. This has now been amended.
pushCross() can now push large volumes of co-located
markers back into the constructed map very efficiently.
profileMark() was not outputting crti.val column
when crit.val = "bonf" argument was chosen. This has now
been amended.
quickEst() has been improved and now provides an even
more accurate and efficient distance calculations for linkage maps.