gpt4 book ai didi

c++ - 在 C/C++ 中遍历 Fasta 文件

转载 作者:行者123 更新时间:2023-11-30 17:23:51 24 4
gpt4 key购买 nike

我正在寻找用 C/C++ 编写一个程序来遍历格式如下的 Fasta 文件:

>ID and header information
SEQUENCE1
>ID and header information
SEQUENCE2

等等

为了找到所有唯一的序列(检查是否是任何其他序列的子集)并将唯一序列(和所有 header )写入输出文件。

我的方法是:

  1. 在开头将所有序列复制到数组/列表(更有效的方法吗?)
  2. 抓取 header ,将其附加到输出文件,将该 header 的序列与列表/数组中的所有内容进行比较。如果唯一,则将其写在标题下,如果不重复,则将其删除。

但是,我有点不确定如何正确阅读这些行。我需要阅读标题的顶行,然后“返回?”到下一行来读取序列。有时序列跨越两行以上,那么我会使用 > (来自上面的示例)作为分隔符吗?如果我使用 C++,我想我会使用 iostreams 来完成此任务?

如果有人能够在正确的方向上插入我如何阅读我需要操纵的信息/如何进行比较,我将不胜感激。

最佳答案

首先,您可能想使用已经存在的东西,而不是编写自己的 FASTA 阅读例程,例如,请参阅:http://lh3lh3.users.sourceforge.net/parsefastq.shtml

在内部,您将获得不带换行符的序列,这可能会有所帮助。我认为从高层次来看最简单的方法是

  1. 循环 fasta 并将序列写入文件
  2. 对该文件进行排序
  3. 使用排序后的文件,可以更轻松地挑选出子序列,因此编写一个程序来查找“唯一 ID”
  4. 使用唯一的 ID 返回原始 fasta 并获取您需要的任何附加信息。

关于c++ - 在 C/C++ 中遍历 Fasta 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27375111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com