如何對某參考基因組的各條染色體生成相同的bin區(qū)間,以bed格式儲存結(jié)果

有個師弟說他想要將對某參考基因組的各條染色體生成相同的bin區(qū)間,以bed格式儲存結(jié)果。

即參考序列的GFF格式文件為:
gff.jpg

希望根據(jù)參考序列進行操作,輸出的結(jié)果為以fasta格式儲存結(jié)果:

Chr  bin_start  bin_end
1  1  2000
1  2001  4000
1  4001  6000
...
2  1  2000
2  2001  4000

(Bed格式是一種0 based的文件,這種寫法是不對的...)

其實這個文件,寫腳本非常簡單,但是也有現(xiàn)成的輪子,即熟練使用samtools/bedtools解決這種需求,輕而易舉。
比如我們現(xiàn)在有個fake參考序列,fake_genome.fa,內(nèi)容如下:

>Chr1  57bp
GTTTGGTTTGTGCGTGATGTTAAGATCGGAAGAGCACACGTCTGGAGCACACGTCTG
>Chr2 50bp
NCCTCTGCAAACGGGTCTGATAGTATTTCAGATCGGAAGAGCACACGTCT

現(xiàn)在我們想將其切割成長度為20bp的一條一條的bins區(qū)間,并且用Bed格式保存結(jié)果用于后續(xù)分析。

samtools faidx fake_genome.fa
cut -f 1,2 fake_genome.fa.fai   > fake_genome.chrome.size
bedtools  makewindows  -g fake_genome.chrome.size -w 20 > result.bed

最后輸出結(jié)果如下:

Chr1    0   20
Chr1    20  40
Chr1    40  57
Chr2    0   20
Chr2    20  40
Chr2    40  50

實現(xiàn)了師弟最初的想法。

也可以將某條染色體上的bins區(qū)間分別輸出成bed, 代碼如下:

bedtools  makewindows -g fake_genome.chrome.size  -w 20   | awk '{if ($1=="Chr1"){print $0 >> $1":"$2"-"$3".bed"}}'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容