/BinMarkers

Bin SNP markers based on their physical positions

Primary LanguagePerlBSD 2-Clause "Simplified" LicenseBSD-2-Clause

BinMarkers

The 2.0 version(BinMarkers-v2) do not require the installation of PDL and GSL.

Overview

BinMarkers is a program for creating bin markers from a large set of SNP markers based on their positions on scaffolds/contigs. The purpose of this program is to reduce the number of markers for constructing genetic maps using Joinmap, which limited to about six thousands markers.

Installation

git clone https://github.com/lileiting/BinMarkers.git

Dependencies

Perl programming language and pmf_binomial function in Perl module PDL::Stats

Dependencies of PDL::Stats

  • PDL, The Perl Data Language
  • GSL, GNU Scientific Library

How to install PDL::Stats

perl -MCPAN -e shell
install PDL
install PDL::Stats

or use cpan

cpan PDL
cpan PDL::Stats

or (if without permission to install)

sudo cpan PDL
sudo cpan PDL::Stats

or use cpanp

cpanp -i PDL
cpanp -i PDL::Stats

or use cpanm

cpanm PDL
cpanm PDL::Stats

How to install GSL

Use brew in Mac OS

brew install gsl

Use yum in CentOS

sudo yum install gsl
sudo yum install gsl-devel

Use apt-get in Ubuntu

sudo apt-get install libgsl0ldbl
sudo apt-get install gsl-bin libgsl0-dev

How to use BinMarkers

Input data format

Input data should be a matrix, one marker per line, one individual per column. The first line is the title containing individual names, the first column is marker names.

Marker names should contain two parts. First is the scaffold/contig/chromosome name, second is the position, and they were joined by dash or underscore, e.g. scaffold1_12345, scaffold1-12345

The default genotypes are "a" for 0/0, "h" for 0/1, "b" for 1/1, "-" for missingthese could be customized using -0, -1, -2 and -m options.

The default value for threshold is 5, "threshold" means maximum genotype differences allowed within a bin marker block, which similar to maximum allowed mismatch in sequence alignment.

Examples

perl binmarkers.pl markers.map -t 5
perl binmarkers.pl markers.map --threshold 5
perl binmarkers.pl markers.map -t 5 -0 a -1 h -2 b -m '-'
perl binmarkers.pl markers.map --threshold=5 --letter_for_0_0=a --letter_for_0_1=h --letter_for_1_1=b --missing='-'
perl binmarkers.pl markers.map -t 5 -0 a -1 h -2 b -m '-' --error_rate_for_0_0 0.04 --error_rate_for_0_1 0.03 --error_rate_for_1_1 0.01