jjzjj

Bioinformatics

全部标签

python - 高效存储的字典。这个数据结构是否存在,它叫什么?

我想要一个数据结构来存储大量彼此相似的低熵数据。我想有效地存储它们(以某种方式压缩)并通过索引或匹配检索。快速检索比压缩更重要,但不能以未压缩的方式存储它们。我能想到的最好的例子是存储从大量文本中提取的十亿个书面句子(以磁盘上的压缩形式)。dict:1:'Thequickbrownfoxjumpsoverthelazydog.'2:'Thequickgreenfrogjumpsoverthelazyfox.'3:'Thequickbrownfoxjumpsoverthelazyfrog.'如果两个句子相同,则它们应该具有相同的索引。我想通过索引或通配符匹配来检索它们(正则表达式也很好,

python - 决定折叠这棵树的截止点的算法?

我有一个Newick通过比较4-9bp长DNA序列的假定DNA调节基序的位置权重矩阵(PWM或PSSM)的相似性(欧氏距离)构建的树。树的交互式版本在iTol(here)上,您可以自由使用它-只需在设置参数后按“更新树”:我的具体目标:如果它们到最近的父进化枝的平均距离小于X(ETE2Pythonpackage),则将图案(尖端/终端节点/叶子)折叠在一起。这在生物学上很有趣,因为一些基因调节DNA基序可能彼此同源(旁系同源物或直系同源物)。这种折叠可以通过上面链接的iTolGUI完成,例如如果您选择X=0.001,那么一些图案会折叠成三角形(图案系列)。我的问题:有人可以建议一种算法

python - Needleman-Wunsch 算法动态规划实现中的回溯

我的needleman-wunsch实现几乎可以正常工作,但我对如何处理特定案例的回溯感到困惑。想法是,为了重新构建序列(最长路径),我们重新计算以确定得分来自的矩阵。我遇到问题的边缘情况是右下角的分数不在匹配矩阵中,而是在插入列矩阵中(这意味着生成的追溯序列应该有一个插入。这些序列以a2m格式记录,其中序列中的插入被记录为小写字符。所以在最终输出中,ZZ到AAAC的对齐方式应该是AAac。当我手动回溯时,我以AAAc结束,因为我只访问了Ic矩阵一次。Here是我的白板的图片。如您所见,我有三个黑色箭头和一个绿色箭头,这就是为什么我的回溯给了我AAAc。我应该数第一个单元格,然后停在位

python - 如何缓存读取?

我正在使用python/pysam来分析测序数据。在它的命令伙伴教程(pysam-AninterfaceforreadingandwritingSAMfiles)中说:'这种方法对于高通量处理来说太慢了。如果读取需要与其伙伴一起处理,请从读取名称排序文件或更好的缓存读取中工作。'您将如何“缓存读取”? 最佳答案 Caching是加速长时间运行操作的典型方法。它为了计算速度而牺牲了内存。假设您有一个函数,给定一组参数总是返回相同的结果。不幸的是,这个函数非常慢,你需要调用它很多次,这会减慢你的程序。您可以做的是存储有限数量的{para

python - 如何缓存读取?

我正在使用python/pysam来分析测序数据。在它的命令伙伴教程(pysam-AninterfaceforreadingandwritingSAMfiles)中说:'这种方法对于高通量处理来说太慢了。如果读取需要与其伙伴一起处理,请从读取名称排序文件或更好的缓存读取中工作。'您将如何“缓存读取”? 最佳答案 Caching是加速长时间运行操作的典型方法。它为了计算速度而牺牲了内存。假设您有一个函数,给定一组参数总是返回相同的结果。不幸的是,这个函数非常慢,你需要调用它很多次,这会减慢你的程序。您可以做的是存储有限数量的{para

python - 为什么 Collections.counter 这么慢?

我正在尝试解决Rosalind的基本问题,即计算给定序列中的核苷酸,并在列表中返回结果。对于那些不熟悉生物信息学的人来说,它只是计算字符串中4个不同字符('A'、'C'、'G'、'T')出现的次数。我希望collections.Counter是最快的方法(首先是因为他们声称是高性能的,其次是因为我看到很多人使用它来解决这个特定问题)。但令我惊讶的是这种方法是最慢的!我比较了三种不同的方法,使用timeit并运行两种类型的实验:多次运行一个长序列多次运行一个短序列。这是我的代码:importtimeitfromcollectionsimportCounter#Method1:usingc

python - 为什么 Collections.counter 这么慢?

我正在尝试解决Rosalind的基本问题,即计算给定序列中的核苷酸,并在列表中返回结果。对于那些不熟悉生物信息学的人来说,它只是计算字符串中4个不同字符('A'、'C'、'G'、'T')出现的次数。我希望collections.Counter是最快的方法(首先是因为他们声称是高性能的,其次是因为我看到很多人使用它来解决这个特定问题)。但令我惊讶的是这种方法是最慢的!我比较了三种不同的方法,使用timeit并运行两种类型的实验:多次运行一个长序列多次运行一个短序列。这是我的代码:importtimeitfromcollectionsimportCounter#Method1:usingc

python - 使用 python/selenium 保存完整的网页(包括 css,图像)

我正在使用Python/Selenium将基因序列提交到在线数据库,并希望保存我返回的整页结果。下面是让我得到我想要的结果的代码:fromseleniumimportwebdriverURL='https://blast.ncbi.nlm.nih.gov/Blast.cgi?PROGRAM=blastx&PAGE_TYPE=BlastSearch&LINK_LOC=blasthome'SEQUENCE='CCTAAACTATAGAAGGACAGCTCAAACACAAAGTTACCTAAACTATAGAAGGACAGCTCAAACACAAAGTTACCTAAACTATAGAAGGACAG

python - 使用 python/selenium 保存完整的网页(包括 css,图像)

我正在使用Python/Selenium将基因序列提交到在线数据库,并希望保存我返回的整页结果。下面是让我得到我想要的结果的代码:fromseleniumimportwebdriverURL='https://blast.ncbi.nlm.nih.gov/Blast.cgi?PROGRAM=blastx&PAGE_TYPE=BlastSearch&LINK_LOC=blasthome'SEQUENCE='CCTAAACTATAGAAGGACAGCTCAAACACAAAGTTACCTAAACTATAGAAGGACAGCTCAAACACAAAGTTACCTAAACTATAGAAGGACAG

python - 优化存储在 SQLite 中的数据 - 如何加入多个联系人?

我正在存储不同元素之间的联系。我想消除某种类型的元素并存储由消除的元素互连的元素的新联系。问题背景想象一下这个问题。你有一个水分子与其他分子接触(如果接触是氢键,我的水周围可能还有4个其他分子)。如下图所示(A、B、C、D是其他一些原子,点表示接触)。AB||HH..O/\HH..CD我有所有点的信息,我需要去除中心的水并创建描述A-C、A-D、A-B、B-C、B-D和C-D接触的记录。数据库结构目前,我在数据库中有以下结构:表原子:“id”整数主键,"amino"char(3)NOTNULL,(HOH表示水或其他值)识别原子的其他列表联系人:"acceptor_id"integerN