Rosalind编程问题之从蛋白序列推断可能的mRNA序列个数(并取余)。

Inferring mRNA from Protein

Given: A protein string of length at most 1000 aa.
Sample input

MA

Return: The total number of different RNA strings from which the protein could have been translated, modulo 1,000,000. (Don’t neglect the importance of the stop codon in protein translation.)
Sample output

12


题目大意很容易理解:给出一段蛋白质序列,求其可能的mRNA数量,并将其取余数(mod)。
实现思路如下:
1.获取整条蛋白质序列,并分别获得其单独的氨基酸字符。
2.单个氨基酸对应其mRNA密码子个数,并做累乘。
3.累乘完全部氨基酸对应mRNA密码子个数后,考虑3个终止密码子的影响。

下面是实现代码:

public class Inferring_mRNA_from_Protein {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入蛋白序列:");String protein = sc.nextLine();TransferRNA(protein);}//1.找到每个氨基酸对应的RNA密码子数量并进行累乘public static void TransferRNA(String protein) {int pn = 1;//初始值设定为1或者0都可,后面密码子检索时都会覆盖。long mRNAnum = 3;//终止密码子有三个for (int n = 0; n < protein.length(); n++) {switch (protein.charAt(n)) {case 'I':pn = 3;break;case 'M':pn = 1;break;case 'T':pn = 4;break;case 'N':pn = 2;break;case 'K':pn = 2;break;case 'S':pn = 6;break;case 'R':pn = 6;break;case 'L':pn = 6;break;case 'P':pn = 4;break;case 'H':pn = 2;break;case 'Q':pn = 2;break;case 'V':pn = 4;break;case 'A':pn = 4;break;case 'D':pn = 2;break;case 'E':pn = 2;break;case 'G':pn = 4;break;case 'F':pn = 2;break;case 'Y':pn = 2;break;case 'C':pn = 2;break;case 'W':pn = 1;break;default:break;}mRNAnum *= pn;mRNAnum = mRNAnum % 1000000;}System.out.println(mRNAnum);}
}

为什么要取余数

在本道题的尾部,Rosalind留下了一个问题:在推断mRNA from Protein时为什么要取其余数。从计算内存占用容量角度来说,无论是int还是long类型变量,其存储范围都是有限的,不能无限累乘。但是由于我们拿到的蛋白质序列是非常长的,而每个氨基酸几乎都有多个密码子(除了甲硫氨酸等),这就使得累乘结果指数级增长,最终超出内存。因此在这里以一百万为界,取余可以等效为取出溢出的累乘数,节省计算资源。

不过在python中不会出现类似内存溢出的情况,但是取余依旧可以有效地节省计算资源,便于展示最终结果。python本道题的代码会在下篇给出。至于取余是否可能还有其他生物学意义,小编暂时没有头绪,欢迎各位大佬指点。

Rosalind Java|Inferring mRNA from Protein相关推荐

  1. Rosalind Python|Inferring mRNA from Protein

    Python| Inferring mRNA from Protein 在上一章,小编分享了Rosalind的一套题目:Rosalind Java|Inferring mRNA from Protei ...

  2. Rosalind Java| Translating RNA into Protein

    Rosalind编程问题之RNA翻译. Translating RNA into Protein Problem The 20 commonly occurring amino acids are a ...

  3. Rosalind Java|Open Reading Frames

    Rosalind编程问题之读取开放阅读框. Open Reading Frames Problem Either strand of a DNA double helix can serve as t ...

  4. Rosalind Java|Locating Restriction Sites

    Rosalind编程问题之检索限制性位点. Locating Restriction Sites Problem: A DNA string is a reverse palindrome if it ...

  5. Rosalind Java|Matching Random Motifs

    Rosalind编程问题之计算随机序列出现并匹配待比对序列的概率. 跟Rosalind Java|Introduction to Random Strings有异曲同工之妙. Matching Ran ...

  6. Rosalind Java| Computing GC Content

    Rosalind编程问题之计算GC含量. Computing GC Content Problem The GC-content of a DNA string is given by the per ...

  7. Rosalind Java| Counting Point Mutations

    Rosalind编程问题之计数核酸序列突变数. Counting Point Mutations Problem Given two strings s and t of equal length, ...

  8. Rosalind Java|Longest Increasing Subsequence动态规划算法

    Rosalind编程问题之计算集合中最长的递增元素子集. Longest Increasing Subsequence Problem: A subsequence of a permutation ...

  9. Rosalind Java| Finding a Shared Motif

    Rosalind编程问题之寻找共有的motif. Finding a Shared Motif Problem A common substring of a collection of string ...

最新文章

  1. 记录 FreeBSD
  2. 美团/力扣(647)--回文字串
  3. (七)Vue 项目规范
  4. 数据可视化|实验四 分析1996-2015年人口数据特征间的关系
  5. html 图片行内剧中,HTML入门(转义字符、行内样式和块级元素、定位、锚点、跑马灯标签、图片标签、表格标签的讲解)...
  6. 两个摄像头合成一路_64个高空抛物摄像头安装到位 同德社区居民双手点赞
  7. 关于matlab匿名函数,求导
  8. **python入门实战**-华氏度转摄氏度python代码
  9. python2中urllib.unquote乱码的原因与解决方法
  10. 高通WLAN稳定和功耗分析--目前高通项目支持的功耗策略
  11. installshield 如何实现Oracle数据库脚本的执行功能
  12. BZOJ4049 : [Cerc2014] Mountainous landscape
  13. Android编程权威指南[pdf]
  14. 设计之路 -- 如何进行软件需求分析?
  15. 关于微信聊天界面更换背景
  16. 如何快速下载CNCF Logos-收藏
  17. KDE-Graphics(KDE图形图像软件)先容
  18. sus 逆向 writrup
  19. Pycharm下载地址、汉化方法与常用快捷键
  20. zookeeper分布式调度中心

热门文章

  1. 老博会|2023第九届北京国际老年用品展览会
  2. Kalendae多选日历插件
  3. 用 Delphi 学设计模式(一) 之 简单工厂篇 (原创)
  4. html5导航 按钮,CSS实例:超酷的网站导航按钮
  5. 2022年湖南省高职单招(职业倾向性)(言语理解与表达)考试冲刺试题及答案
  6. javaweb课堂笔记(一)
  7. Scrapy爬取动态页面下载图片(以抓取360图片为例)
  8. 如何用R做计量经济学
  9. 掘金万亿二手市场,闲鱼、转转已占据90.9%市场份额
  10. mac无法挂载ntfs移动硬盘