亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

生信編程實戰第1題(python)

標簽:
Python

题目来自生信技能树
统计人类外显子长度
坐标的文件可如下下载:

wget ftp://ftp.ncbi.nlm.nih.gov/pub/CCDS/current_human/CCDS.current.txt

打开文件如下


webp

image.png


于是写了如下脚本

import sysimport re
args=sys.argv
filename=args[1]
exon_length=0aDict={}with open (filename) as fh :      for line in fh:          if line.startswith("#"):              continue
          lineL=line.strip().split("\t")
          exon_position=lineL[-2] #取出倒数第二列,坐标列
          if exon_position=="-":  #有的基因没有外显子的坐标,用-代替的,所以这行就要除掉,不然会报错
              continue
          exon_position=re.sub("\[|\]","",exon_position) #把坐标列的[]去除,注意正则表达式的用法
          exonL=exon_position.split(",")  
          for exon in exonL:
              exonS=lineL[0]+":"+exon    #有点基因会有相同坐标的外显子,所以要去除这一部分,注意要加上染色体的编号,染色体不同而坐标一样就没事
              if exonS not in aDict:    #如果坐标没有在字典,即第一次出现,就将其放入字典,并继续操作。
                   aDict[exonS]=1
                   exon_pL=exon.split("-")
                   exon_start=int(exon_pL[0].strip())
                   exon_end=int(exon_pL[1].strip())
                   exon_length+=exon_end-exon_start
print(exon_length)

然后运行

ubuntu@VM-0-4-ubuntu:~/data/practice$ python3 exon.py CCDS.current.txt 
36443621

正则表达式再学习熟悉熟悉



作者:天秤座的机器狗
链接:https://www.jianshu.com/p/8cddd0774b08


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消