在生物信息学分析中,经常对DNA序列进行一系列操作,包括子序列截取,互补序列获取,反向序列获取,反向互补序列获取。在python语言中,可编写如下函数完成这些简单功能。

子序列截取

python中对序列截取使用字符串切片功能就可以完成,例如:

>>> seq="ATGATATAGtatatatgCAAGAGg"
>>> subseq = seq[1:6]
>>> subseq
"TGATA"

注意,切片操作是“0-base”的,包左不包右。

互补序列获取

比较常见的做法是定义一个碱基替换字典,如下所示:

def complement(s):basecomplemt = {"A":"T","T":"A","G":"C","C":G","a":"t","t":"a","g":"c","c":"g",}letters = list(s)letters = [basecomplement[base] for base in letters]return ''.join(letters)

使用python3字符串使用的translate方法

def complement(seq):return seq.translate(str.maketrans('ACGTacgtRYMKrymkVBHDvbhd', 'TGCAtgcaYRKMyrkmBVDHbvdh'))

python2 string包中的maketrans方法

from string import maketransdef complement(seq):return seq.translate(maketrans('ACGTacgtRYMKrymkVBHDvbhd', 'TGCAtgcaYRKMyrkmBVDHbvdh'))

反向互补序列获取

def revcomp(seq): return complement(seq)[::-1]

参考资料

DNA反向互补序列获取

转载于:https://www.cnblogs.com/yahengwang/p/9332561.html

python实现DNA序列字符串转换,互补链,反向链,反向互补链相关推荐

  1. 利用python处理dna序列_Python + 生物信息 02 :Biopython 分析序列

    Biopython 做序列分析 一.安装Biopython:如果环境已经有Biopython可以跳过这一步.这里有两种安装方案,一种通过pip快速安装,另一种通过安装包安装 1. 用pip安装Biop ...

  2. Python数据类型:序列(字符串str、列表list、元组tuple、字典dict、范围range) 和集合set

    一:序列 序列sequence是多个值组成的一个整体,Python中的序列包含列表list.元组tuple.范围range.字符串str,集合set不属于序列. 二:字符串str 2.1原始字符串 r ...

  3. 利用python处理dna序列_详解基于python的全局与局部序列比对的实现(DNA)

    程序能实现什么 a.完成gap值的自定义输入以及两条需比对序列的输入 b.完成得分矩阵的计算及输出 c.输出序列比对结果 d.使用matplotlib对得分矩阵路径的绘制 一.实现步骤 1.用户输入步 ...

  4. 利用python处理dna序列_利用Python编程提取基因组基因序列

    生物技术. DOI: 10.16660/j.cnki.1674-098X.2019.11.141 利用Python编程提取基因组基因序列 ① 庞雪原 张婷婷 (东北农业大学生命科学学院 黑龙江哈尔滨 ...

  5. Python JSON格式与字符串转换(字符串转json、json转字符串)

    1. 字符串转为JSON 源代码: import jsonstr = ''' [{"name": "Tom","gender": " ...

  6. 【生信笔记】python实现DNA反向互补序列的6种方法

    文章目录 1 写在前面的絮絮叨叨 2 反向序列函数 3 互补序列函数 互补序列方法1:用字典dictionary 互补序列方法2:python3 translate()方法 互补序列方法3:最原始方法 ...

  7. numpy序列预处理dna序列_使用机器学习和Python揭开DNA测序神秘面纱

    "脱氧核糖核酸(DNA)是一种分子,其中包含每个物种独特的生物学指令.DNA及其包含的说明在繁殖过程中从成年生物传给其后代." 简介 基因组是生物体中DNA的完整集合.所有生物物种 ...

  8. python字符串转换字节_python 字节与字符串转换

    1.如果没有设置字符串编码格式,那么将采用系统默认编码格式 name = 'laogaoyang' # 采用系统默认编码格式 nameBytes = name.encode('utf-8') # 先将 ...

  9. 使用机器学习和Python揭开DNA测序神秘面纱

    "脱氧核糖核酸(DNA)是一种分子,其中包含每个物种独特的生物学指令.DNA及其包含的说明在繁殖过程中从成年生物传给其后代." 简介 基因组是生物体中DNA的完整集合.所有生物物种 ...

最新文章

  1. 读书笔记之: 计算机网络(第4版)- 第6章 传输层
  2. 为什么要假设变量为正态分布?
  3. SpringBoot学习(二)探究Springboot启动机制
  4. Linux显示txt文件,如何在Linux中显示文本文件中的某些行?
  5. python定时器及数据库操作
  6. Pulseaudio之模式设置(二十一)
  7. 回顾2020年那些“领域第一本”,每一本都强烈推荐!
  8. 【C++函数】strcat()
  9. java异或运算_java中异或怎么运算?
  10. SpringMvc通过ajax完成上传到oss上
  11. Kubuntu终端中文显示一半解决办法
  12. 电脑热点的连接问题(基于现有IPhone12)
  13. Android Studio 使用技巧
  14. JVM成神之路(一)---咱们为什么要学习JVM
  15. [CCC2022 J2] Fergusonball Ratings
  16. 你到底是想做产品,还是想做产品经理?
  17. windows2012R2安装python3.x版本报错0x80240017
  18. 更新下来的vue项目如何跑起来
  19. java项目生成多个条码_java – 生成随机条形码 – 一个设计问题
  20. 好书推荐,电子人的入门好书

热门文章

  1. QT qDebug打印
  2. antd 英文_现在npm install下来的ant 默认是英文的国际化, 怎么恢复成中文呢?
  3. dpi和ppi换算_屏幕尺寸,分辨率,像素,ppi,dpi的关系
  4. 夏日必备太阳镜的选购技巧
  5. 资深程序员面试的五大经验分享,顺利走向人生巅峰
  6. QTP无法录制IE浏览器的web操作
  7. android 压缩json数据处理,android接口中json数据的传输中使用gzip压缩
  8. 开发-通用设计-留痕
  9. 埃及分数怎么计算java_JAVA代码—算法基础:埃及分数问题
  10. 阿里云 修改服务器密码 如何修改root密码?如何修改普通用户的密码?