genepop

Le projet genepop a pour but la mise en place d’un package R qui permet l’utilisation des fonctionnalités de l’outil Genepop directement depuis l’environnement R.

Ainsi chacune des fonctionnalités fournies par l’outil Genepop est ici présente sous forme de fonction R.

L’outil Genepop étant développé en C++, la librairie Rcpp est utilisée afin de faire communiquer R et C++.

Philosophie

L’idée derrière ce projet était d’identifier chacune des fonctionnalités de l’outil Genepop, qui était utilisé en ligne de commandes ou à l’aide d’un menu interactif, et d’en extraire un ensemble de fonctions ainsi que leurs signatures correspondantes. Permettant ainsi à un utilisateur qui a installé notre package R, d’appeler directement ces fonctions depuis R.

Architecture

├── genepop/
│   ├── man/
│   ├── inst/
│   │   ├── doc/
│   │   ├── genepop-shiny/
│   │   ├── extdata/
│   │   ├── extdoc/
│   │   ├── make-exe/
│   ├── R/
│   │   ├── Genepop.R
│   │   ├── RcppExports.R
│   ├── src/
│   │   ├── *.cpp
│   │   ├── *.h
│   ├── test/
│   │   ├── test-all.R
│   │   ├── testthat/

Travail accompli

Dépendance

Rcpp : Cette librairie permet d’utiliser les fonctions C++ depuis R

Installation

Installation depuis RStudio

```R library(devtools) library(git2r)

devtools::install_git(“http://gitlab.mbb.univ-montp2.fr/jlopez/Genepop.git”)

#ou

devtools::install_git(“http://gitlab.mbb.univ-montp2.fr/jlopez/Genepop.git”, credentials = git2r::cred_user_pass (“your_login”, “your_password”)) ````

Utilisation classique

Une fois que votre package genepop est installé.
Il suffit de choisir une fonctionnalité que l’on veut effectuer et de l’appeler avec les bons arguments.

Exemple pour un test de Hardy-Weinberg.
En entrée un fichier au format Genepop
En sortie un fichier au format texte

```R #‘@name Hardy-Weinberg #’ @title Tests of Hardy-Weinberg genotypic proportions #‘@description Compute variants of the exact conditional test for Hardy-Weinberg genotypic proportions. The tests differ by their test statistics. handles a single table of genotype counts, and requires a standard genepop input file. See of the Genepop executable documentation for more information on the statistical methods. #’ @param inputFile character: The path of the input file, in Genepop format #‘@param which character: , , and to perform the probability test, score test for excess, and score tests for deficit, respectively, in each population and for each locus. additionally handles and for global tests for all loci and/or all populations, and additionally handles to report basic information (allele frequencies and Fis). #’ @param outputFile character: The path of the output file #‘@param settingsFile character: The path of the settings file #’ @param enumeration logical: whether to compute the complete enumeration test for samples with less than 5 alleles #‘@param dememorization integer: length of dememorization step of Markov chain algorithm #’ @param batches integer: Number of batches #‘@param iterations integer: Iterations per batch #’ @param verbose logical: whether to print some information #‘@return The path of the output file is returned invisibly. #’ @examples infile <- system.file(‘extdata’, ‘sample.txt’,package=‘genepop’) #‘locinfile <- ’sample.txt’ ## file in user’s directory not in R’s extdata directory #‘check <- file.copy(infile,locinfile,overwrite=TRUE) #’ test_HW(locinfile, which=‘deficit’, ‘sample.txt.D’) test_HW(inputFile, which = “Proba”, outputFile = “”, enumeration = FALSE, dememorization = 10000, batches = 20, iterations = 5000, verbose = interactive()

```

Utilisation avec fichier de paramètres

Certain fonction peuvent être utilisée avec un fichier de paramètres.

Une fois que votre package genepop est installé.
Il suffit de choisir une fonctionnalité que l’on veut effectuer avec un fichier de paramètres correcte.

Exemple pour un test de Hardy-Weinberg.
En entrée un fichier au format Genepop et un fichier de paramètres
En sortie un fichier au format texte

```R library(genepop)

test_HW(inputFile, which = “Proba”, outputFile = “”, settingsFile = “”, verbose = interactive())

```

Sample

Le package genepop contient plusieurs sample qui vous aiderons à tester les différentes fonctionnalités si vous n’avez pas de fichier d’entrée conforme au format genepop.

R #Permet de recupérer sous R, le chemin des différents fichier sample présent fpath <- system.file("extdata", "sample.txt", package="genepop")

Documentation

Pour plus de détails concernent chaque fonction, vous référez à la documentation R ou à la documentation de genepop

Développement

Shiny

Le package genepop propose aussi à ses utilisateurs un application web, genepop-shiny, qui utilise shiny afin d’offrir une interface au package R