ANGSD: Analysis of next generation Sequencing Data

Latest tar.gz version is (0.938/0.939 on github), see Change_log for changes, and download it here.

PCA MDS: Difference between revisions

From angsd
Jump to navigation Jump to search
Line 132: Line 132:




=== samples base *ibsMat ===
=== samples base *.ibsMat ===
This function will print the pairwise IBS distance  
This function will print the pairwise IBS distance  
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
Line 155: Line 155:




=== samples base *covMat ===
=== samples base *.covMat ===
This function will print the covariance matrix based on a single sampled read
This function will print the covariance matrix based on a single sampled read
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">

Revision as of 18:53, 27 April 2016

single read sampling approach for PCA or MDS

This function is new and works from version 0.912 and in the latest developmental version from github


Brief Overview

./angsd -doIBS
	-> angsd version: 0.911-26-gf1cb0e0-dirty (htslib: 1.3-1-gc72ae90) build(Apr 27 2016 11:15:33)
	-> Analysis helpbox/synopsis information:
	-> Command: 
../angsd/angsd -doIBS 	-> Wed Apr 27 12:38:35 2016
--------------
abcIBS.cpp:
	-doIBS	0
	(Sampling strategies)
	 0:	 no IBS 
	 1:	 (Sample single base)
	 2:	 (Concensus base)
	-doCounts	0	Must choose -doCount 1
Optional
	-minMinor	0	Minimum observed minor alleles
	-minFreq	0.000	Minimum minor allele frequency
	-output01	0	output 0 and 1s instead of based
	-maxMis		-1	Maximum missing bases (per site)
	-doMajorMinor	0	use input files or data to select major and minor alleles
	-makeMatrix	0	print out the ibs matrix 
	-doCov		0	print out the cov matrix 


Options

-doIBS [int]

Print a single base from each individual at each position. 1: random sampled read. 2: Consensus base

doCounts [int]

Method requeres counting the different bases at each position. Therefore, -doCounts 1 must be used

-doMajorMinor [int]

The covariance matrix can only be calculated for diallelic sites. Therefore, choose a methods for selecting the major and minor allele (see Inferring_Major_and_Minor_alleles). This can also be use if you only want to make this assumption for the IBS matrix or only want to print out bases that are either the major or minor.

-minMinor [int]

Minimum observed minor alleles. The default in 0. If you do not use -doMajorMinor then the number of minor alleles are the sum of the 3 most uncommon alleles.

--minFreq [float]

Minimum minor allele frequency. The default in 0. If you do not use -doMajorMinor then the frequency is the sum of the frequencies of the 3 most uncommon alleles.

-output01 [int]

output the samples reads as 0 (for major) and 1s (for non major) instead of actual base

-maxMis [int]

Maximum missing bases (per site) i.e. maximum number of uninformative individuals for the site

-makeMatrix [int] 1 prints out the pairwise IBS matrix. This is the avg. distance between pairs of individuals. Distance is zero if the base in the same and 1 otherwise.

-doCov [int]

1 print out the covariance matrix.


Output

samples base *ibs.gz

This function will print the sampled based *ibs.gz.

Example of output *.ibs.gz with -doMajorMinor and -output01 1

chr     pos     major   minor   ind0    ind1    ind2    ind3    ind4    ind5    ind6    ind7
1       14000873        A       G       0       1       1       1       1       1       1
1       14001018        C       T       0       1       1       1       1       1       1
1       14001867        G       A       0       1       1       1       1       0       1
1       14002342        T       C       1       1       1       1       1       -1      1
1       14002422        T       A       0       1       1       1       1       0       -1
1       14003581        T       C       0       1       1       1       1       1       1
1       14004623        C       T       0       1       1       1       1       0       1
1       14006543        T       G       0       -1      1       1       1       0       1
1       14007493        G       A       0       0       1       -1      1       0       1
1       14007558        T       C       0       0       1       1       -1      -1      1
1       14007649        A       G       0       1       1       1       1       0       1
1       14008269        A       G       1       1       0       -1      1       -1      1

Example of output *.ibs.gz with -doMajorMinor>0 and -output01 0

chr     pos     major   minor   ind0    ind1    ind2    ind3    ind4    ind5    ind6    ind7
1       13116   G       T       N       G       T       T       N       G       N       T
1       13118   G       A       N       G       A       A       N       G       N       A
1       14930   A       G       G       G       G       A       N       N       A       N
1       15211   T       G       N       G       T       G       N       N       N       G
1       54490   A       G       N       G       N       G       N       N       N       N
1       54716   T       C       T       C       C       C       T       N       N       N
1       58814   A       G       N       G       N       G       G       G       N       N
1       62777   T       A       N       N       A       N       A       A       A       N
1       63268   C       T       N       T       N       T       C       N       T       N
1       63671   A       G       N       G       N       N       G       G       G       N
1       69428   G       T       N       G       T       N       N       T       T       N
1       69761   T       A       A       A       T       A       N       A       N       N

Example of output *.ibs.gz with -doMajorMinor 0 and -output01 0

chr     pos     major   ind0    ind1    ind2    ind3    ind4    ind5    ind6    ind7    ind8
1       13116   T       N       G       T       T       N       G       N       T       T
1       13118   A       N       G       A       A       N       G       N       A       A
1       14930   A       G       G       G       A       N       N       A       N       G
1       15211   G       N       G       T       G       N       N       N       G       G
1       54490   G       N       G       N       G       N       N       N       N       A
1       54716   C       T       C       C       C       T       N       N       N       C
1       58814   G       N       G       N       G       G       G       N       N       G
1       62777   A       N       N       A       N       A       A       A       N       A
1       63268   T       N       T       N       T       C       N       T       N       N
1       63336   C       C       C       C       C       C       N       C       N       N
1       63671   G       N       G       N       N       G       G       G       N       N

chr is the chromosome

pos is the position major is the major allele

minor is the minor allele. Needs -doMajorMinor

indX is samples base for individual number X. if -output01 1 then it is 1 for major, 0 for non major and -1 for missing


samples base *.ibsMat

This function will print the pairwise IBS distance

Example of output *.ibsMat with -makeMatrix 1

chr     pos     major   minor   ind0    ind1    ind2    ind3    ind4    ind5    ind6    ind7
0.000000        0.510638        0.606383        0.595745        0.545455        0.428571
0.510638        0.000000        0.154639        0.154639        0.108911        0.408602
0.606383        0.154639        0.000000        0.121212        0.137255        0.489362
0.595745        0.154639        0.121212        0.000000        0.106796        0.484211
0.545455        0.108911        0.137255        0.106796        0.000000        0.404040
0.428571        0.408602        0.489362        0.484211        0.404040        0.000000
0.577320        0.121212        0.181818        0.171717        0.097087        0.473684
0.536082        0.090000        0.138614        0.118812        0.047619        0.428571
0.262500        0.571429        0.702381        0.694118        0.632184        0.353659
0.458333        0.383838        0.484848        0.494949        0.398058        0.368421

Nind x Nind matrix with pairwise IBS distance


samples base *.covMat

This function will print the covariance matrix based on a single sampled read

Example of output *.covMat with -doCov 1


1.098251        -0.026225       -0.005617       -0.014726       -0.022438       -0.021786
-0.026225       1.115986        -0.017167       0.000735        -0.017163       -0.016899
-0.005617       -0.017167       1.074779        -0.015685       -0.019819       -0.015473
-0.014726       0.000735        -0.015685       1.072853        -0.013641       -0.007789
-0.022438       -0.017163       -0.019819       -0.013641       1.094612        -0.016045
-0.021786       -0.016899       -0.015473       -0.007789       -0.016045       1.059264
-0.005831       -0.009854       -0.001269       -0.002362       -0.018479       -0.011942
-0.015399       -0.020010       -0.001296       -0.022947       -0.006515       -0.003938
-0.001730       -0.040534       -0.002295       -0.017442       -0.024194       -0.007469
-0.016094       -0.015303       -0.018302       -0.022502       -0.030503       -0.001208
-0.122045       -0.106068       -0.103089       -0.104443       -0.110237       -0.103610
-0.106553       -0.100202       -0.104754       -0.109399       -0.107645       -0.111665
-0.108945       -0.102440       -0.105292       -0.101372       -0.107110       -0.106639

Nind x Nind covariance matrix

Model

IBS

pairwise distance between individuals where M in the number of sites with a read for both individuals. is the indicator function which is equal to one with the two individuals have the same base and zero otherwise

Covariance

Allele frequency based on single reads.


where M in the number of sites with a read for both individuals.



MDS/PCA using R

## MDS
name <- "angsdput.ibsMat"
m <- as.matrix(read.table(name))
mds <- cmdscale(as.dist(m))
plot(mds,lwd=2,ylab="Dist",xlab="Dist",main="multidimensional scaling",col=rep(1:3,each=10))

name <- "angsdput.covMat"
m <- as.matrix(read.table(name))
e <- eigen(m)
plot(e$vectors[,1:2],lwd=2,ylab="PC 2",xlab="PC 2",main="Principal components",col=rep(1:3,each=10),pch=16)