问题标签 [biopython]

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.

0 投票
3 回答
1579 浏览

python - python multiprocessing 每个都有自己的子进程(Kubuntu,Mac)

我创建了一个脚本,默认情况下会创建一个多处理进程;然后它工作正常。启动多个进程时,它开始挂起,而且并不总是在同一个地方。该程序大约有 700 行代码,所以我将尝试总结发生了什么。我想通过并行化最慢的任务(即对齐 DNA 序列)来充分利用我的多核。为此,我使用 subprocess 模块调用命令行程序:'hmmsearch',我可以通过 /dev/stdin 输入序列,然后通过 /dev/stdout 读出对齐的序列。我想挂起是因为这些多个子进程实例从标准输出/标准输入读取/写入,我真的不知道解决这个问题的最佳方法......我正在研究 os.fdopen(...) & os .tmpfile(), 创建临时文件句柄或管道,我可以在其中刷新数据。但是,我以前从未使用过,我无法想象如何使用 subprocess 模块来做到这一点。理想情况下,我想完全绕过硬盘驱动器,因为管道在高吞吐量数据处理方面要好得多!对此的任何帮助都会非常棒!

在调试了一段时间后,我发现了一个一直存在但尚未完全解决的问题,但已经修复了(调试)过程中的其他一些低效率问题。有两个初始馈线函数,这个 align_seq 类和一个文件解析器parseHMM(),它将位置特定评分矩阵 (PSM) 加载到字典中。然后,主父进程将对齐与 PSM 进行比较,使用字典(字典)作为指向每个残基的相关分数的指针。为了计算我想要的分数,我有两个单独的 multiprocessing.Process 类,一个类logScore()计算对数优势比(使用 math.exp() );我把这个并行化;并将计算的分数排队到最后一个进程sumScore()它只是对这些分数求和(使用 math.fsum),将总和和所有特定位置的分数作为字典返回给父进程。即 Queue.put( [sum, { residual position : position specific score , ... } ] ) 我发现这特别令人困惑(队列太多!),所以我希望读者能够遵循.. . 完成上述所有计算后,我再提供将累积分数保存为制表符分隔输出的选项。这就是它现在(从昨晚开始)有时会中断的地方,因为我确保它会为每个应该有分数的位置打印出一个分数。我认为由于延迟(计算机计时不同步),有时首先放入队列的logScore没有达到sumScore第一的。为了让 sumScore 知道何时返回计数并重新开始,我将“endSEQ”放入执行计算的最后一个 logScore 进程的队列中。我认为它也应该最后达到 sumScore,但情况并非总是如此;只有有时它会破裂。所以现在我不再遇到死锁,而是在打印或保存结果时出现 KeyError 。我相信有时会出现 KeyError 的原因是因为我为每个 logScore 进程创建了一个队列,但是他们应该都使用相同的队列。现在,我有类似的东西: -

而我应该只创建一个队列以在所有 logScore 实例之间共享。IE

0 投票
1 回答
392 浏览

python - Biopython CodonTable error?

I am writing some code intended to translate ambiguous DNA codes into possible amino acids and I am seeing some strange translation from the Biopython 1.56 package. It appears to be translating ambiguous DNA codes to 'J' which does not exist as a code for anything. I am running python 2.6.1 on Mac OS 10.6.6.

For example:

or

I have looked through the Bio.Data.CodonTable source and Bio.Seq source and I cannot find a reason why this would be happening. Any ideas?

Thanks!

Mark

0 投票
1 回答
541 浏览

sqlite - 将嵌套字典/xml 转换为 sqlite 的平面文件

我已经搜索了网络,似乎找不到合适的例子,所以我想我会问......(顺便说一句,这对我来说大部分是新的 - 不是全部,只是大多数。)

问题:尝试将已发布的引文数据的 bio/python 嵌套字典(或 xml)转换为平面(标准化)结构,例如 sqlite。引文数据是使用 biopython 从 pubmed 获取的,并被解析为字典,但如果需要,也可以作为 xml 检索。

并非所有引文都具有所有字段/键,并且并非所有字段/键都具有相同数量的项目(作者、网格术语、参考文献等),并且理解这是规范化过程的一部分。

这就是我的实际理解结束的地方。

也就是说,我认为这个过程应该是这样的:首先删除/规范化所有唯一字段(每篇论文有 1 个字段,例如标题、摘要、日期、引文等......,但不要说从属关系,因为那将是链接到第一作者)。没有摘要的论文可以填空吗?

然后继续说,作者并再次使用 PMID 作为 fk 创建一个单独的表,然后对单独表中的各种其他字段/键/项目执行相同的操作,例如网格标题、EC 编号、参考等...

有没有办法从主字典中删除(弹出?)键/项目,以便我可以直观地看到已完成/需要完成的操作(显然离开 PMID)?

再次,如果我要向初学者提出一个明显的问题,请提前道歉-我确实理解您不能将嵌套结构放入平坦的空间中-只是寻找解决此问题的最不愚蠢的方法,并希望有一个这将使我能够确保正确捕获所有内容。

非常感谢,克里斯

0 投票
2 回答
338 浏览

python - 在python中用html标记序列中的突变位置

我想知道 python 或 biopython 中是否有任何方法允许在 html 中标记序列。

我想根据该位置是否是已知的 snp/indel 等来标记序列上的位置(即不同的颜色基数)

在数组中有一个突变位置列表(从数据库中读取),例如

突变位置 = [10,20,30,40]

我可以使用以下方法更改受影响基础的大小写: seq = seq[0:b] + mutation_positions[b].lower() + seq[(b+1):len(seq)]

但是是否可以添加一些 html 代码,例如为每个突变位置添加标签 pos。(当 html 标记添加到序列中时,序列的长度会改变,因此在循环的每次迭代中突变位置与新标记的序列不匹配!)

我希望这是有道理的!

谢谢。

0 投票
2 回答
1980 浏览

python - “模块”对象不可调用 - Bio.IUPAC

当我尝试时,

为什么我会遇到以下错误:

PS:这是 BioPython's Cookbook 中的一个示例

0 投票
2 回答
997 浏览

python - 用于从 Python 中的公共数据库解析生物序列的脚本

问候 stackoverflow 社区,

我目前正在关注生物信息学模块作为生物医学学位的一部分(我基本上是 python 新手),并且作为 Python 编程任务的一部分需要以下任务:

提取基序序列(氨基酸序列,因此基本上是程序语言中的字符串,已从实现多序列比对和随后迭代数据库扫描以生成最佳保守序列的算法中切除。最终的想法是从这样的“图案”)。

这些基序存储在公共数据库中的文件中,这些文件具有对应于每个蛋白质的多个数据字段(uniprot ID、登录号、存储在超链接 .seq 文件中的比对本身),目前其中一个在此范围内感兴趣。数据字段称为“提取的主题集”。

我的问题是如何编写一个基本上解析“主题字符串”并将它们输出到文件的脚本。我现在已经对脚本进行了编码,使其如下所示(我还没有将结果写入文件):

现在的问题是,虽然我的代码在原始数据库文件 (prints41_!.kdat) 上循环而不是使用 urllib 模块连接到公共数据库,正如下面 Simon Cockell 所建议的那样,脚本的输出在python shell,而它应该创建一个列表,例如 [AAYIGIEVLI, AAYIGIEVLI, AAYIGIEVLI, etc..]

有人知道逻辑错误在哪里吗?任何输入表示赞赏!我为冗长的文字道歉,我只是希望尽可能清楚。提前感谢您的帮助!

0 投票
2 回答
12452 浏览

python - 是否有一个函数可以在给定对齐参数的情况下计算对齐序列的分数?

我尝试对已经对齐的序列进行评分。让我们说

给定参数

我确实浏览了 biopython 食谱,但我能得到的只是替换矩阵 blogsum62,但我觉得它必须有人已经实现了这种库。

那么任何人都可以建议任何可以解决我的问题的库或最短的代码吗?

提前谢谢

0 投票
1 回答
843 浏览

python - BCBio 的 GFF 解析器问题

我正在尝试使用 BCBio GFF 解析器解析 GFF 文件,但出现以下错误。有人可以帮我解决这个问题吗?

回溯(最近一次通话最后):

这是我的代码:

谢谢图利卡

0 投票
4 回答
457 浏览

python - 在 Python 的 ASCII 文件中查找/替换带有注释的子字符串

我正在从事的生物信息学项目中遇到一些编码问题。基本上,我的任务是从数据库中提取基序序列并使用这些信息来注释序列比对文件。比对文件是纯文本,因此注释不会很复杂,充其量只是在比对文件本身中用星号替换提取的序列。

我有一个脚本,它扫描数据库文件,提取我需要的所有序列,并将它们写入输出文件。我需要的是,给定一个查询,读取这些序列并将它们与 ASCII 对齐文件中的相应子字符串匹配。最后,对于每个出现的基序序列(一个非常大的字符串的子字符串),我将用星号序列替换基序序列 XXXXXXX *

我使用的代码是这样的(11SGLOBULIN 是数据库中蛋白质条目的名称):

但不是用星号序列替换每个字符串,而是删除整个文件。谁能明白为什么会这样?

我怀疑问题可能在于我的 ASCII 文件基本上只是一个很长的氨基酸列表,而 Python 不知道如何替换隐藏在很长字符串中的特定子字符串。

0 投票
3 回答
4928 浏览

python - 重新编号蛋白质结构文件 (pdb) 中的残基


,我目前正在制作一个旨在将所有乳头瘤病毒信息整合到一个地方的网站。作为努力的一部分,我们正在整理公共服务器(例如 genbank)上的所有已知文件我遇到的一个问题是,所有已解决的结构中有许多(约 50%)没有根据蛋白质编号。即,子域被结晶(氨基酸310-450),但是结晶学家将其沉积为残基1-140。我想知道是否有人知道重新编号整个 pdb 文件的方法。我找到了重新编号序列的方法(由 seqres 标识),但这不会更新螺旋和工作表信息。如果您有任何建议,我将不胜感激……<br> 谢谢