1. 软件下载

structure

Windows版建议安装桌面版(graphical front end), Linux建议安装终端版(without front end)

structure 2.3.4 软件使用指南_数据

2. 安装指南

​Instructions​

Windows

直接双击安装包, 进行安装即可. 安装完成后, 桌面上有快捷方式:

structure 2.3.4 软件使用指南_数据_02

Mac OS X

软件包是一个可执行文件, 双击​​Structure.dmg​​, 会打开软件, 创建一个快捷方式即可.

structure 2.3.4 软件使用指南_linux_03

Unix/Linux

下载软件包, 解压进入软件包文件夹, 会有​​structure​​​可执行文件, 运行​​./structure​​即可.

wget https://web.stanford.edu/group/pritchardlab/structure_software/release_versions/v2.3.4/release/structure_linux_console.tar.gz
tar zxvf structure_linux_console.tar.gz
cd console/
./structure

出现下面代码, 说明运行成功:

(base) [dengfei@localhost console]$ ./structure


----------------------------------------------------
STRUCTURE by Pritchard, Stephens and Donnelly (2000)
and Falush, Stephens and Pritchard (2003)
Code by Pritchard, Falush and Hubisz
Version 2.3.4 (Jul 2012)
----------------------------------------------------


Reading file "mainparams".
datafile is
infile
Reading file "extraparams".
Note: RANDOMIZE is set to 1. The random number generator will be initialized using the system clock, ignoring any specified value of SEED.
Unable to open the file infile.

Exiting the program due to error(s) listed above.

3. 示例数据

​示例数据​

structure 2.3.4 软件使用指南_linux_04

五种类型的数据:


  • Simulated microsatellite test data
  • AFLP data from whitefish.
  • SNP and microsatellite data from the HGDP.
  • Thrush data from original Structure paper
  • Simulated microsatellite data with location information

4. plink数据格式转化为structure

.recode.strct_in (Structure format)
Produced by "--recode structure", for use by Structure. This format cannot be loaded by PLINK.

A text file with two header lines: the first header line lists all V variant IDs, while each entry in the second line is the difference between the current variant's base-pair coordinate and the previous variant's bp coordinate (or -1 when the current variant starts a new chromosome). This is followed by one line per sample with the following 2V+2 fields:

1. Within-family ID
2. Positive integer, unique for each FID
3-(2V+2). Genotype calls, with the A1 allele coded as '1', A2 = '2', and missing = '0'

用法:

使用参数​​--recode structure​​, 结果生成:​​.recode.strct_in​​的后缀文件.

​plink --file name --recode structure --out result​

还可以使用​​Mega2​​​进行格式转化, ​​转化方法​

5. 使用admixture的数据进行测试

查看数据:

(base) [dengfei@localhost test]$ ls 
hapmap3.bed hapmap3.bim hapmap3.fam hapmap3.map

使用plink进行格式转化:

plink --bfile hapmap3 --recode structure --out test_structure

生成​​test_structure.recode.strct_in​​文件, 用这个文件进行操作.

数据格式如下:

rs10458597 rs12562034 rs2710875 rs11260566 rs1312568 rs35154105 rs16824508 rs2678939 rs7553178 rs133763
-1 203827 209332 200465 206966 213697 200280 201401 204163 202132 226411 200445 201484 200329 205708 20
NA19916 1 2 2 2 2 1 1 2 2 2 2 2 2 1 2 1 2 2 2 1 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 1 2 1 1 1 2 1 2 1 2 1 2 1
NA19835 2 2 2 1 2 1 2 1 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 1 2 1
NA20282 3 2 2 2 2 1 2 1 2 1 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 1 2 2 2 2 2 1 2 1 1 2 2 1
NA19703 4 2 2 2 2 1 2 2 2 1 2 2 2 2 2 1 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 1 2 1 2 2 2 2
NA19901 5 2 2 2 2 1 2 1 2 2 2 2 2 2 2 1 1 2 2 1 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 1 2 1 1 1 2 1 1 2
NA19908 6 2 2 1 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1
NA19914 7 2 2 2 2 2 2 2 2 1 1 2 2 2 2 1 1 1 2 2 2 2 2 1 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1
NA20287 8 2 2 2 2 1 1 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 2 2 1 2 1 2 1 2 1 1 2 2 2 2 2
NA19713 9 2 2 2 2 1 2 1 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 1 1 2 2 1 2 2 2 2 2 1 2 1 1 2 2 1 2 1 2 2 2 2
NA19904 10 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 2 2 2 2 2 2 0 0
NA19917 1 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1

6. 导入数据到structure软件中

双击打开软件

structure 2.3.4 软件使用指南_linux_05

点击File, 点击New Project

structure 2.3.4 软件使用指南_数据_06

键入名称: name1(自己命名即可)

选择文件所在的文件夹

选择文件

structure 2.3.4 软件使用指南_linux_07

数据可以提前预览, 可以看到:

个体数为: 324

SNP个数为: 13928

缺失定义为 -999

structure 2.3.4 软件使用指南_linux_08

定义好之后:点击Next

structure 2.3.4 软件使用指南_linux_09

定义行


  • 勾选: Row of marker names
  • 勾选: Row of recessive alleles
  • 勾选: Data file storges data for individuals in a single line
    structure 2.3.4 软件使用指南_数据_10
    定义列:
    structure 2.3.4 软件使用指南_数据_11

structure 2.3.4 软件使用指南_linux_12

读入数据成功:

structure 2.3.4 软件使用指南_sed_13

7. 定义参数

structure 2.3.4 软件使用指南_sed_14

参数命名为t1

structure 2.3.4 软件使用指南_数据_15

structure 2.3.4 软件使用指南_数据_16

定义为3个群体.

structure 2.3.4 软件使用指南_数据_17

开始运行:

structure 2.3.4 软件使用指南_linux_18

8. 查看结果

structure 2.3.4 软件使用指南_数据_19

structure 2.3.4 软件使用指南_sed_20

结果文件:

structure 2.3.4 软件使用指南_数据_21

structure 2.3.4 软件使用指南_数据_22

9. 使用​​admixture​​作为结果对比

admixture hapmap3.bed 3

structure 2.3.4 软件使用指南_sed_23

10. 使用admixture指定群体

structure 2.3.4 软件使用指南_数据_24

如果没有群体的信息, 是无监督的学习, 会根据G矩阵进行自分类. 但是, 这种情况很少见, 一般我们都有一些先验性的信息, 比如已知某些个体是属于某一类群的, 这样分析效果更好.

这样, 通过定义已知的个体的群体信息, 分类变为了有监督的学习(supervised learning ), ​​admixture​​通过定义一个文件​​.pop​​,

structure 2.3.4 软件使用指南_sed_25

pop文件特点, 前缀和ped或者bed前缀一样, 一行内容, 如果已知群体, 定义群体名称, 如果未知, 用​​-​​或者空格表示, 单独一行.

比如, 如果9个个体, 6个知道群体类型,3个不知道群体类型, 定义如下:

A
A
-
-
B
B
A
-
B

运行命令时, 加上参数: ​​--supervised​

这里, ​​test.pop​​​, 为手动生成的​​pop​​文件, 生成代码如下:

a = data.frame(V1 = rep(c("A","-","B","-","C","-"),each=54))
write.csv(a,"test.pop",row.names=F,quote=F)
admixture test.ped 3 --supervised

绘图:

structure 2.3.4 软件使用指南_数据_26

structure 2.3.4 软件使用指南_数据_27

PS

YouTube Structure 操作视频

GCTA PCA分析以及软件安装教程

Admixture使用说明文档cookbook