/currentNe

Estimation of current effective population using artificial neural networks

Primary LanguageC++GNU General Public License v3.0GPL-3.0

currentNe

Estimation of current effective population using artificial neural networks

Prerequisites

g++

It should be included in (almost) every linux distribution. To install it in debian-like distributions:

sudo apt install g++

make

This is only needed if you want to use the make commands to compile the program. You could directly compile it using g++.To install it just run the following command (in debian-like distributions):

sudo apt install make

Installation

Clone the github repo:

git clone https://github.com/esrud/currentNe

Compile:

cd currentNe
make

Another way to compile the program, which will link it statically:

make static

The program has been tested on Arch Linux, Ubuntu 20.04 and Debian Buster, using g++ version 7.2.0 and above as a compiler.

Usage

Please note that the program needs at least 3 Gb of free RAM to be able to run. This is dependent on the amount of loci and individuals to be sampled, as well as the maximum number of chromosomes and the maximum distance between loci. This can be increased (or reduced) by tweaking the constants MAXLOCI, MAXIND, MAXCROMO and MAXDIST respectively. Note that increasing those values will increase the free RAM requirements.

currentNe - Current Ne estimator (v1.0 - Jan 2023)
Authors: Enrique Santiago - Carlos Köpke

USAGE: ./currentNe [OPTIONS] <filename_with_extension> <number_of_chromosomes>
         where filename is the name of the data file in vcf, ped or tped
             format. The filename must include the name extension
             .vcf, .ped or .tped according to its format.
         If the assignments of SNPs to chromosomes are available in the
             input file, an additional estimate based only on pairs of SNPs
             located on different chromosomes will also be calculated.
             If the ped format is used, this additional estimate will be
             made if the corresponding map file is available in the same
             directory as the ped file.

 OPTIONS:
   -h    Print out this manual.
   -s    Number of SNPs to use in the analysis (all by default).
   -k    -If a POSITIVE NUMBER is given, the number of full siblings that
         a random individual has IN THE POPULATION (the population is the
         set of reproducers). With full lifetime monogamy k=2, with 50%
         of monogamy k=1 and so on. With one litter per multiparous
         female k=2, with two litters per female sired by the same father
         k=2 but if sired by different fathers k=1, in general, k=2/Le
         where Le is the effective number of litters (Santiago et al. 2023).
         -If ZERO is specified (i.e., -k 0), each offspring is assumed to
         be from a new random pairing.
         -If a NEGATIVE NUMBER is specified, the average number of full
         siblings observed per individual IN THE SAMPLE. The number k of
         full siblings in the population will be estimated along with Ne.
         -BY DEFAULT, i.e. if the modifier is not used, the average number
         of full siblings k will be estimated from the input data.
   -o    Specifies the output filename. If not specified, the output
         filename is built from the name of the input file.
   -t    Number of threads (default: 8)
   -q    Run quietly. Only prints out Ne estimation
   -p    Print the analysis to stdout. If not specified a file will be created
   -v    Only used with -q. Prints also the bounds for the two confidence
         intervals of 50% and 90%.

EXAMPLES:
   - Random mating and 20 chromosomes (equivalent to a genome of 20 Morgans),
     assuming that full siblings are no more frequent than expected  under
     random pairing (each offspring from a new random pairing).
         ./currentNe -k 0 filename 20
   - Same as before but only a random subsample of 10000 SNPs
     will be analysed:
         ./currentNe -k 0 -s 100000 filename 20
   - Same as before but full siblings could be more frequent than expected
     under random pairing. Full siblings will be identified from the
     genotyping data in the ped file:
         ./currentNe -s 100000 filename 20
   - Two full siblings per individual (k = 2) IN THE POPULATION:
         ./currentNe -k 2 filename 20
   - An 80% of lifetime monogamy in the population. Output filename specified:
         ./currentNe -k 1.6 -o SS81out filename 20
     (with a monogamy rate m = 0.80, the expected number of full
     siblings that a random individual has is k = 2*m = 1.6)
   - If 0.2 full siblings per individual are OBSERVED IN THE SAMPLE:
         ./currentNe -k -0.2 filename 20
     (NOTE the MINUS SIGN before the number of full sibling 0.2)