我在生物信息学:全景一文中,阐述了生物信息学的应用领域非常广泛。但是有一点是很关键的,就是细胞内的生命活动都遵从中心法则,生物信息学很多时候就是在中心法则上做文章:

  • 分子生物学中心法则:DNA --> RNA --> 蛋白质 --> 细胞表型

  • 基因组中心法则:基因组 --> 转录组 --> 蛋白质组 --> 细胞表型

如何用计算机语言描述生物大分子,以及它们之间如何相互转换,是首先要面对的问题。

问题描述

遗传信息从 DNA 流向 RNA 的过程,称为转录。DNA 有 4 张不同的扑克牌,RNA 也有 4 张,唯一的区别是 DNA 中的 T,在 RNA 中变成了 U,因此 RNA 的 4 张牌是:A、U、C、G。因此,给定一条与编码链相同的 DNA 序列,要转录成 RNA 只需要将 T 替换成 U 就可以了。

给定:一条长度至多 1000bp 的 DNA 序列。

应得:其转录的 RNA 序列。

示例数据

GATGGAACTTGACTACGTAAATT

示例结果

GAUGGAACUUGACUACGUAAAUU

Python 实现

Transcribing_DNA_into_RNA.py

import sysdef transcript(dna):return dna.upper().replace('T', 'U')def test():dna  = 'GATGGAACTTGACTACGTAAATT'return transcript(dna) == 'GAUGGAACUUGACUACGUAAAUU'if __name__ == '__main__':if not test():print("transcript: Failed")sys.exit(1)with open('rosalind_rna.txt') as fh:dna = fh.read()rna = transcript(dna)print(rna)
  • 只需要将T替换成U就可以了;替换前先用 upper()是为了提高程序的健壮性,使得输入序列中含有小写字母时也能转换成功。


Problem

An RNA string is a string formed from the alphabet containing 'A', 'C', 'G', and 'U'.

Given a DNA string corresponding to a coding strand, its transcribed RNA string is formed by replacing all occurrences of 'T' in with 'U' in .

Given: A DNA string having length at most 1000 nt.

Return: The transcribed RNA string of .

Sample Dataset

GATGGAACTTGACTACGTAAATT

Sample Output

GAUGGAACUUGACUACGUAAAUU

Rosalind 刷题计划:

生物信息学算法之 Python 实现|Rosalind 刷题笔记:001 碱基统计

生物信息学算法之 Python 实现|Rosalind 刷题笔记:002 中心法则:转录

生物信息学算法之 Python 实现|Rosalind 刷题笔记:003 中心法则:翻译


如果你喜欢这篇文章,请点个“赞”吧!或者点击“在看”让更多朋友看到,点击“阅读原文”可以在知乎专栏上给我留言

生物信息学算法之Python实现|Rosalind刷题笔记:002 中心法则:转录相关推荐

  1. 生物信息学算法之Python实现|Rosalind刷题笔记:003 中心法则:翻译

    我在生物信息学:全景一文中,阐述了生物信息学的应用领域非常广泛.但是有一点是很关键的,就是细胞内的生命活动都遵从中心法则,生物信息学很多时候就是在中心法则上做文章: 分子生物学中心法则:DNA --& ...

  2. 生物信息学算法之Python实现|Rosalind刷题笔记:001 碱基统计

    前言 Rosalind is a platform for learning bioinformatics and programming through problem solving. Rosal ...

  3. 生物信息学算法之Python实现|Rosalind刷题笔记:013 随机DNA序列

    众所周知,基因组的核酸链不可能是随机形成的.有时候许多物种基因组之间,存在一些保守序列(motif),这意味着它们可能具有重要功能.但是,我们如何确定这些序列不是随机形成的 DNA 片段呢? 一个常识 ...

  4. 生物信息学算法之Python实现|Rosalind刷题笔记:010 DNA一致性序列计算

    经常碰到需要计算一组 DNA 序列的一致性序列,比如去除测序数据中的 PCR 错误,最简单的方法就是通过计算它们之间的一致性序列. 图源:rosalind.info 计算一致性序列,通常借助一个中间矩 ...

  5. 生物信息学算法之Python实现|Rosalind刷题笔记:011 DNA六框翻译

    开放阅读框(Open Reading Frame, ORF)是由起始密码子开始,直到终止密码子结束,中间不含有其他终止密码子的核酸序列.由于 DNA 是双链结构,任何一条链都可以作为模板合成 RNA: ...

  6. 生物信息学算法之Python实现|Rosalind刷题笔记:004 求DNA的反向互补序列

    碱基互补配对原则是:A 与 T 配对,G 与 C 配对. 求 DNA 的反向互补序列分两步:第一是反向,第二是互补.比如序列"ATGC",反向就是"CGTA", ...

  7. Python牛客刷题笔记

    一.类型转换 a=input() print(a.lower()) #全小写 print(a.upper()) #全大写 print(a.title()) #首字母大写a=int(input()) p ...

  8. Github最强算法刷题笔记.pdf

    资料一 昨晚逛GitHub,无意中看到一位大佬(https://github.com/halfrost)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙 ...

  9. 写了三百篇算法题解,关于如何刷题有些话我想对你说

    这篇文章憋了我挺久的,感觉都快憋出内伤,一次次的打开 Typora 写几十个字,一次次的修改删除最后关闭 Typora,如此反复. 为什么会如此纠结? 或许是太狂妄了,我真的想让那些看了这篇文章的人都 ...

最新文章

  1. css编写要注意什么 及一些公用的样式和外部引用 转码
  2. Oracle配置管理
  3. cf1561D Up the Strip(D1D2)
  4. FutureTask isDone 返回 false
  5. cesium获取模型实时坐标_Cesium 顶点着色器中求解模型坐标
  6. andriod studio 运行 无结果_无负压静音供水设备下篇一
  7. easyconnect无法在mac上使用_Mac上Python无法输入中文- 2017年
  8. (11)verilog语言编写加减乘除
  9. 推荐安卓开发神器(里面有各种UI特效和实例)
  10. mybatis进阶--一对一查询
  11. VB APP对象属性一览表 + 灵活使用VB的APP对象
  12. spring事务传播机制源码学习笔记
  13. 身份证号判断是否合法(具体代码)
  14. 【DB笔试面试666】在Oracle中,在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?...
  15. task4b_Nature_Pan_Cancer_词云
  16. 传感技术复习笔记(9)——光电式传感器
  17. 减肥中,做个 体重三围 测量软件
  18. JVM知识点精华汇总 侵立删
  19. 四大微信小程序测评结果出炉
  20. 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。 请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。如下实例。示例 :输入: 1->2->3->4-

热门文章

  1. SDUT 2021 Winter Individual Contest - J(Gym-101879)
  2. c语音,求两个数中的最大值
  3. 2021版!万字UNIX网络编程学习笔记(套接字篇)
  4. kaggle:谁是NBA最佳防守球员?(二)
  5. Selenium 爬取评论数据,就是这么简单!
  6. “5G通达,AI赋能“ AI在网络规划中的应用实践(人工智能应用案例)
  7. C#对图片进行马赛克处理,可控制模糊程度
  8. vs2017 c++工程编译解析
  9. 消费者权益法规的精神
  10. 深入浅出,一篇超棒的机器学习入门文章