NEWS.md
qpAdm_rotation
when nsources >= 3
. (issue)EIGENSTRAT
is checked in all user-facing functions that operate on this data. (issue)mergeit
and qpfstats
in the $PATH
is now checked when library(admixr)
is called.qpAdm_rotation()
).qpAdm_rotation()
procedure.Finally resumed the development of admixr! Apologies to everyone for having to wait so long. Thank you for your patience and feedback since the last release. I hope that things will start moving a little bit faster and we will reach version 1.0 in the next couple of months.
New features and improvements:
loginfo()
which operates on any output object from an admixr wrapper and shows the full log output (the “log file” in ADMIXTOOLS jargon) associated with the analysis. It also has options for saving the log file to a permanent location and to only show a log file for a target sample of interest (relevant for qpAdm analyses with multiple targets at once).details
- the user will always want to see the full analysis summary so this option is redundant. It is still kept in qpWave - for now, until I figure out how useful the full output actually is. Given the implementation of loginfo()
above, we might remove the argument from qpWave too at some point soon.download_data()
now fetches data from a more stable location.read_geno()
and write_geno()
, which makes it more convenient to write custom analytic code working on data.frames.qpAdm()
output elements and changed its function signature.keep_transversions()
to transversions_only()
. The old function is now deprecated.print.EIGENSTRAT()
now uses a pre-calculated numbers of removed/remaining sites, instead of calculating them each and every time.read_output()
made public.It turned out that dragging along Rcpp and Boost dependencies just for the VCF -> EIGENSTRAT conversion function causes unnecessary complications in the installation process. It’s not worth having it in the package if it would be used only by a small fraction of potential users.
This function has been removed and the vcf2eigenstrat
program is maintained in its own repository.
qpWave()
and qpAdm()
functions.filter_bed()
now implemented simply by calling bedtools
in the background. This turned out to be way faster and memory efficient than the previous data.table-based solution.group_labels()
update.download_data()
function that fetches the example data set from the web.filter_sites
is now implemented using data.table
and allows overlap with an arbitrary BED file.qpDstat()
-> d()
, qpF4ratio()
-> f4ratio()
, etc).f4()
function (f4mode
parameter remains in the d()
function though, as f4()
calls d()
internally).