问题标签 [sequence-alignment]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bioinformatics - Biopython 如何确定系统发育树的根?
还有其他包,尤其是 R 的ape,它们构建了一个无根树,然后允许您通过显式指定一个 outgroup来对其进行根。
相比之下,在 BioPython 中,我可以直接创建一个有根树而不指定根,所以我想知道根是如何确定的,例如从以下代码。
我在构建树之后在这里制作了序列,但尽管如此,这是一个从该过程构建的有根树。
algorithm - 序列比对:避免不可能的比对
我正在使用与Needleman-Wunsch算法等效的算法来使用相似度矩阵进行模糊序列匹配。
一些结果接近最佳:
但有些不是:
问题出现在删除和插入周围:该算法将删除附近的单个字母对齐,这些字母与缺失的部分几乎不匹配。
我已经尝试惩罚间隙的开始,因此该算法有利于大间隙而不是小间隙。结果很糟糕,因为正如您在上面看到的,长度为 1 和 2 的间隙在正确对齐的部分中非常常见。
如何修改算法以避免进行这些错误的对齐,这些错误的对齐包括分散的分数差的字母(例如f
in - - - - f - -
,显然应该只是另一个-
)?
编辑:对于那些不熟悉算法的人:计算分数时,不知道将采取的方式,因为方式取决于猜测:分数。
这意味着在计算分数时我不能考虑相邻的路线,因为它们是未知的。但是如果对齐是否足够好取决于邻居:如果一对不合适(请记住:我使用填充概率的相似性矩阵)并且被间隙包围,它应该得到非常差的分数(参见第二个示例) . 如果它被其他更合适的对包围,它应该得到一个很好的分数(见第一个例子)。
因此,在计算分数时,我遇到了一些先有鸡还是先有蛋的问题。
python - 字符串长度不等的多序列比对
我需要一种从 3 - 1000 个不同长度的短 (10-20bp) 核苷酸 (“ATCG”) 读数中创建共有序列的方法。
一个简化的例子:
应该产生一致的序列"AGGGGC"
。
我在 BioPython 库中找到了进行多序列比对 (MSA) 的模块,但仅适用于相同长度的序列。我也熟悉(并且已经实现)任意长度的两个序列的 Smith-Waterman 风格对齐。我想一定有一个库或实现结合了这些元素(MSA 不等长),但经过数小时的网络搜索和各种文档都没有找到任何东西。
关于现有模块/库(首选 Python)或我可以合并到执行此操作的管道中的程序的任何建议?
谢谢!
python - 定义自己的字母表并在 biopython 中执行 MultipleSequenceAlignment
我想在 biopython 中做一个 MultipleSequenceAlignment,但使用一个自定义的字母表。背景是:我的序列是数字状态序列,最多有 5000 个状态。因此,我需要一个包含 5000 个字母的字母表,例如“0001”、“0042”、“4999”。这些序列长达 50 个状态/字母。
所以我的主要问题是:
- 我如何定义这样的字母表?
- 如何将此字母与 MultipleSequenceAlignment 一起使用?
或者:是否可以对列表/数组而不是序列执行 MultipleSequenceAlignment?
感谢您的时间和帮助!
biopython - biopython中format_alignment中序列的部分着色
我正在使用 format_alignment 来查找两个序列之间的 pariwise 对齐。我想在完全对齐中用不同的颜色(比如在碱基数 40 和碱基数 54 之间)突出显示序列的一部分,以便清楚它与哪个部分对齐。上述序列需要在两个序列中突出显示。你能建议我如何在 biopython 中做到这一点
示例序列:
序列1:ccagctgtttaattgagttgtcatatgttaataacggtatattggaacactgtataa
序列 2:CCAGCTGTTTAATTGAGTTGTCATATGTTAATAACGGTATATGGAACACTGTATAA
python - BioPython AlignIO ValueError 说字符串必须相同长度?
输入 fasta 格式的文本文件:
错误:
输入序列的长度不必相同,因为在 ClustalOmega 上,您可以对齐不同长度的序列。
这也不起作用......得到同样的错误:
熟悉 BioPython 的人是否知道如何解决这个问题以对齐 fasta 文件中的序列?
combinations - 在 Julia 中计算 Levenshtein 距离时记录所有最佳序列比对
我正在使用 Julia 中的 Wagner–Fischer 算法研究 Levenshtein 距离。
得到最优值很容易,但在从矩阵的右下角回溯时,得到最优的操作顺序就有点困难了,比如插入或删除。
我可以记录每个 d[i][j] 的指针信息,但它可能会给我 3 个方向让我回到 d[i-1][j-1] 进行替换,d[i-1][j]用于删除和 d[i][j-1] 用于插入。所以我试图得到所有给我最佳 Levenshtein 距离的操作集的组合。
看来我可以将一个操作集存储在一个数组中,但是我不知道所有组合的总数以及长度,所以我很难定义一个数组来存储枚举期间的操作集过程。如何在存储前一个数组的同时生成数组?或者我应该使用数据框?
list - Prolog中的最长子序列
我想实现一个谓词P(Xs,Ys,Zs)
,其中Xs
, Ys
,Zs
是列表。
我是 Prolog 的新手,我无法找到一种方法来获得Xs
(example. Xs = ['b','b','A','A','A','A','b','b']
) 中最长的序列,该序列包含在Ys
(example Ys = ['A','A','A','A','c','A','A','A','A']
) 中,而不会跨越偶数次。也许有人已经写了这段代码,或者有人可以告诉我我该如何开始。感谢您的帮助。
老师的解释。