分享

生信编程18.把文件内容按照染色体分开写出

 健明 2021-07-14

 有一些五六年前的学生们都成长为了各个生物信息学相关公司的小领导,而且他们都有了自己的公众号,知乎号,也算是一番人物。最近他们跟我反馈面试找不到或者说很难直接考核筛选到认真干活的生信工程师,挺有意思的。让我想起来了早在生信技能树论坛创立之初我为了引流,而规划的200个生信工程师面试题。值得继续分享:

200个生信工程师面试考题

这个需求很常见,因为一般生物信息数据都比较大,如sam,vcf,gtf,或者bed。有的时候需要用一些仅包含一个或者几个染色体的文件来进行分析,就需要进行拆分。

参照曾老师的perl版本http://www./thread-1329-1-1.html,我写了python版本的

首先使用一个较小的测试文件来进行拆分:

test.bed

chr2    43995310    43995986
chr17   49788603    49789067
chr17   59565573    59566163
chr19   8390308 8390745
chr12   49188033    49189033
chr7    974903  975570
chr7    98878532    98879500
chr7    44044672    44045322
chr1    153634052   153634772
chr11   60905850    60906575

python脚本如下:

#!/usr/bin/python
with open('test.bed','r'as f:
     for line in f:
          arr = line.strip().split(' ')
          with open(arr[0]+'.txt','a'as f: #'a'表示不覆盖写入,w表示盖原来的文件写入
                  f.writelines(line)

结果文件如下:

-rw-rw-r-- 1 chxluo chxluo  29 Feb 22 13:04 chr11.txt
-rw-rw-r-- 1 chxluo chxluo  29 Feb 22 13:04 chr12.txt
-rw-rw-r-- 1 chxluo chxluo  58 Feb 22 13:04 chr17.txt
-rw-rw-r-- 1 chxluo chxluo  24 Feb 22 13:04 chr19.txt
-rw-rw-r-- 1 chxluo chxluo  30 Feb 22 13:04 chr1.txt
-rw-rw-r-- 1 chxluo chxluo  29 Feb 22 13:04 chr2.txt
-rw-rw-r-- 1 chxluo chxluo  81 Feb 22 13:04 chr7.txt

对bam文件进行分割

使用bamtools可以实现

bamtools split -in my.bam -reference

文末友情推荐

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多