根据sam文件计算reads的GC含量

禁转

输入文件

DNA序列的sam文件
第一列,序列名;第十列,序列;分割 tab

目标

计算每个read的GC含量(只考虑DNA序列由ATGC组成的情况),并输出结果到文件

输出文件

第一列read id,第二列read的序列,第三列GC含量

代码

def cal_gc(seq):"""计算GC含量"""seq = seq.upper() #全部转换为大写return round((seq.count('C') + seq.count('G')) / float(len(seq)),2)#round 用于保留两位小数,float将序列长度转换为浮点型infile = 'data/alignment.sam'
outfile = 'output/gc.txt'in_handle = open(infile)  #open(文件路径,打开方式默认为r)
out_handle = open(outfile, 'w')out_handle.write('read_id\tseq\tgc\n') #表头cnt = 0
for line in in_handle:if cnt != 0: #用于有列名时去掉第一行列名row = line.split('\t') #返回列表read_id = row[0]seq = row[9]gc = cal_gc(seq)#print([read_id, seq, gc]) #检查out_handle.write('%s\t%s\t%s\n' % (read_id,seq,gc))   # %s占位符cnt += 1in_handle.close()
out_handle.close()

如果担心中间过程出错

使用try

def cal_gc(seq):"""计算GC含量"""seq = seq.upper() #全部转换为大写return round((seq.count('C') + seq.count('G')) / float(len(seq)),2)#round 用于保留两位小数,float将序列长度转换为浮点型infile = 'data/alignment.sam'
outfile = 'output/gc.txt'in_handle = None
out_handle = None
try:in_handle = open(infile)  #open(文件路径,打开方式默认为r)out_handle = open(outfile, 'w')out_handle.write('read_id\tseq\tgc\n') #表头cnt = 0for line in in_handle:if cnt != 0: #用于有列名时去掉第一行列名row = line.split('\t') #返回列表read_id = row[0]seq = row[9]gc = cal_gc(seq)#print([read_id, seq, gc]) #检查out_handle.write('%s\t%s\t%s\n' % (read_id,seq,gc))   # %s占位符cnt += 1finally:in_handle.close()out_handle.close()#不论try中是否有异常,finally中的内容都会执行

使用上下文管理器

def cal_gc(seq):"""计算GC含量"""seq = seq.upper() #全部转换为大写return round((seq.count('C') + seq.count('G')) / float(len(seq)),2)#round 用于保留两位小数,float将序列长度转换为浮点型infile = 'data/alignment.sam'
outfile = 'output/gc.txt'with open(infile) as in_handle, open(outfile,'w') as out_handle:out_handle.write('read_id\tseq\tgc\n') #表头cnt = 0for line in in_handle:if cnt != 0: #用于有列名时去掉第一行列名row = line.split('\t') #返回列表read_id = row[0]seq = row[9]gc = cal_gc(seq)#print([read_id, seq, gc]) #检查out_handle.write('%s\t%s\t%s\n' % (read_id,seq,gc))   # %s占位符cnt += 1

根据sam文件计算reads的GC含量相关推荐

  1. python学习——把计算GC含量的代码封装成函数

    把代码封装成函数的好处是可以重复使用该段代码,并且会使代码结构清晰 例如要计算chr1以及chr2染色体的GC含量,代码如下: 1 # 将代码封装为函数并重复使用,例如计算染色体的GC含量 2 chr ...

  2. 下载FATSQ,读取10条序列并计算每条序列的长度和GC含量

    FASTQ 这是目前存储测序数据最普遍.最公认的一个数据格式,另一个是uBam格式,但这篇文章中不打算对其进行介绍.上面所讲的FASTA文件,它所存的都是已经排列好的序列(如参考序列),FASTQ存的 ...

  3. 推荐一个SAM文件中flag含义解释工具--转载

    SAM是Sequence Alignment/Map 的缩写.像bwa等软件序列比对结果都会输出这样的文件.samtools网站上有专门的文档介绍SAM文件.具体地址:http://samtools. ...

  4. 31、SAM文件中flag含义解释工具--转载

    转载:http://www.cnblogs.com/nkwy2012/p/6362996.html SAM是Sequence Alignment/Map 的缩写.像bwa等软件序列比对结果都会输出这样 ...

  5. html文件下的flag,推荐一个SAM文件中flag含义解释工具

    SAM是Sequence Alignment/Map 的缩写.像bwa等软件序列比对结果都会输出这样的文件.samtools网站上有专门的文档介绍SAM文件.具体地址:http://samtools. ...

  6. 【bioinfo】sam文件可选区域字段(Optional Feild)含义

    写在前面 SAM文件格式说明 SAM文件可选字段说明 上面两个链接是关于sam文件格式的官方说明文档,第一个包含所有字段,但对可选字段的说明比较简略,第二个是对可选字段的详细说明.这里根据官方文档,说 ...

  7. bowtie结果sam文件解读

    sam文件解读 @HD    VN:1.0    SO:unsorted @SQ    SN:chr1    LN:249250621 @SQ    SN:chr2    LN:243199373 @ ...

  8. 攻破Administrator权限--破解SAM文件法

    攻破Administrator权限--破解SAM文件法 事情是这样子的: 朋友来找我,说: 现在有一台PC,配置很一般,但是又常用,可是机子的Administrator用户被别人控制了,也就是他没有密 ...

  9. windows 账户SAM文件损坏的解决办法

    SAM文件损坏的解决办法<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" / ...

  10. WINPE的DOS工具箱删除sam文件方式破解xp开机密码

    返校后发现机子密码忘记了.各种方法无果.格机有点代价高昂.试试DOS. winpe启动. 里头有个DOS工具箱. 工具箱里头以后如下的工具: 搜寻sam文件.我的xp系统盘是C盘,第一个盘. 关于这个 ...

最新文章

  1. 【解决方法】你已从聊天服务器断开,正在尝试重新连接
  2. 【图论专题】Floyd算法及其扩展应用
  3. 无向图的最小生成树(prim算法)
  4. 台式电脑计算机无法启动 启动修复,Win10启动修复无法修复你的电脑解决方法
  5. 安全访问服务边缘(SASE)是什么?
  6. arm-linux-g 找不到头文件,交叉编译错误“ arm-none-eabi-g ++找不到条目符号”
  7. javaweb k8s_阿里云部署K8Sweb项目
  8. python函数赋值函数_python 函数参数赋值过程
  9. 在GridView开头插入自动编号的方法
  10. 不要放弃,你的梦想是这个世界上最伟大的事情。
  11. 安装JavaFX Scene Builder 到Eclipse
  12. linux通过iso安装php,linux系统下怎么安装iso文件?
  13. linux内核奇遇记之md源代码解读之三
  14. MySQL使用存储过程造数据
  15. VL53L0测距芯片试用【ST主题月】
  16. WiFi语音智能家居控制系统(二)
  17. 原神PC端缺少 PCgamesSDK.dll 解决方案
  18. 京东获取推荐商品列表 API
  19. 电力、工业、林业、安防都在用的国产测距仪---TFN D4KI 激光测距仪 双目
  20. ubuntu18.04终极美化

热门文章

  1. 什么是AWS认证,有什么用?
  2. MEM-英语 : 单词速记整理
  3. JavaScript实现汉字转拼音功能
  4. c语言字符串把小写转换大写字母,c语言将字符串中的小写字母转换成大写字母...
  5. css样式给标签加上小手图标
  6. 阿里P7大牛手把手教你!java全栈工程师证书
  7. 抖音autojs 云控脚本源码
  8. 【大学物理】设计性实验报告
  9. 如何在团队内做技术分享
  10. 在Word中将A3大小的卷子拆成A4大小来打印的方法