2019-07-26用EIGENSOFT的smartpca进行主成分分析

1.vcftools或plink进行文件格式转换

vcftools --vcf  myfile.vcf --plink --out myfile

plink --vcf  myfile.vcf --recode --out myfile

生成.ped和.map文件。

2.使用EIGENSOFT中内置的convertf 将文件转化为smartpca的输入文件:

convertf -p transfer.conf

需要一个transfer.conf文件

##config file

genotypename:    myfile.ped

snpname:        myfile.map

indivname:      myfile.ped

outputformat:    EIGENSTRAT

genotypeoutname: myfile.geno

snpoutname:      myfile.snp

indivoutname:    myfile.ind

familynames: NO

这一步本应该生成sylvaticum.eigenstratgeno, sylvaticum.snp, sylvaticum.ind 三个文件,但是却报错。

报错信息如下:

parameter file: transfer.conf

genotypename: myfile.ped

snpname: myfile.map

indivname: myfile.ped

outputformat: EIGENSTRAT

genotypeoutname: myfile.eigenstratgeno

snpoutname: myfile.snp

indivoutname: myfile.ind

familynames: NO

warning (mapfile): bad chrom: 0 Chr01:1074      0      1074

warning (mapfile): bad chrom: 0 Chr01:1194      0      1194

warning (mapfile): bad chrom: 0 Chr01:1644      0      1644

warning (mapfile): bad chrom: 0 Chr01:1645      0      1645

warning (mapfile): bad chrom: 0 Chr01:1825      0      1825

warning (mapfile): bad chrom: 0 Chr01:2917      0      2917

warning (mapfile): bad chrom: 0 Chr01:3190      0      3190

warning (mapfile): bad chrom: 0 Chr01:3193      0      3193

warning (mapfile): bad chrom: 0 Chr01:3219      0      3219

warning (mapfile): bad chrom: 0 Chr01:3248      0      3248

genetic distance set from physical distance

PLINK input. No check on SNP order

snp order check fail; snp list not ordered: myfile.map (processing continues)  99    0    12

zzz 0 392203

snp order check fail; snp list not ordered: myfile.map (processing continues)  99    0    16

zzz 1 392204

snp order check fail; snp list not ordered: myfile.map (processing continues)  99    0    30

zzz 2 392205

snp order check fail; snp list not ordered: myfile.map (processing continues)  99    0    36

zzz 3 391687

snp order check fail; snp list not ordered: myfile.map (processing continues)  99    0    38

zzz 4 393019

snp order check fail; snp list not ordered: myfile.map (processing continues)  99    0    40

zzz 5 392591

snp order check fail; snp list not ordered: myfile.map (processing continues)  99    0    44

zzz 6 392592

snp order check fail; snp list not ordered: myfile.map (processing continues)  99    1    52

zzz 7 392206

snp order check fail; snp list not ordered: myfile.map (processing continues)  99    1    57

zzz 8 392684

fatalx:

no valid snps

Aborted (core dumped)

查看我的map文件,发现我用vcftools生成的map文件中第一列为0。说明染色体编号信息缺失。

less myfile.map

0      Chr01:1074      0      1074

0      Chr01:1194      0      1194

0      Chr01:1645      0      1645

0      Chr01:1825      0      1825

第一列染色体,未知则是0

第二列是SNP的名字

第三列是摩尔根距离,未知则是0

第四列是在染色体上的坐标位置

需要将map文件第一列的修改为只有数字且大于0的编号,这样才能成功。或者生成map和ped文件时尽量用高版本的plink。

3.用smartpca.perl进行pca分析

smartpca.perl -i myfile.ped -a myfile.map -b myfile.ind -o myfile.PCA -p myfile.plot -e myfile.evel -l myfile.log 

4.修改.evec文件格式

将生成的.evec文件中,第一行加上 ID, GROUP, pc1, pc2, pc3等列名信息。再根据自己的文件群体情况加上一列species,格式如下:

ID PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 PC9 PC10 species

1 -0.1483 0.1830 0.0523 -0.1494 0.0892 0.1653 0.0039 0.0159 0.0156 0.0674 A

2 -0.1479 0.1879 0.0535 -0.1410 0.1137 0.1446 -0.0395 0.0298 -0.0603 0.0878 A

3 -0.1544 -0.4085 0.1840 -0.0174 0.0287 0.0416 -0.0450 -0.0013 -0.0594 -0.0693 A

4 -0.1494 0.1231 0.0810 0.0086 -0.1877 -0.3575 0.0804 -0.0122 0.1235 0.1087 A

5 -0.1469 0.1346 0.0778 0.0291 -0.1284 -0.4283 -0.0247 -0.0017 -0.1375 -0.0921 AS

6 -0.1452 -0.0403 -0.3729 0.2533 0.0519 0.0024 -0.0944 -0.0284 -0.2040 -0.0471 AS

7 -0.1449 -0.0407 -0.3708 0.2483 0.0457 -0.0060 -0.0820 -0.0092 -0.1719 -0.1247 AS

8 -0.1461 0.1868 0.0546 -0.1281 0.1268 0.1065 -0.0901 0.0044 -0.1849 -0.2082 AS

9 -0.1469 0.1270 0.0788 0.0298 -0.1532 -0.3933 0.0091 -0.0117 -0.0387 -0.1510 AS

5.用R画图

library("ggplot2")

a=read.table("PCA.evec",header=T)

ggplot(a,aes(PC1,PC2,color=species,pch = species))+geom_point(alpha=0.8,size=4)

ggplot(a,aes(PC1,PC3,color=species,pch = species))+geom_point(alpha=0.8,size=4)

ggplot(a,aes(PC2,PC3,color=species,pch = species))+geom_point(alpha=0.8,size=4)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,612评论 5 471
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,345评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,625评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,022评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,974评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,227评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,688评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,358评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,490评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,402评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,446评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,721评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,802评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,013评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,504评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,080评论 2 341