1. 程式人生 > >統計Binmap中某一親本基因型所佔總比例

統計Binmap中某一親本基因型所佔總比例

在構建完binmap之後,往往需要統計各親本佔群體的基因型比例。比如玉米中的B73-teosinte群體,我們假設B73的基因型為A,teosinte的基因型為B,如果我們需要統計在整個群體中teosinte所佔的基因型比例,這時候我們需要先將群體中所有B基因型的bin的區間都提取出來,生成一個bed檔案,如下圖,該bed檔案共有三列,第一列為染色體名稱,第二列為其中一個基因型為B的bin的起始物理位置,第三列為同一個bin的終止物理位置。

bedtools merge可以對bed檔案的區間進行取並集操作,但是如果我們直接使用bedtools merge對bed檔案經常操作,往往會出現如下報錯:

該報錯的意思是bed檔案的各個區間沒有進行sort處理,很顯然我們的第一反應是用linux 下的sort進行操作,如下:

結果表明,linux下自帶的sort命令並不能勝任,於是我們嘗試第二種策略,使用bedtools自帶的bedtools sort進行排序:

這樣我們就得到了在群體範圍chr2中teosinte所佔基因型的全部總長,累加10條chr的teosinte的全部長度,然後處以參考基因組的總長,就是在整個群體中teosinte所佔基因型的比例,也就是該群體中teosinte在參考基因組中的覆蓋度。

總結如下:

統計binmap中某一親本基因型的比例,先將包含該親本基因型的所有bin的起始和終止的物理位置生成一個bed檔案,然後先使用Linux下的sort和bedtools sort同時對該bed檔案進行排序,再使用bedtools merge進行取並集,就可以得到該親本基因型在參考基因組上的覆蓋長度,最後用該親本的基因型全部總長處以參考基因組的總長度,即可以得到該親本在群體中所佔的比例(該親本基因型在參考基因組上的覆蓋度)