Coder Social home page Coder Social logo

mnavascues / drifttest Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 297 KB

DriftTest is a computer program whose purpose is to is to detect loci under selection based on changes in allele frequencies between two time samples of the same population.

License: Other

Makefile 1.35% C 98.65%

drifttest's Introduction

#############
# drifttest #  
#############

This program runs a temporal Fst outlier approach for the detection of loci under selection. It estimates effective population size and selfing rate from all loci and based on those estimates test each locus for outlier Fst values that could be indicative of selection during the period between the two samples interval. The procedure is described in "Power and limits of selection genome scans on temporal data from a selfing population" by Miguel Navascués, Arnaud Becheler, Laurène Gay, Joëlle Ronfort, Karine Loridon and Renaud Vitalis doi:10.1101/2020.05.06.080895.

Input
=====

Genetic data must be provided in a text file in which the fisrt line indicates the total number of individuals, the second line the number of loci. Subsequent liones contain the genetic data in the following format: first column indicates the time of sampling with an arbitrary number (e.g. 1 and 2), them one column per locus indicating the number of copies of the reference allele that individual holds (i.e. 0, 1 or 2), missing data are indicated with -9. An example data file is found in folder "data" which is reproduce here below:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
27
7
1	0	2	2	2	0	0	1
1	1	1	0	0	1	2	0
1	0	2	2	2	1	0	0
1	1	1	0	0	1	2	0
1	0	2	2	1	1	0	0
1	1	1	1	0	-9	2	0
1	0	1	2	2	1	0	0
1	1	1	1	0	1	2	0
1	0	1	2	2	2	0	0
1	1	1	0	0	1	2	0
1	0	2	2	2	2	0	0
1	1	1	0	0	1	2	0
2	1	1	0	0	1	2	0
2	2	1	1	2	0	2	0
2	2	2	1	1	1	1	0
2	1	1	0	0	1	2	0
2	2	1	1	2	0	2	0
2	2	2	1	1	1	1	0
2	1	1	1	2	1	2	0
2	2	1	2	2	0	2	0
2	2	2	1	1	1	2	0
2	1	1	1	0	1	2	0
2	2	1	1	2	0	2	0
2	2	2	1	1	1	1	0
2	1	1	0	0	1	2	0
2	2	1	1	2	0	2	0
2	2	2	1	1	1	-9	0
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Usage
=====

In the comand line type the name of the executable and indicate flags with the options:

$ drifttest [options]

Options
-------

-help
  print the list of options

-version
  print version of program

-test
  print results of a set of tests on the code for debugging

-seed
  initial seed for the random number generator (default: GSL default)

-maf
  minumium allele frequeuny threshold for including a locus in the analysis (default 0.0; only values from 0 to 0.5 admited).

-tau
  number of generation between the two time samples (no default value, it must be specified except for options -help, -version -test

-fis
  user specified inbreeding coefficient value, Fis (by default estimated from data). It can be used to force analysis as outcrossing by setting -fis 0.0

-infile
  input file name (default: "data.txt"; must me located in data folder; 100 characters long maximum)

-outfile
  prefix for output files; 100 characters long maximum

-threads
  number of threads, for parallel computing, otherwise selected automatically

Output
======

Two files are produced as output, names with the output prefix + _multilocus and output prefix + _locus_by_locus

output_multilocus contains the multilocus estimates for Fst, Fis and Ne

output_locus_by_locus contains, for each locus, an estimate of the Fst and an estimate of the p-value for the outlier test.

drifttest's People

Contributors

mnavascues avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

drifttest's Issues

Parameter question

Hi,

although the description said this program is used to detect selection in different generation time of one population, i want to know is possible to calculate selection of two population, which have same ancestor. if this works, how to setting -tau? two fold of generation time after diverged from common ancestor?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.