标签: sequence-alignment

为什么Vision框架无法对齐两个图像?

我正在尝试使用相机拍摄两张图像,并使用iOS Vision框架对齐它们:

func align(firstImage: CIImage, secondImage: CIImage) {
  let request = VNTranslationalImageRegistrationRequest(
      targetedCIImage: firstImage) {
    request, error in
    if error != nil {
      fatalError()
    }
    let observation = request.results!.first
        as! VNImageTranslationAlignmentObservation
    secondImage = secondImage.transformed(
        by: observation.alignmentTransform)
    let compositedImage = firstImage!.applyingFilter(
        "CIAdditionCompositing",
        parameters: ["inputBackgroundImage": secondImage])
    // Save the compositedImage to the photo library.
  }

  try! visionHandler.perform([request], on: secondImage)
}

let visionHandler = VNSequenceRequestHandler()
Run Code Online (Sandbox Code Playgroud)

但这会产生严重错位的图像:

在此输入图像描述

在此输入图像描述

在此输入图像描述

您可以看到我尝试了三种不同类型的场景 - 特写主题,室内场景和室外场景.我尝试了更多的室外场景,几乎每一个场景的结果都是一样的.

在最坏的情况下,我期待轻微的错位,但不是完全错位.出了什么问题?

我没有将图像的方向传递到Vision框架中,但这不应该是对齐图像的问题.这仅仅是面部检测等问题,在这种情况下,旋转的面部不会被检测为面部.在任何情况下,输出图像都具有正确的方向,因此方向不是问题.

我的合成代码工作正常.这只是Vision框架的一个问题.如果我删除了对Vision框架的调用,放上三脚架的手机,组合就能完美运行.没有错位.所以问题是Vision框架.

这是在iPhone X上.

如何让Vision框架正常工作?我可以告诉它使用陀螺仪,加速度计和罗盘数据来改善对齐吗?

image-processing computer-vision cgaffinetransform ios sequence-alignment

10
推荐指数
1
解决办法
546
查看次数

具有仿射空位罚分的Smith-Wateman算法中的回溯

我正在尝试使用仿射空位罚函数实现用于局部序列比对的Smith-Waterman算法.我想我理解如何启动和计算计算校准分数所需的矩阵,但我不知道如何追溯以找到对齐.要生成所需的3个矩阵,我有以下代码

for j in range(1, len2):
    for i in range(1, len1):
        fxOpen = F[i][j-1] + gap
        xExtend = Ix[i][j-1] + extend
        Ix[i][j] = max(fxOpen, xExtend)

        fyOpen = F[i-1][j] + gap
        yExtend = Iy[i-1][j] + extend
        Iy[i][j] = max(fyOpen, yExtend)

        matchScore = (F[i-1][j-1]  + simMatrixDict[seq1[i-1]+seq2[j-1]])
        xScore = Ix[i-1][j-1] + simMatrixDict[seq1[i-1]+seq2[j-1]]
        yScore = Iy[i-1][j-1] + simMatrixDict[seq1[i-1]+seq2[j-1]]
        F[i][j] = max(0, matchScore, xScore, yScore)
Run Code Online (Sandbox Code Playgroud)

我不确定我是否需要一个矩阵用于追溯,或者只需要1?任何关于如何从F中的最大分数追溯的澄清将非常感激.

python bioinformatics biopython sequence-alignment

9
推荐指数
1
解决办法
6751
查看次数

如何对齐长文本?

我想将一对长文本与每个约20M的字符对齐.

我在过去使用Smith-Waterman算法但是(根据我的有限理解)它需要创建一个具有文本大小的二维数组(20M乘20M阵列) - 这是不实际的.

所以我正在寻找一种算法来对齐一对长文本,以保持实际的内存大小和执行时间.

UPDATE

我也试过Myers和Miller使用这个实现:https://www.codeproject.com/Articles/42279/Investigating-Myers-diff-algorithm-Part-of 但是我仍然没有内存异常"不是那么大"文本(1MB).

algorithm text-alignment sequence-alignment

8
推荐指数
0
解决办法
362
查看次数

实现Waterman-Eggert算法

我正在尝试实现Waterman-Eggert算法来寻找次优的局部序列比对,但我正在努力理解如何"解散"单独的比对组.我有基本的Smith-Waterman算法正常工作.

一个简单的测试,将以下序列与自身对齐:

'HEAGHEAGHEAG'
'HEAGHEAGHEAG'
Run Code Online (Sandbox Code Playgroud)

产生一个fMatrix如下:

 [[  0.   0.   0.   0.   0.   0.   0.   0.   0.   0.   0.   0.   0.]
  [  0.   8.   0.   0.   0.   8.   0.   0.   0.   8.   0.   0.   0.]
  [  0.   0.  13.   0.   0.   0.  13.   0.   0.   0.  13.   0.   0.]
  [  0.   0.   0.  17.   0.   0.   0.  17.   0.   0.   0.  17.   0.]
  [  0.   0.   0.   0.  23.   0.   0.   0.  23.   0.   0.   0.  23.]
  [  0.   8.   0.   0. …
Run Code Online (Sandbox Code Playgroud)

python bioinformatics sequence-alignment

7
推荐指数
1
解决办法
962
查看次数

非生物序列比对工具

是否有用于对齐任意大字母序列的工具/库?

市场上几乎所有的序列比对工具都集中在生物序列(核苷酸或肽)上.然而,在我的例子中,序列由数百个不同的元素组成,它们不能编码为ASCII字符串.所以,我需要一个工具或库,它可以简单地对齐两个(或更多)整数数组.

sequence-alignment

5
推荐指数
0
解决办法
517
查看次数

如何处理实现Needleman-Wunsche算法的多个最佳编辑路径?

尝试实施Needleman-Wunsche算法进行生物序列比较.在某些情况下,存在多个最佳编辑路径.

  1. 生物seq比较工具处理此问题的常见做法是什么?替换/插入/删除中的任何优先级/首选项?

  2. 如果我想在内存中保留多个编辑路径,建议使用任何数据结构?或者一般来说,如何存储分支和合并的路径?

任何评论赞赏.

bioinformatics sequence-alignment

5
推荐指数
1
解决办法
347
查看次数

R EnvironmentError:在路径上找不到Ghostscript.RWebLogo

我碰到了一个奇怪的问题,我无法以任何方式解决这个问题,我希望有人能够更好地理解这些错误;

我无法使用RWebLogo包 - 甚至运行最简单的示例,因为同样缺少Ghostscript错误.

例如跑步:

library(RWebLogo)
aln <- c('CCAACCCAA', 'CCAACCCTA', 'AAAGCCTGA', 'TGAACCGGA')
weblogo(seqs=aln, file.out='mylogo.pdf')
Run Code Online (Sandbox Code Playgroud)

抛出此错误:

Traceback (most recent call last):
  File "/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RWebLogo/extdata/weblogo-3.3/weblogo", line 71, in <module>
    weblogolib._cli.main()
  File "/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RWebLogo/extdata/weblogo-3.3/weblogolib/_cli.py", line 82, in main
    formatter(data, format, opts.fout)
  File "/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RWebLogo/extdata/weblogo-3.3/weblogolib/__init__.py", line 757, in pdf_formatter
    gs = GhostscriptAPI()    
  File "/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RWebLogo/extdata/weblogo-3.3/weblogolib/__init__.py", line 196, in __init__
    raise EnvironmentError("Could not find Ghostscript on path."
EnvironmentError: Could not find Ghostscript on path. There should be either a gs executable or a gswin32c.exe on your system's path
Run Code Online (Sandbox Code Playgroud)

我在终端中安装了ghostscript …

bash r user-environment ghostscript sequence-alignment

5
推荐指数
1
解决办法
1115
查看次数

最小位串集合与移位算法

我正在寻找一种算法来解决,或者至少是以下问题的正确名称:


我有一组B位的位串.该算法应找到最小(定义为"具有最少位设置")位串S,以便:

对于所有的b,存在一个移Ñ(在),使得(S << N) & b == b.


如果它有帮助,每个b适合机器字,和| B | 大约是几百个.


我认为我们可以假设(不失一般性)S的LSB 和每个b为1.

这看起来像是某种多序列对齐问题.

如果我们能够找到每个ñ 每个b ( = 1 .. | |),它看起来像小号只是按位或在所有(b >> ñ ).

我的直觉是,第一步是除去每个b存在用于其另一比特串Ç有的移位中号,使得b & (c << M) == b …

algorithm bit-manipulation set sequence-alignment

5
推荐指数
1
解决办法
96
查看次数

如何在python中合并具有重叠字符的字符串?

我正在开发一个python项目,它读取一个URL编码的重叠字符串列表.每个字符串长度为15个字符,并且与其顺序字符串重叠至少3个字符,最多15个字符(相同).

该程序的目标是从重叠字符串列表(有序或无序)到压缩的URL编码字符串.

我当前的方法在重叠字符串中的重复段处失败.例如,我的程序错误地组合:

StrList1 = [ 'd+%7B%0A++++public+', 'public+static+v','program%0Apublic+', 'ublic+class+Hel', 'lass+HelloWorld', 'elloWorld+%7B%0A+++', '%2F%2F+Sample+progr', 'program%0Apublic+']
Run Code Online (Sandbox Code Playgroud)

输出:

output = ['ublic+class+HelloWorld+%7B%0A++++public+', '%2F%2F+Sample+program%0Apublic+static+v`]
Run Code Online (Sandbox Code Playgroud)

当正确的输出是:

output = ['%2F%2F+Sample+program%0Apublic+class+HelloWorld+%7B%0A++++public+static+v']
Run Code Online (Sandbox Code Playgroud)

我使用简单的python,而不是biopython或序列对齐器,虽然也许我应该?

非常感谢有关此事的任何建议或在python中做到这一点的好方法的建议!

谢谢!

python string merge string-comparison sequence-alignment

5
推荐指数
1
解决办法
535
查看次数

Needleman Wunsch算法与蛮力相比如何?

我想知道如何量化Needleman-Wunsch算法的结果(通常用于比对核苷酸/蛋白质序列).

考虑到一些固定的评分方案和不同长度的两个序列S1S2.假设我们计算每个可能的对齐S1S2蛮力,最高得分对齐有一个分数x.当然,这比Needleman-Wunsch方法复杂得多.

当使用Needleman-Wunsch算法找到序列比对时,假设它有一个分数y.

考虑r到是通过EMBOSS软件包生成两个随机序列的得分R1R2.

怎么x比较y?是y始终大于r已知的同源性的两个序列?

一般来说,我确实理解我们使用Needleman-Wunsch算法来显着加快序列比对(与蛮力方法相比),但不了解随之而来的准确性成本(如果有的话).我曾经阅读过原始论文(Needleman&Wunsch,1970),但仍然留下了这个问题.

string algorithm bioinformatics sequence-alignment needleman-wunsch

3
推荐指数
1
解决办法
454
查看次数

R如何可视化成对对齐

如何可视化两个序列的完全比对?

library(Biostrings)
s1 <-DNAString("ACTTCACCAGCTCCCTGGCGGTAAGTTGATCAAAGGAAACGCAAAGTTTTCACTTCACCAGCTCCCTGGCGGTAAGTTGATCAAAGGAAACGCAAAGTTTTCAAGAAGACTTCACCAGCTCCCTGGCGGTAAGTTGATCAAAGGAAACGCAAAGTTTTCAAG")
s2 <-DNAString("GTTTCACTACTTCCTTTCGGGTAAGTAAATATATGTTTCACTACTTCCTTTCGGGTAAGTGTTTCACTACTTCCTTTCGGGTAAGTAAATATATAAATATATAAAAATATAATTTTCATCAAATATATAAATATATAAAAATATAATTTTCATCAAATATATAAAAATATAATTTTCATC")
pairwiseAlignment(s1,s2)
Run Code Online (Sandbox Code Playgroud)

输出:

Global PairwiseAlignmentsSingleSubject (1 of 1)
pattern: [1] ACTTCACCAGCTCCCTGGCGGTAAGTTGATCAAAGGAAACGCAAAGT--TTTCAC---...CTTCACCAGCTCCCTGGCGGTAAGTTG-ATCAAAGG---AAACGCAAAGTTTTCAAG 
subject: [1] GTTTCACTACTTCCTTTCGGGTAAGTAAAT-ATATGTTTCACTACTTCCTTTCGGGTA...TATATAAATATATAAAAATATAATTTTCATCAAATATATAAAAATATAATTTTCATC 
score: -394.7115 
Run Code Online (Sandbox Code Playgroud)

在这里,仅显示了部分对齐?您知道绘制或打印路线的任何现有功能吗?

r bioinformatics ggplot2 sequence-alignment

1
推荐指数
1
解决办法
656
查看次数