生信脚本练习(5)求fastq文件的cg含量
这道题要求求出一个fastq文件中序列的cg含量
with open("Test1.fastq","r") as f:lines = f.readlines()
seq = []
index = []
cg_n = []
cg_percentage = []
head = ['Read', 'CG']
cg = open("cg.txt","w")
#这里精髓,取出每条序列的标题
for line in lines:if lines.index(line) %4== 0:index.append(line.split(" ")[0].split(":",2)[2])
for line in lines:if lines.index(line)% 4 == 1:seq.append(line)
for line in seq:line = line.strip()counter = 0counter2 = 0for cg in line: if cg =="C" or cg =="G":counter += 1 cg_n.append(counter)percent3 = float(counter/len(line))percent3 = ('%.3f') % percent3 #格式化三位小数cg_percentage.append(percent3)
# 将两个列表变成字典 然后排序
dictionary = dict(zip(index, cg_percentage))
d = sorted(dictionary.items(), key=lambda d: d[1],reverse = True) #
d = [('Read', 'CG')] + list(d)f = open('1-1.txt','w')
for i in d:i = list(i)i[1] = "\t"+i[1] f.writelines(i)f.writelines("\n")
f.close()
这个方法其实很蠢,为什么不用字典呢?
另外用到了Counter函数,很方便
注意这种格式化输出的方法:
'%.3f'% per
# 8.13 整理 逐行读取
from collections import Counter
with open("c:/Test1.fastq","r") as f:count = 0percentage = {}while True: line = f.readline().strip()count += 1if count % 4 == 1:index =(':'.join(line.split(':')[2:6]))if count % 4 == 2:per = (Counter(line)['C'] + Counter(line)['G'])/len(line)per = ('%.3f'% per)percentage[index] = per # 这一行如果不缩进就会有问题 ???if len(line) == 0:break
percentage = sorted(percentage.items(), key=lambda x: x[1],reverse = True)
with open('c:/1-1.txt','w') as f:f.write('Read'+ "\t"+ "CG" + '\n')for i in percentage: f.write(i[0]+ "\t" + i[1]+'\n' )
生信脚本练习(5)求fastq文件的cg含量相关推荐
- linux怎么查看一个bam文件,生信分析过程中这些常见文件的格式以及查看方式你都知道吗?...
原标题:生信分析过程中这些常见文件的格式以及查看方式你都知道吗? 生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据 fastq 之外,还需要准备基因组文件 fasta 格式和基因注释文件 ...
- **生信自学记录1——获取Fastq格式的反向互补序列**
` 生信自学记录1--获取Fastq格式的反向互补序列 总共分为三步 1.读取基因序列的str格式,返回反向互补序列str 2.打开fastq格式的文本提取基因序列,返回互补序列list 3.读取互补 ...
- 生信分析过程中这些常见文件(fastq/bed/gtf/sam/bam/wig)的格式以及查看方式你都知道吗?
生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据fastq之外,还需要准备基因组文件fasta格式和基因注释文件gtf格式.在分析的过程中还会有众多中间文件的生成,如bed.bed12. ...
- 生信分析过程中这些常见文件的格式以及查看方式你都知道吗?
生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据fastq之外,还需要准备基因组文件fasta格式和基因注释文件gtf格式.在分析的过程中还会有众多中间文件的生成,如bed.bed12. ...
- python生信脚本之fasta序列反向互补
1.如何使用python把fasta序列进行反向互补 后续还要再优化 def fasta2dict(fasta_name):with open(fasta_name) as fa:fa_dict = ...
- 生信宝典文章集锦,一站式学习生信!众多干货,有趣有料
生信的作用越来越大,想学的人越来越多,不管是为了以后发展,还是为了解决眼下的问题.但生信学习不是一朝一夕就可以完成的事情,也许你可以很短时间学会一个交互式软件的操作,却不能看完程序教学视频后就直接写程 ...
- 生信宝典教程大放送,一站式学习生信技术
生物信息学包含生物数据分析.数据可视化.重复工作程序化,是生物.医学科研必备的技能之一.生信宝典精心组织生信学习系列教程.生信工具精品教程,通过大量的生信例子.关键的注释.浓缩的语句和录制的视频帮助快 ...
- 送书 | 知乎阅读300w+的生信学习指南(更新版)
先送书 在上周的留言送书活动中,恭喜下面这位读者获得书籍"Oracle高性能系统架构实战大全",请及时与生信宝典编辑(shengxinbaodian)联系. 2020过去三分之一了 ...
- 生信宝典:生物信息学习系列教程、视频、资源
生信的作用越来越大,想学的人越来越多,不管是为了以后发展,还是为了解决眼下的问题.但生信学习不是一朝一夕就可以完成的事情,也许你可以很短时间学会一个交互式软件的操作,却不能看完程序教学视频后就直接写程 ...
最新文章
- 《因果学习周刊》第9期:因果学习中的工具变量
- 帮助你高效开发Ajax应用的超酷jQuery插件 - AjaxML
- VTK:冰激凌用法实战
- sklearn预处理转化流水线
- springboot抑制log中的info信息
- java中组合_java中组合模式详解和使用方法
- amazons3 检查连接是否_钢筋机械连接接头如何检查是否合格?抽检数量、合格率是多少?...
- 【需求工程】需求管理
- 萝卜视频源码前后端带视频演示更换播放内核到3.2.6
- Winform开发框架中工作流模块的动态处理
- 学习哪一款EDA软件画PCB电路板比较好?AD、PADS与Allegro的比较
- 如何提高mysql的update速度_如何提高数据库update更新的速度
- Vue项目--仿大麦网移动端
- 请教FlashCs3导入图片时出现无法导入问题。
- 诺威健康IPO招股书失效:称将继续录得巨额亏损,TPG持股74.6%
- 快收藏ReactOS 新手指南
- DataFrame数据选取超全攻略
- vue项目中的小知识--快捷键-vue插件版本号--vscode插件等
- 淮南师范学院计算机组成原理试卷,淮南师范学院物化试卷J
- 上海高校计算机二级考纲,上海市普通高校计算机等级考试考纲
热门文章
- 作为编程爱好者的我,为什么痴迷于编程?
- android 阻止系统进入深度休眠(不影响正常休眠逻辑)
- Python中导入cx-Oracle文件配置
- 第1章 从新浪微博聊起多端应用
- 斯蒂文斯理工学院计算机科学硕士,美国史蒂文斯理工学院计算机科学专业申请(附案例)...
- 【华人学者风采】刘康 中国科学院自动化所
- 启动http报错AH00558:Could not reliably determine the server‘s fully qualified domain name using解决办法
- Python 创建一个类实现机器人跳舞
- 手机号格式处理(正则)
- with 语句的二三事