提取细菌基因组ORF思路:

1.通过FNA文件得到细菌基因组序列

2.分正负链和三个相位共6种情况统计ORF

3.写入文件

转载请保留出处!

统计细菌基因组ORF

贴上Python代码(版本:3.6)

 1 # -*- coding: utf-8 -*-
 2 """
 3 Created on Thu Dec 14 13:19:00 2017
 4
 5 @author: zxzhu
 6 """
 7
 8 import re
 9 def N2M(sequence):                    #正负链转换
10     hash = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C','N':'N'}
11     sequence = ''.join([hash[i] for i in sequence])
12     return sequence[::-1]
13
14 def translate(seq):                    #将序列转换为起始,终止,其他密码子
15     pa1 = re.compile(r'TAA|TAG|TGA')
16     after_trans = ''
17     for i in range(0,len(seq),3):
18         if seq[i:i+3]=='ATG':
19             after_trans+='I'
20         elif pa1.match(seq[i:i+3]):
21             after_trans+='T'
22         else:
23             after_trans+='O'
24     return after_trans
25
26 def get_orf(seq,length=90):
27     pa2 = re.compile(r'I[IO]+?T')   #匹配模式:起始1非终止1~N终止1
28     trans_seq = translate(seq)
29     m = pa2.finditer(trans_seq)     #所有匹配结果的迭代
30     index = []
31     orf = []
32     for i in m:
33         index.append(i.span())     #序列起始,终止位置
34     for i in index:
35         orf_start = i[0]*3
36         orf_end = i[1]*3
37         #print(orf_start,orf_end)
38         if orf_end - orf_start >= length:   #不小于90bp
39             orf.append(seq[orf_start:orf_end])
40     return orf
41
42 def Seq2AA(sequence,hash):    #翻译为AA序列
43     AA=''
44     for i in range(0, len(sequence) - 3, 3):
45         AA += hash[sequence[i:i + 3]]
46     return AA
47
48 def main(fna,length=90):
49     fn = open(fna)
50     pa = re.compile(r'\s+')
51     hash_seq = {}  # CDS hash,CDS2sequence
52     result1 = open('orf_seq.txt','w')
53     result2 = open('orf_AA.txt','w')
54     start = [0,1,2]       #相位
55     strain = '+-'         #正负链
56     hash_AA = {}  # AA hash,sequence2AA
57     with open('AA.txt', 'r') as f:                         #AA.txt 为密码子表
58         for line in f:
59             line = line.strip()
60             if line:
61                 line = pa.split(line)
62                 hash_AA[line[0]] = line[1]      #AA hash
63
64     for line in fn:                             #获取序列
65         line = line.strip()
66         if line.startswith('>'):
67             A = pa.split(line)[0].replace('>', '')
68             hash_seq[A] = ''
69         else:
70             hash_seq[A] += line
71
72     for key in hash_seq.keys():             #分+-链,3个相位统计ORF
73         seq = hash_seq[key]
74         for r in strain:
75             if r == '-':
76                 seq = N2M(seq)
77             for s in start:
78                 seq = seq[s:]
79                 #trans_seq = translate(seq)
80                 orf = get_orf(seq)
81                 for i in orf:
82                     if 'N' not in i:      #去除N
83                         AA =Seq2AA(i,hash_AA)
84                         result1.write('>'+key+'\t'+r+'\t'+str(s)+'\n'+i+'\n')
85                         result2.write('>'+key+'\t'+r+'\t'+str(s)+'\n'+AA+'\n')
86     fn.close()
87     result1.close()
88     result2.close()
89
90
91 fna = 'GCA_000160075.2_ASM16007v2_genomic.fna'
92 main(fna)

NCBI可以找ORF,很方便。码一下:ORFfinder

转载于:https://www.cnblogs.com/zxzhu/p/8038535.html

统计细菌基因组ORF相关推荐

  1. MPB:华大孙海汐等-从细菌基因组中预测活性前噬菌体工具Prophage Hunter的使用流程和常见问题...

    为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...

  2. Nature子刊:超高速细菌基因组检索技术

    超高速搜索现存细菌和病毒基因组 Ultrafast search of all deposited bacterial and viral genomic data Nature Biotechnol ...

  3. PhiSpy:在细菌基因组中识别噬菌体

    PhiSpy:在细菌基因组中识别噬菌体 PhiSpy: a novel algorithm for finding prophages in bacterial genomes that combin ...

  4. NBT:超高速细菌基因组检索技术

    文章目录 超高速搜索现存细菌和病毒基因组 写在前面 热心肠日报 摘要 图1. 序列搜索方法 图2. 编码原理 图3. 权衡速度和空间下与索引大小关系 图4. 质粒序列的系统发育分布 图5. 质粒分布与 ...

  5. Nature:拟南芥微生物组功能研究2细菌基因组测序和分析

    本网对Markdown排版支持较差,请跳转植物微生物组公众号阅读 背景介绍 Bai, Y., et al. (2015). "Functional overlap of the Arabid ...

  6. 一文搞定细菌基因组De Novo测序分析

    本文转自基因的生物信息学分析,链接 https://mp.weixin.qq.com/s/xWOlv5WVJ7LwTuRQDXmGzg 以一个细菌的测序数据为例子,介绍细菌基因组测序分析流程.本次实验 ...

  7. NBT:使用纳米孔测序从微生物组中得到完整闭环的细菌基因组

    文章目录 使用纳米孔测序从微生物组中得到完整成环的细菌基因组 热心肠导读 摘要 前言 结果 图1 定义的12种细菌混合物中的序列分类学组成.每种细菌的读长分布和基因组组装 图2:在两个健康的人类粪便微 ...

  8. 一个细菌基因组完整分析脚本

    本文转自"基因学苑",已获授权 分析流程图 一.数据质控 利用fastqc软件对原始测序reads进行指控,生成网页帮统计报告,根据报告内容对数据机型过滤. mkdir resul ...

  9. 16款测序平台性能大PK,华大表现不俗!基于人类和细菌基因组DNA水平的多平台测序数据研究成果发布...

    生物信息学习的正确姿势 NGS系列文章包括NGS基础.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流程).单细胞测序分析  ...

  10. Abbexa 细菌基因组 DNA 试剂盒介绍

    艾美捷Abbexa 细菌基因组 DNA 试剂盒使用溶菌酶和适度的裂解缓冲液来裂解细胞.蛋白酶 K 用于蛋白质消化,而 RNase A 用于 RNA 消化.DNA 在高盐环境中与硅胶柱特异性结合,DNA ...

最新文章

  1. Notification和Notification Manager的使用
  2. 移动端适配方案 flexible.js
  3. ASP获取地址栏URL地址方法
  4. 《自然》公布2020科学界十大人物,李兰娟、张永振入选
  5. mysql Error 1045(28000)
  6. spring.xml从外部文件引入数据库配置信息
  7. JavaScript文档对象模型document对象改变Html元素内容(3)
  8. 计算机考试策略,计算机等级考试应试的策略.doc
  9. Facade(装饰模式)
  10. 如何正确选用无线模块天线
  11. 前端(HTML css JS)开发工具及常用插件推荐
  12. node mysql菜鸟教程_Node.js GET/POST请求
  13. 【python爬虫】QQ空间爬虫 笔记
  14. xp系统更改计算机名c盘,c盘满了怎么办,小编教你电脑xp的c盘满了怎么办
  15. 未来物联网的一些问题
  16. UVA 12304 (平面几何)
  17. Accelerated Proximal Gradient Method/FISTA
  18. jQuery ? NO, Axios——请求数据
  19. uni-app开发小程序以及项目部署流程
  20. opencv-python(cv2)——如何读取和保存中文路径图片(含代码)

热门文章

  1. arraylist有顺序吗_美团Java研发岗二面:什么叫线程安全?servlet是线程安全吗?...
  2. A[1080]Graduate Admission 两个cmp比较函数两个struct结构体
  3. cytoscape使用方法_关于这种“网络模块”和“模块饼图”的可视化方法
  4. arm汇编指令集_汇编入门第一篇,小白也能看懂
  5. Mysql之事务与视图
  6. NYOJ 608 508筹划工程 HDU 1232 畅通工程
  7. centos7 java 1.8_Centos7下安装Java JDK 1.8
  8. c++ builder 2010论坛_CHiF中国血液创新论坛 | 领域大咖带您开启CLL的个体化治疗之门...
  9. 中国电子学会c语言考试题库,计算机基础考试试题及答案
  10. 自动驾驶 6-1: 横向车辆控制介绍 Lesson 1: Introduction to Lateral Vehicle Control