# 2 Rosalind 问题 — 生物信息学要塞 — “共识和简介 (CONS)”

# 2 Rosalind 问题 — 生物信息学要塞 — “共识和简介 (CONS)”
在 这篇文章,我将告诉你如何回答 “共识和简介” 问题位于 Rosalind 网站上的“Bioinformatics Stronghold”。

Bioinformatics Stronghold on Rosalind’s Site
我本来打算按照问题列表视图中出现的顺序来写这些文章,但是在完成这个问题并意识到讨论它的资源严重不足后,我决定立即写这篇文章。
这绝对是迄今为止我在完成 Rosalind 问题时遇到的比较困难的问题之一。这个问题的知识基础是我们正在创建一个“共识”字符串和一个配置文件矩阵。这些在问题附带的附加信息中得到了很好的解释,但我会尽力总结这个问题的应用和本质。

问题: 在这个问题中,我们得到了一系列以 FASTA 文件格式提供的字符串——这是记录序列数据时生物信息学中使用的一种常见文件格式。在问题的屏幕截图中,您可以看到序列的标题以“>”(胡萝卜)字符开头,然后是序列的名称。然后是一个 "\n" [新行] 然后是序列数据本身。
就我个人而言,处理这种格式是完成这个问题的障碍之一。
成功提取 FASTA 文件中每个序列的序列数据后,您必须创建一个配置文件矩阵:

在此矩阵中,您必须考虑给定 DNA 序列中每个单独核苷酸的位置,并列举特定核苷酸在某个位置出现的频率。正如我们在上面的例子中看到的,“A”核苷酸在第一个位置出现了 5 次,“T”核苷酸在第二个位置出现了 5 次,以此类推。此配置文件矩阵对于发现共有序列至关重要。该字符串本质上采用每个位置最常出现的核苷酸并将它们合并以创建一个字符串,该字符串包含文件中所有字符串之间的一致性。这项工作有助于发现给定的每个单独序列的最近共同祖先的序列可能是什么。
好的,关于这个问题的冗长但必要的讨论已经够多了,让我们进入代码!
1. 管理 FASTA 文件格式
如前所述,从 FASTA 文件中提取 DNA 序列被证明是相当困难的。我最初尝试使用一些我以前在类似问题中使用过的代码,但需要对其进行修改以适应这个问题。

此代码块允许您遍历文件并 。分裂() 基于 > 字符以区分文件中的各个序列。然后我们通过循环遍历并删除拆分后出现的数组中的空格进行一些中间清理,然后再循环两次以首先区分序列本身的标题,然后循环遍历各个序列以删除换行符在他们中。
2. 创建配置文件矩阵
接下来,我们必须创建配置文件矩阵。这也是一种痛苦,诚然,我一开始不知道如何做到这一点,但在一些帮助下 拉娜·卡尔达雷维奇的视频 关于这个问题,我发现了如何创建配置文件矩阵。

其力量在于 枚举() Python 中的函数。当循环一个数据结构时, 枚举() 允许您量化项目的位置(在这种情况下是核苷酸上的单个字符)。在第二个 for 循环中,对核苷酸出现在特定位置的次数进行量化。
3. 创建共识字符串

在这个代码块中,轮廓矩阵循环通过查找在特定位置出现的最大核苷酸并将该数据呈现在 结果 = [] 大批。
把它们放在一起

这也被证明是相当困难的,但正如您所见,这 5 行代码以 Rosalind 接受的方式格式化了结果数据。
这篇文章到此结束。我希望它对您有所帮助,如果您有任何改进这些解释器的建议,请随时告诉我。再见!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

浙公网安备 33010602011771号