diff --git a/DESCRIPTION b/DESCRIPTION index ec54efc4..3de71f6f 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: radiator Type: Package Title: RADseq Data Exploration, Manipulation and Visualization using R -Version: 1.3.2 -Date: 2024-04-30 +Version: 1.3.3 +Date: 2024-05-15 Encoding: UTF-8 Authors@R: c( person("Thierry", "Gosselin", email = "thierrygosselin@icloud.com", role = c("aut", "cre")), diff --git a/NEWS.md b/NEWS.md index 030d939f..4859f5d3 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,10 @@ +# radiator 1.3.3 2024-05-15 + +* Fix issue #188 related to coverage in DArT 1row and 2rows format + + + + # radiator 1.3.2 2024-04-30 * works with R 4.3.4 diff --git a/R/gds.R b/R/gds.R index d876eeb6..6ea89f9f 100644 --- a/R/gds.R +++ b/R/gds.R @@ -971,7 +971,7 @@ extract_genotypes_metadata <- function( #' baddly generated. It will say you have Read and allele Depth info, but you don't. #' Default: \code{stacks.haplo.check = FALSE}. #' @param dart.check (optional, logical) DArT have different reporting for coverage -#' information. +#' information. Will no longer report the average coverage stats from 1 and 2-rows DArT format. #' Default: \code{dart.check = FALSE}. # @keywords internal #' @export @@ -1000,15 +1000,21 @@ check_coverage <- function(gds, genotypes.metadata.check = FALSE, stacks.haplo.c # DArT count and 1 and 2 rows have different information... if (dart.check && "dart" %in% data.source) { if (any(c("2rows", "1row") %in% data.source)) { - got.coverage <- extract_markers_metadata( - gds, - markers.meta.select = c("AVG_COUNT_REF", "AVG_COUNT_SNP"), - whitelist = TRUE - ) - if (!is.null(got.coverage)) { - got.coverage <- c("AVG_COUNT_REF", "AVG_COUNT_SNP") - return(got.coverage) - } + # got.coverage <- extract_markers_metadata( + # gds, + # markers.meta.select = c("AVG_COUNT_REF", "AVG_COUNT_SNP"), + # whitelist = TRUE + # ) + # if (!is.null(got.coverage)) { + # got.coverage <- c("AVG_COUNT_REF", "AVG_COUNT_SNP") + # return(got.coverage) + # } + message("Coverage statistics information for 2rows and 1row DArT format is ignored") + message("\nradiator cannot generate coverage statistics from source\npotential blacklisted individuals bias the statistics generated by DArT") + message("\nrequest DArT count format from DArT") + + got.coverage <- NULL + return(got.coverage) }#End DART 1row and 2 rows } @@ -2162,7 +2168,7 @@ generate_stats <- function( # subsample = variant.select # exhaustive = FALSE # force.stats = TRUE - # # path.folder = NULL + # path.folder = NULL # plot = TRUE # digits = 6 # # file.date = NULL @@ -2562,7 +2568,7 @@ generate_stats <- function( } if (individuals) { - # changing the margin doesnt work with seqarray, the GDS needs to be optimized by sample + # changing the margin doesn't work with seqarray, the GDS needs to be optimized by sample # this operation is very costly in both time and disk space. # faster to do matrix calculations by rows and sums # Note to myself: the huge speed gain by using other packages robustbse, Rfast, etc. @@ -2791,11 +2797,11 @@ generate_stats <- function( # NOTE TO MYSELF need to work on including that one with DArT files...-------- #DArT 1 row and 2rows -------------------------------------------------------- # if ("dart" %in% data.source && any(c("2rows", "1row") %in% data.source)) { - # depth <- extract_markers_metadata( - # gds, - # markers.meta.select = c("AVG_COUNT_REF", "AVG_COUNT_SNP"), - # whitelist = TRUE - # ) + # depth <- extract_markers_metadata( + # gds, + # markers.meta.select = c("AVG_COUNT_REF", "AVG_COUNT_SNP"), + # whitelist = TRUE + # ) # markers <- ind <- FALSE # # if (is.null(depth)) return(NULL) diff --git a/README.md b/README.md index c93f379f..47736ef4 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,8 @@ [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active) -[![packageversion](https://img.shields.io/badge/Package%20version-1.3.2-orange.svg)](commits/master) -[![Last-changedate](https://img.shields.io/badge/last%20change-2024--04--30-brightgreen.svg)](/commits/master) +[![packageversion](https://img.shields.io/badge/Package%20version-1.3.3-orange.svg)](commits/master) +[![Last-changedate](https://img.shields.io/badge/last%20change-2024--05--15-brightgreen.svg)](/commits/master) [![R-CMD-check](https://github.com/thierrygosselin/radiator/workflows/R-CMD-check/badge.svg)](https://github.com/thierrygosselin/radiator/actions) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3687060.svg)](https://doi.org/10.5281/zenodo.3687060) diff --git a/docs/404.html b/docs/404.html index 06caca96..e00b54f1 100644 --- a/docs/404.html +++ b/docs/404.html @@ -6,7 +6,7 @@
vignettes/get_started.Rmd
get_started.Rmd
Site built with pkgdown 2.0.7.
+Site built with pkgdown 2.0.9.
diff --git a/docs/articles/index.html b/docs/articles/index.html index 29137612..f9ba5fad 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -1,5 +1,5 @@ -vignettes/life_cycle.Rmd
life_cycle.Rmd
vignettes/rad_genomics_computer_setup.Rmd
rad_genomics_computer_setup.Rmd
HTTP status was 404 Not Found
+This error is sometimes poping after a new R upgrade. Try installing +the problematic package differently.
+Instead of:
+
+BiocManager::install("SeqArray")
Try:
+
+remotes::install_local(path = "SeqArray_latest.tar.gz")
C stacks usage
So far, I haven’t found the cure to this computer-specific problem.
Potential solutions:
@@ -713,35 +725,35 @@Better to install and compile them from source to enable OpenMP. Install in the terminal zstd and lz4:
-cd ~/Downloads
-curl -L https://github.com/lz4/lz4/archive/refs/tags/v1.9.4.tar.gz | tar xf -
-cd lz4*
-make
-sudo make install
-cd ..
-sudo rm -R lz4*
cd ~/Downloads
-curl -L https://github.com/facebook/zstd/archive/refs/tags/v1.5.5.tar.gz | tar xf -
-cd zstd*
-make
-sudo make install
-cd ..
-sudo rm -R zstd*
cd ~/Downloads
+curl -L https://github.com/lz4/lz4/archive/refs/tags/v1.9.4.tar.gz | tar xf -
+cd lz4*
+make
+sudo make install
+cd ..
+sudo rm -R lz4*
cd ~/Downloads
+curl -L https://github.com/facebook/zstd/archive/refs/tags/v1.5.5.tar.gz | tar xf -
+cd zstd*
+make
+sudo make install
+cd ..
+sudo rm -R zstd*
fstcore
, fst
and data.table
requires these R Makevars specifications. If you have other
lines, comment (#
) before saving and installing from
source:
-usethis::edit_r_makevars()
#fstcore fst data.table
-CC=/usr/local/bin/gcc -fopenmp
-CXX=/usr/local/bin/g++ -fopenmp
-CXX11=/usr/local/bin/g++ -fopenmp
-CXX14=/usr/local/bin/g++ -fopenmp
-CXX17=/usr/local/bin/g++ -fopenmp
-CXX1X=/usr/local/bin/g++ -fopenmp
-CXX98=/usr/local/bin/g++ -fopenmp
+usethis::edit_r_makevars()
#fstcore fst data.table
+CC=/usr/local/bin/gcc -fopenmp
+CXX=/usr/local/bin/g++ -fopenmp
+CXX11=/usr/local/bin/g++ -fopenmp
+CXX14=/usr/local/bin/g++ -fopenmp
+CXX17=/usr/local/bin/g++ -fopenmp
+CXX1X=/usr/local/bin/g++ -fopenmp
+CXX98=/usr/local/bin/g++ -fopenmp
install.packages("fstcore", type = "source")
install.packages("fst", type = "source")
install.packages("data.table", type = "source")
Download the latest github release of Allan Strand’s rmetasim
- ++usethis::edit_r_makevars()
macOS
This latest os requires extra lines:
-+CC=/usr/local/bin/clang -CXX=/usr/local/bin/clang++ -CXX1X=/usr/local/bin/clang++ -FLIBS=-L/usr/local/lib -LDFLAGS=-L/usr/local/lib -SHLIB_OPENMP_CFLAGS= -fopenmp -SHLIB_OPENMP_FCFLAGS= -fopenmp -SHLIB_OPENMP_FFLAGS= -fopenmp -SHLIB_OPENMP_CXXFLAGS= -fopenmp -CFLAGS+=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -CCFLAGS+=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -CXXFLAGS+=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -CPPFLAGS+=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
CC=/usr/local/bin/clang +CXX=/usr/local/bin/clang++ +CXX1X=/usr/local/bin/clang++ +FLIBS=-L/usr/local/lib +LDFLAGS=-L/usr/local/lib +SHLIB_OPENMP_CFLAGS= -fopenmp +SHLIB_OPENMP_FCFLAGS= -fopenmp +SHLIB_OPENMP_FFLAGS= -fopenmp +SHLIB_OPENMP_CXXFLAGS= -fopenmp +CFLAGS+=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk +CCFLAGS+=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk +CXXFLAGS+=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk +CPPFLAGS+=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
# Go to line 1676
-# change
-ac_pkg_openmp=no
-# to
-ac_pkg_openmp=yes
-#save the file under the same name
XGBoost
requires these Makevars specifications. If you
have other lines, comment (#) before compiling:
+-usethis::edit_r_makevars()
+CC=/usr/local/bin/gcc -CXX=/usr/local/bin/g++ -CXX11=/usr/local/bin/g++ -CXX14=/usr/local/bin/g++ -CXX17=/usr/local/bin/g++ -SHLIB_OPENMP_CFLAGS= -fopenmp -SHLIB_OPENMP_FCFLAGS= -fopenmp -SHLIB_OPENMP_FFLAGS= -fopenmp -SHLIB_OPENMP_CXXFLAGS= -fopenmp -CFLAGS=-g -O3 -Wall -pedantic -std=gnu99 -mtune=native -pipe -CXXFLAGS=-g -O3 -Wall -pedantic -std=c++11 -mtune=native -pipe -LDFLAGS=-L/usr/local/lib -Wl,-rpath,/usr/local/lib -CPPFLAGS=-I/usr/local/include -I/usr/local/include
CC=/usr/local/bin/gcc +CXX=/usr/local/bin/g++ +CXX11=/usr/local/bin/g++ +CXX14=/usr/local/bin/g++ +CXX17=/usr/local/bin/g++ +SHLIB_OPENMP_CFLAGS= -fopenmp +SHLIB_OPENMP_FCFLAGS= -fopenmp +SHLIB_OPENMP_FFLAGS= -fopenmp +SHLIB_OPENMP_CXXFLAGS= -fopenmp +CFLAGS=-g -O3 -Wall -pedantic -std=gnu99 -mtune=native -pipe +CXXFLAGS=-g -O3 -Wall -pedantic -std=c++11 -mtune=native -pipe +LDFLAGS=-L/usr/local/lib -Wl,-rpath,/usr/local/lib +CPPFLAGS=-I/usr/local/include -I/usr/local/include
You should see a time difference between both runs
-+require(xgboost) x <- matrix(rnorm(100*10000), 10000, 100) y <- x %*% rnorm(100) + rnorm(1000) @@ -884,28 +896,28 @@
Download and install CMake
-+#In browser or using curl in Terminal -https://cmake.org/files/v3.12/cmake-3.12.2-Darwin-x86_64.dmg -# double-click on the disk image and follow instructions
#In browser or using curl in Terminal +https://cmake.org/files/v3.12/cmake-3.12.2-Darwin-x86_64.dmg +# double-click on the disk image and follow instructions
To add CMake to the PATH:
-+PATH="/Applications/CMake.app/Contents/bin":"$PATH" -# Or, to install symlinks to '/usr/local/bin', run: -sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install -# Or, to install symlinks to another directory, run: -sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install=/path/to/bin -#Then, run the following commands to install LightGBM:
PATH="/Applications/CMake.app/Contents/bin":"$PATH" +# Or, to install symlinks to '/usr/local/bin', run: +sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install +# Or, to install symlinks to another directory, run: +sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install=/path/to/bin +#Then, run the following commands to install LightGBM:
Download and Install LightGBM
- +@@ -920,38 +932,38 @@@@ -66,6 +66,16 @@Makevars configuration
Check that the lines below are not commented in your
-~/.R/Makevars
file:+-usethis::edit_r_makevars()
+CC=/usr/local/bin/gcc -CXX=/usr/local/bin/g++ -CFLAGS=-g -O3 -Wall -pedantic -std=gnu99 -mtune=native -pipe -CXXFLAGS=-g -O3 -Wall -pedantic -std=c++11 -mtune=native -pipe -PKG_CFLAGS= -O3 -Wall -pipe -pedantic -std=gnu99 -fopenmp -PKG_CXXFLAGS=-fopenmp -std=c++11 -FC=/usr/local/bin/gfortran -F77=/usr/local/bin/gfortran -LDFLAGS=-L/usr/local/lib -PKG_LIBS = "-liconv"
CC=/usr/local/bin/gcc +CXX=/usr/local/bin/g++ +CFLAGS=-g -O3 -Wall -pedantic -std=gnu99 -mtune=native -pipe +CXXFLAGS=-g -O3 -Wall -pedantic -std=c++11 -mtune=native -pipe +PKG_CFLAGS= -O3 -Wall -pipe -pedantic -std=gnu99 -fopenmp +PKG_CXXFLAGS=-fopenmp -std=c++11 +FC=/usr/local/bin/gfortran +F77=/usr/local/bin/gfortran +LDFLAGS=-L/usr/local/lib +PKG_LIBS = "-liconv"
Download and install
From the Terminal run these steps to download and compile randomForestSRC:
-+cd ~/Downloads -curl -L https://cran.r-project.org/src/contrib/randomForestSRC_2.9.3.tar.gz | tar xf - -cd randomForestSRC
cd ~/Downloads +curl -L https://cran.r-project.org/src/contrib/randomForestSRC_2.9.3.tar.gz | tar xf - +cd randomForestSRC
Make sure you have autoconf installed:
- +Should output:
-autoconf: error: no input file
, if not, install following the steps here.+# in Terminal -cd ~/Downloads/randomForestSRC -autoconf -cd ~/Downloads -R CMD INSTALL --preclean --clean randomForestSRC
# in Terminal +cd ~/Downloads/randomForestSRC +autoconf +cd ~/Downloads +R CMD INSTALL --preclean --clean randomForestSRC
You want to make sure that this line is printed during execution of the previous command:
checking whether OpenMP will work in a package... yes
or @@ -964,7 +976,7 @@
ranger is easy to install.
-+install.packages("ranger")
@@ -973,7 +985,7 @@@@ -111,6 +111,7 @@
missRanger is also very easy to install.
-+install.packages("missRanger")
@@ -982,7 +994,7 @@@@ -63,7 +63,7 @@ diff --git a/docs/index.html b/docs/index.html index 0b4f0649..510d9ab7 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,7 +6,7 @@
miceRanger easy to install.
-+install.packages("miceRanger")
@@ -991,7 +1003,7 @@
To install pcaMethods, from bioconductor:
-+BiocManager::install("pcaMethods")
@@ -999,27 +1011,27 @@
fastsimcoal2
To install fastsimcoal2 -v.2.6.0.3, to use in
+v.2.6.0.3, to use ingrur::simulate_rad
:grur::simulate_rad
:LINUX
- +@@ -1028,13 +1040,13 @@MacOS
- +PATH
To see the path of the installation, in the
- +Terminal
:If that doesn’t work, do:
- +Remove the files in the folder:
- +@@ -1047,14 +1059,14 @@
MacOS
The old openmpi version (openmpi-1.6.5) is required, saddly.
-+cd ~/Downloads -curl -L https://download.open-mpi.org/release/open-mpi/v1.6/openmpi-1.6.5.tar.gz | tar xf - -cd openmpi-1.6.5 -export TMPDIR=/tmp -./configure F77=gfortran #--prefix=/usr/local -openmp # no longer work for some reason -make -j 12 -sudo make install -sudo rm -R ~/Downloads/openmpi*
cd ~/Downloads +curl -L https://download.open-mpi.org/release/open-mpi/v1.6/openmpi-1.6.5.tar.gz | tar xf - +cd openmpi-1.6.5 +export TMPDIR=/tmp +./configure F77=gfortran #--prefix=/usr/local -openmp # no longer work for some reason +make -j 12 +sudo make install +sudo rm -R ~/Downloads/openmpi*
To download COLONY, follow instructions on Jinliang Wang ZSL website. The file you need to uncompress is named:
@@ -1085,31 +1097,31 @@colony2.mac_.20180730.zip
.Update -
+cd ~/Downloads -curl -L http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz | tar xf - -cd autoconf-2.69 -./configure -make -sudo make install -cd .. -sudo rm -R ~/Downloads/autoconf-*
cd ~/Downloads +curl -L http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz | tar xf - +cd autoconf-2.69 +./configure +make +sudo make install +cd .. +sudo rm -R ~/Downloads/autoconf-*
-
- Install Github
+git --version # show current git version installed -which git # returns where is git on your computer -cd ~/Downloads -git clone https://github.com/git/git # install the latest Git -cd git -make configure -./configure -make -j12 -sudo make install -cd .. -sudo rm -R ~/Downloads/git/ # remove git folder -source ~/.bash_profile # reload startup script -git --version # confirmed the version you just installed -which git # returns /usr/local/bin
git --version # show current git version installed +which git # returns where is git on your computer +cd ~/Downloads +git clone https://github.com/git/git # install the latest Git +cd git +make configure +./configure +make -j12 +sudo make install +cd .. +sudo rm -R ~/Downloads/git/ # remove git folder +source ~/.bash_profile # reload startup script +git --version # confirmed the version you just installed +which git # returns /usr/local/bin
diff --git a/docs/authors.html b/docs/authors.html index 2e704015..72d0627b 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -1,5 +1,5 @@ -macOS Terminal from specific folder @@ -1128,14 +1140,14 @@
Shortcut to folder path
With macOS, open the Automator application.
-+File -> New (cmd-N) -Choose: Services -Left panel, choose: Library -> Utilities -Middle, choose: Copy to Clipboard and drag it to the right panel -Now you want to have: Service receives selected FILES OR FOLDERS in FINDER> -You should have something similar to the image below:
- +File -> New (cmd-N) +Choose: Services +Left panel, choose: Library -> Utilities +Middle, choose: Copy to Clipboard and drag it to the right panel +Now you want to have: Service receives selected FILES OR FOLDERS in FINDER> +You should have something similar to the image below:
Go in the Finder, select a folder and right click on it you should see ‘copy path to clipboard’ at the bottom or in Services.
@@ -1160,7 +1172,7 @@Shortcut to folder path -
Site built with pkgdown 2.0.7.
+Site built with pkgdown 2.0.9.
Authors and Citation • radiator Authors and Citation • radiator @@ -17,7 +17,7 @@RADseq Data Exploration, Manipulation and Visualization using R • radiator - + @@ -33,7 +33,7 @@Installationdevtools::package_info(pkgs = "SeqArray") # to verify version # If manually installing SeqArray is necessary +install.packages("BiocManager") BiocManager::install("SeqArray")
Web site with additional info: https://thierrygosselin.github.io/radiator/
Changelog
Source:NEWS.md
R/detect_duplicate_genomes.R
detect_duplicate_genomes.Rd
R/filter_individuals.R
filter_individuals.Rd
Filter individuals based on genotyping/missingness rate, -heterozygosity and total coverage
Filter individuals based on genotyping/missingness rate, heterozygosity and total coverage
Compute pairwise genome similarity or distance between individuals -to highligh potential duplicate individuals
Compute pairwise genome similarity or distance between individuals to highligh potential duplicate individuals
Write a BayeScan -file from a tidy data frame
Write a BayeScan file from a tidy data frame
Write a strataG object from -radiator GDS and tidy data file or object.
Write a strataG object from radiator GDS and tidy data file or object.
Write a pcadapt -file from a tidy data frame
Write a pcadapt file from a tidy data frame
R/visualization.R
plot_density_distribution_maf.Rd
radiator_common_arguments(
+ interactive.filter = TRUE,
gds,
data,
parallel.core = parallel::detectCores() - 1,
@@ -84,7 +85,14 @@ radiator common arguments
Arguments
- - gds
+ - interactive.filter
+(optional, logical) Do you want the filtering session to
+be interactive. Figures of distribution are shown before asking for filtering
+thresholds.
+Default: interactive.filter = TRUE
.
+
+
+- gds
(2 options) A Genomic Data Structure (GDS) file or object
How to get GDS ?
Look into tidy_genomic_data
,
@@ -125,13 +133,6 @@
Arguments
for fine-tuning the function. Also used for legacy arguments (see details or
special section)
-
-- interactive.filter
-(optional, logical) Do you want the filtering session to
-be interactive. Figures of distribution are shown before asking for filtering
-thresholds.
-Default: interactive.filter = TRUE
.
-
sexy_markers(
data,
silicodata = NULL,
- boost.analysis = FALSE,
strata = NULL,
+ boost.analysis = FALSE,
coverage.thresholds = 1,
filters = TRUE,
interactive.filter = TRUE,
@@ -111,13 +111,6 @@ Arguments
Default: silicodata = NULL
.
-boost.analysis
-(optional, logical) This method uses machine learning
-approaches to find sex markers and re-assign samples in sex group.
-The approach is currently been tested and will be available for uses soon.
-Default: boost.analysis = FALSE
.
-
-
strata
(file) A tab delimited file with a minimum of
2 columns (INDIVIDUALS, STRATA
) for VCF files and 3 columns for DArT files
@@ -132,6 +125,13 @@
Arguments
functions: extract_dart_target_id
and extract_individuals_vcf
+boost.analysis
+(optional, logical) This method uses machine learning
+approaches to find sex markers and re-assign samples in sex group.
+The approach is currently under construction.
+Default: boost.analysis = FALSE
.
+
+
coverage.thresholds
(optional, integer) The minimum coverage required
to call a marker absent. For silico genotype data this must be < 1.
@@ -155,7 +155,7 @@
Arguments
folder.name
(optional,character) Name of the folder to store the results.
-Default: folder.name = "sexy_marker_date/time"
.
+Default: folder.name = NULL
. The name sexy_markers_datetime will be generated.
parallel.core
@@ -250,7 +250,11 @@ Advance mode
-dots-dots-dots ... allows to pass several arguments for fine-tuning the function:
tau
: The quantile used in regression to distinguish homogametic markers
+
dots-dots-dots ... allows to pass several arguments for fine-tuning the function:
species
: To give your figures some meanings.
+Default species = NULL
.
+population
: To give your figures some meanings.
+Default species = NULL
.
+tau
: The quantile used in regression to distinguish homogametic markers
with the heterozygosity method. See rq
.
Default tau = 0.03
.
mis.threshold.data
: Threshold to filter the SNP data on missingness.
@@ -325,7 +329,7 @@
Examples
R/write_pcadapt.R
write_pcadapt.Rd