算法帮忙!与其伙伴一起搜索字符串的快速算法

2024-03-02

我正在寻找一种用于在巨大字符串中进行搜索的快速算法(它是由数亿到数十亿个字符组成的生物体基因组序列)。

该字符串中仅存在 4 个字符 {A,C,G,T},并且“A”只能与“T”配对,而“C”与“G”配对。

现在我正在搜索两个可以反向并行配对的子字符串(两个子字符串的长度限制在 {minLen, maxLen} 之间,间隔长度在 {intervalMinLen, IntervalMaxLen} 之间)。

例如, 该字符串是:ATCAG GACCA TACGC CTGAT

约束:minLen = 4、maxLen = 5、intervalMinLen = 9、intervalMaxLen = 10

结果应该是

  1. “ATCAG”与“CTGAT”配对

  2. “TCAG”与“CTGA”配对

提前致谢。

更新:我已经有了确定两个字符串是否可以相互配对的方法。唯一的问题是进行详尽的搜索非常耗时。


我知道您不是在搜索子字符串,但我认为创建一个包含匹配项的反向基因组字符串可能是值得的;那么任务就是找到两个字符串中的公共子字符串。

Example:

原字符串

  ATCAG GACCA TACGC CTGAT

反转字符串:

  TAGTC CGCAT ACCAG GACTA

如果您随后将字符串转换为它的配对值(替换 TA 和 CG,您会得到一些有用的东西:

  ATCAG GCGTA TGGTC CTGAT

我知道这种预处理成本高昂并且消耗大量空间,但是之后您将能够使用标准字符串算法,并且根据您正在搜索的比较量,这当然是合理的。

当原始字符串和反向查找字符串时,我认为你的问题听起来与 '最长公共子串 http://en.m.wikipedia.org/wiki/Longest_common_substring_problem' 问题描述得很好。第二个预处理是构建一个后缀树以允许快速查找子字符串。

你最终会得到二次的运行时间,但我怀疑你能做得更好

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法帮忙!与其伙伴一起搜索字符串的快速算法 的相关文章

  • 从实体获取单列

    如何从查询中获取单个列而不是整个对象 我可以这样做来获取整个对象 但我想要的只是名称 IList
  • 当从后台工作程序发生事件时,XlCall.Excel(XlCall.xlcCalculateNow) 抛出 XlCallException

    我有一个 ExcelFunction 来排队一些计算 ExcelFunction public static void QueueCalcs takes ranges var calcRequests builds list of calc
  • Nullable 是不可能的,为什么不呢? [复制]

    这个问题在这里已经有答案了 如果这是一个愚蠢的问题 请原谅 我正在尝试更好地理解 Net 中的 Nullable 类型 从我从 Microsoft 源代码 使用 ReSharper 中注意到的内容 我了解到 Nullable 是一个结构 而
  • C# 和月历,选择多个日期

    我正在制作一个程序 可以帮助人们用 C 为某个部门 预订 订单 他们需要能够选择不同月份的多个日期 我更愿意拥有它 这样他们就可以单击一个日期 然后按住 Shift 键单击另一个日期以选择这两个日期之间的所有日期 并控制单击以进行单选 取消
  • .pdbs 会减慢发布应用程序的速度吗?

    如果 dll 中包含 pdb 程序调试 文件 则行号将出现在引发的任何异常的堆栈跟踪中 这会影响应用程序的性能吗 这个问题与发布与调试 即优化 无关 这是关于拥有 pdb 文件的性能影响 每次抛出异常时都会读取 pdb 文件吗 加载程序集时
  • libtool 在 Ubuntu 13.04 上构建 thrift 0.9.1 时出错

    在 Ubuntu 13 04 上构建 thrift 0 9 1 支持 C C java C perl python 时出现此错误 configure 不带任何选项运行 make 不带任何选项运行 Making all in test mak
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • 类中是否可以有虚拟类声明?

    我正在为个人项目中框架的各个组件设置一个接口 我突然想到了一些我认为可能对接口有用的东西 我的问题是这是否可能 class a public virtual class test 0 class b public a public clas
  • 虚拟并行端口模拟器

    在我的计算机网络课程中 我们应该通过使用本机寄存器 例如使用 outportb 等命令 来学习并行端口编程 我没有并行端口 因为我住在 2011 年 但想练习这些程序 我使用 dosbox 安装了旧的 Turboc 3 IDE 有没有一个程
  • C# Winforms Designer 无法打开,因为它无法在同一程序集中找到类型

    我收到以下错误 找不到类型 My Special UserControl 请确保引用包含此类型的程序集 如果此类型是您的开发项目的一部分 请确保已使用当前平台或任何 CPU 的设置成功构建该项目 但没有任何意义的是My Special Us
  • C 类型命名约定,_t 或 ALLCAPS

    我一直想知道是否有任何命名约定 例如何时对类型使用全部大写以及何时追加 t 什么时候不使用任何东西 我知道当时 K R 发布了各种有关如何使用 C 的文档 但我找不到任何相关内容 在 C 标准库类型中 t看起来漂亮占主导地位 time t
  • 如何增加ofstream的缓冲区大小

    我想增加 C 程序的缓冲区大小 以便它不会过于频繁地写入 默认缓冲区是 8192 字节 我尝试使用 pubsetbuf 将其增加到 200K 原始代码 ofstream fq fastq1 cstr ios out fastq1 is a
  • 在 C++ 代码 gdb 中回溯指针

    我在运行 C 应用程序时遇到段错误 在 gdb 中 它显示我的一个指针位置已损坏 但我在应用程序期间创建了 10 万个这样的对象指针 我怎样才能看到导致崩溃的一个 我可以在 bt 命令中执行任何操作来查看该指针的生命周期吗 谢谢 鲁奇 据我
  • 选择 asp.net CheckBoxList 中的所有项目

    ASP NET 和 C 我想要一个带有 全选 项目的复选框列表 当这个特定项目是 已选择 所有其他都将被选择 也 当选择被删除时 这个项目 也将来自所有人 其他物品 选中 取消选中 任何其他项目只会有一个 对特定项目的影响 无论选择状态如何
  • 测验;这个编译了吗?如果是的话它会返回什么(我知道答案)

    我最近发现这个错字 if name find string npos 显然开发者的意思是输入 if name find string npos 但令我惊讶的是发现错误甚至编译 Wall Werror 没有尝试过 pedantic 那么 咖啡
  • C++ 模板可以提供 N 个给定类的公共父类吗?

    我正在寻找一个 C 模板 它可以找到一组给定类的共同父级 例如 class Animal class Mammal public Animal class Fish public Animal class Cat public Mammal
  • WPF DataGrid - 在每行末尾添加按钮

    我想在数据网格的每一行的末尾添加一个按钮 我找到了以下 xaml 但它将按钮添加到开头 有人知道如何在所有数据绑定列之后添加它吗 这会将按钮添加到开头而不是末尾
  • 使用 IdentityDbContext 和 Code First 自动迁移表位置和架构的实体框架?

    我正在尝试使用 IdentityDbContext 类设置自动迁移更新 并将更改传播到整个数据库的实际 DbContext 在进入代码之前 在使用自动迁移实现 IdentityDbContext 时 我收到此错误 影响迁移历史系统表位置的自
  • MSVC编译器下使用最大成员初始化联合

    我正在尝试初始化一个LARGE INTEGER在 C 库中为 0 确切地说是 C 03 以前 初始化是 static LARGE INTEGER freq 0 在 MinGW 下它产生了一个警告 缺少成员 LARGE INTEGER Hig
  • 如何在 Razor 编辑视图中显示选中的单选按钮 Asp net core mvc

    尽管 Razor 视图中的 Asp 网络核心代码 model List

随机推荐

  • Postgres SQL 状态:22P02

    我需要在 Postgres 中运行以下查询 select left file date 10 as date lob name devicesegment sum conversion units numeric as units from
  • 水晶报表子报表分页符

    我是水晶报表新手 我一直在尝试解决这个子报表分页问题 我想我知道该报告的作用 但我不知道如何解决这个问题 很难解释 所以我上传了这些图片 My main report My sub report which is in the Detail
  • 在 int 上使用扩展方法

    我正在阅读有关扩展方法的内容 并尝试使用它们 看看它们是如何工作的 我尝试了这个 namespace clunk public static class oog public static int doubleMe this int x r
  • 在 Heroku 环境中使用 ResourceUtils.getFile 从类路径读取文件

    我正在 Heroku 中运行 Spring Boot 应用程序 使用 Maven 来管理构建生命周期 在应用程序的初始化阶段 我想读取打包到 JAR 文件中的文件 为了设法获取文件的内容 我正在使用 Spring 实用程序类Resource
  • UILongPressGestureRecognizer 不工作

    我想检测UILongPressGestureRecognizer为了UIWebView点击并按住 这样当我长按近3秒时 就会出现以下内容if条件应该是True那么只有 if navigationType UIWebViewNavigatio
  • 如何阻止会话

    当导航到 Facebook 社交网络时 我发现我可以打开 2 个帐户 1 个在 Firefox 中 另一个在 Internet Explorer 中 或者可能是多个帐户 这不太好 因为 Facebook 政策只允许同时打开一个会话 启动会话
  • 将 Devexpress GridControl 动态添加到 C# Windows 应用程序

    我想动态添加 Devexpress GridControl 在运行时我想显示过滤器行 另外 我希望在具有动态创建的 GridControl 的同一窗体上有一个按钮 单击该按钮时 它应该显示网格控件的过滤器对话框弹出窗口 提供的示例可以满足您
  • 读取 bash 中具有默认值的变量

    我需要在 bash 脚本中从终端读取一个值 我希望能够提供用户可以更改的默认值 Please enter your name Ricardo 在此脚本中 提示是 请输入您的姓名 默认值为 Ricardo 光标将位于默认值之后 有没有办法在
  • 使用 Ghostscript 作为 x11 查看器(gs x11 视口定位)?

    我已经知道了Ghostscript 前端 http en wikipedia org wiki Ghostscript Front ends观众 但我想知道如何gs本身可以用来查看PDF文档吗 我能得到的最接近的是明确指定x11窗口作为输出
  • 当有匹配时,使用 MERGE 后如何获取标识值?

    假设我有一个带有身份字段的表 如果记录尚不存在 我想在其中插入一条记录 在下面的示例中 我检查存储在 Field1 中的值是否已存在于表中 如果没有 我插入一条新记录 表的定义 MyTable MyTableId int Identity
  • 解码字符串中的“=C3=A4”

    我尝试了很多不同的方法来正确显示我的字符串 但我无法使其工作 这就是字符串 f C3 A4hrt German word f hrt 我的文件以 utf 8 编码 该文件在 Joomla 中加载 我都尝试过 geschichte gt in
  • Elastic BeanStalk EC2 实例的日志耗尽了整个磁盘空间

    我有一个 Elastic BeanStalk 环境 在 1 个 EC2 实例上运行我的应用程序 当我最初配置环境时 我添加了负载均衡器 但从那时起我将其设置为仅使用 1 个实例 在容器内运行的应用程序显然会产生大量日志 几天后它们会耗尽整个
  • 如何使用 React hook 检测 Next.js SSR 中的窗口大小?

    我正在使用 Next js 构建一个应用程序反应日期 https github com airbnb react dates 我有两个组件日期范围选择器组件和DayPickerRangeController成分 我想渲染日期范围选择器当窗口
  • 将动态二维数组传递给函数

    我正在用 C 编写一个 n x n 矩阵乘法程序 其中 a 和 b 是输入 x 是输出 a b 和 x 已分配 但我不确定如何正确地将指针传递给乘法函数 下面是我想做的事情的概述 void multiplication float a fl
  • 如何在不冒失去对称属性的风险的情况下用hibernate实现equals?

    在阅读了 再次 很久以前就应该这样做 正确实现 equals 和 hashcode 后 我得出了这些结论 这对我有用 如果是 JDK 7 之前的版本 更喜欢使用 Apache commons equalsbuilder 和 hashcode
  • Java内部类和私有字段的可见性

    直到今天我才意识到这一点 但在 Java 中 私有字段在内部类上并不是真正私有的 您可以实例化一个类并访问这些字段 就好像它们是公共的一样 我的问题是为什么这是用 Java 完成的 哪些设计决策导致了封装的破坏 允许这样做有什么好处吗 pu
  • 转换为同一个类时出现 ClassCastException

    我有 2 个不同的 Java 项目 其中一个有 2 个类 dynamicbeans DynamicBean2 and dynamic Validator 在另一个项目中 我动态加载这两个类并将它们存储在Object class Form C
  • 字符串仅包含给定的字符集

    我需要知道给定的字符串是否是有效的日期时间格式字符串 因为该字符串可能代表其他内容 我尝试了 DateTime ParseExact somedate ToString format format 认为它会因无效格式而呕吐 但事实并非如此
  • 从匿名函数作用域中提取数据

    由于此应用程序的复杂性 我需要包装 Facebook API 调用 如下所示 In main file read is always undefined var read fb connect readStream In fb wrappe
  • 算法帮忙!与其伙伴一起搜索字符串的快速算法

    我正在寻找一种用于在巨大字符串中进行搜索的快速算法 它是由数亿到数十亿个字符组成的生物体基因组序列 该字符串中仅存在 4 个字符 A C G T 并且 A 只能与 T 配对 而 C 与 G 配对 现在我正在搜索两个可以反向并行配对的子字符串