计算FST、绘图

实际研究中,Fst为0~0.05:群体间遗传分化很小,可以不考虑;
Fst为0.05~0.15,群体间存在中等程度的遗传分化;
Fst为0.15~0.25,群体间遗传分化较大;
Fst为0.25以上,群体间有很大的遗传分化。

大召唤术

# encoding:UTF-8
import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
from matplotlib import rcParams
import math
import time
plt.rcParams['font.family']=['cmex10']

使用pca去除品系混合的个体,提取这些个体再做fst

pca_result_fst_法=pca_result_2[pca_result_2[3]>0.0352]
pca_result_fst_丹=pca_result_2[pca_result_2[2]>0.01]
pca_result_fst_加=pca_result_2[(pca_result_2[3]<0.0078)&(pca_result_2[2]<-0.0069)]
pca_result_fst=pd.concat([pca_result_fst_法,pca_result_fst_丹,pca_result_fst_加])
pca_result_fst[['0_x',1,"breed"]].to_csv(r'E:\新希望六和\系谱校正\长白亲缘关系\LL_2304id_3pinxi.txt',index=None,header=None,sep='\t')

使用plink质控,使用gcta计算fst

cd .\长白亲缘关系
plink --bfile all_LL_2423id --keep LL_2304id.txt --make-bed --out LL_2304id
gcta64 --bfile LL_2304id --fst  --autosome-num 36 --sub-popu LL_2304id_3pinxi.txt --out LL_2304id_3pinxi

柱状FST,较慢

def fst_bar(filein):
    data0 = pd.read_csv(open(filein),sep='\s+',header=0)
    # 剔除fst为空、染色体位置未知、性染色体上的位点
    data1=data0[data0['Fst']!='-nan(ind)']
    data2=data1[((data1['Chr']!=0)&(data1['Chr']!=23)&(data1['Chr']!=24))]
    datasort=data2.groupby('Chr',sort = True).apply(lambda x:x.sort_values('bp',ascending=True)).reset_index(drop=True)
    datasort['Fst']=datasort['Fst'].astype(float)
    datasort['Chr']=datasort['Chr'].astype(str)
    #     设置x轴染色体名称
    datasort=datasort.reset_index(drop=True)
    datasort["i"]=datasort.index
    chrom_df = datasort.groupby("Chr")["i"].median()
    # 设置每条染色体颜色
    colordict={'1':'#F08080','2':'#F4A460','3':'#FFD700','4':'#8FBC8F','5':'#228B22','6':'#3CB371','7':'#40E0D0','8':'#008B8B','9':'#AFEEEE',
           '10':'#5F9EA0','11':'#87CEEB','12':'#4682B4','13':'#B0C4DE','14':'#6A5ACD','15':'#9370DB','16':'#E7BBDC','17':'#FFCEDA','18':'#F6A8A5'}
    def func(x):
        return colordict[x['Chr']]
    colorlist = datasort.apply(func,axis=1)
#     横轴显示染色体编号
    chr_list=[1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2, 3, 4, 5, 6, 7, 8, 9]
    print(filein)
    print("Fst均值:",datasort['Fst'].mean())
    a=time.time()
    plt.figure(figsize=(20,5),dpi=80)
    plt.ylim(0,1)
#     箱线图
    plt.bar(np.arange(len(datasort)),datasort['Fst'],1,color=colorlist)
    plt.xticks(chrom_df,labels=chr_list) 
    plt.show()
    b=time.time()
    print(b-a)
    return datasort
filein=r".\长白亲缘关系\LL_2304id_3pinxi.fst"
fst_bar(filein)
image.png

散点图,较快

def fst_scatter(filein):
    data0 = pd.read_csv(open(filein),sep='\s+',header=0)
    # 剔除fst为空、染色体位置未知、性染色体上的位点
    data1=data0[data0['Fst']!='-nan(ind)']
    data2=data1[((data1['Chr']!=0)&(data1['Chr']!=23)&(data1['Chr']!=24))]
    datasort=data2.groupby('Chr',sort = True).apply(lambda x:x.sort_values('bp',ascending=True)).reset_index(drop=True)
    datasort['Fst']=datasort['Fst'].astype(float)
    datasort['Chr']=datasort['Chr'].astype(str)
    #     设置x轴染色体名称
    datasort=datasort.reset_index(drop=True)
    datasort["i"]=datasort.index
    chrom_df = datasort.groupby("Chr")["i"].median()
    # 设置每条染色体颜色
    colordict={'1':'#F08080','2':'#F4A460','3':'#FFD700','4':'#8FBC8F','5':'#228B22','6':'#3CB371','7':'#40E0D0','8':'#008B8B','9':'#AFEEEE',
           '10':'#5F9EA0','11':'#87CEEB','12':'#4682B4','13':'#B0C4DE','14':'#6A5ACD','15':'#9370DB','16':'#E7BBDC','17':'#FFCEDA','18':'#F6A8A5'}
    def func(x):
        return colordict[x['Chr']]
    colorlist = datasort.apply(func,axis=1)
#     横轴显示染色体编号
    chr_list=[1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2, 3, 4, 5, 6, 7, 8, 9]
    print(filein)
    print("Fst均值:",datasort['Fst'].mean())          
    a=time.time()
    plt.figure(figsize=(20,5),dpi=80)
    plt.ylim(0,1)
#     箱线图
    plt.scatter(np.arange(len(datasort)),datasort['Fst'],1,color=colorlist)
    plt.xticks(chrom_df,labels=chr_list) 
    plt.show()
    b=time.time()
    print(b-a)
    return datasort
filein=r".\长白亲缘关系\LL_2304id_3pinxi.fst"
datasort=fst_scatter(filein)
image.png

获取前5%的位点

# 取前5%的位点
datasort['Fst'].quantile(0.95)
fst_quantile5=datasort[datasort['Fst']>0.397559]
fst_quantile5
image.png
# fst前5%的位点的散点图
fst_quantile5=fst_quantile5.reset_index(drop=True)
colordict={'1':'#F08080','2':'#F4A460','3':'#FFD700','4':'#8FBC8F','5':'#228B22','6':'#3CB371','7':'#40E0D0','8':'#008B8B','9':'#AFEEEE',
       '10':'#5F9EA0','11':'#87CEEB','12':'#4682B4','13':'#B0C4DE','14':'#6A5ACD','15':'#9370DB','16':'#E7BBDC','17':'#FFCEDA','18':'#F6A8A5'}
def func(x):
    return colordict[x['Chr']]
colorlist = fst_quantile5.apply(func,axis=1)
#     横轴显示染色体编号
chr_list=[1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2, 3, 4, 5, 6, 7, 8, 9]
fst_quantile5["i"]=fst_quantile5.index
chrom_df = fst_quantile5.groupby("Chr")["i"].median()
plt.figure(figsize=(20,5),dpi=80)
plt.ylim(0.35,1)
plt.scatter(np.arange(len(fst_quantile5)),fst_quantile5['Fst'],1,color=colorlist)
plt.xticks(chrom_df,labels=chr_list) 
plt.show()
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容