问题标签 [rentrez]

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 投票
2 回答
451 浏览

python - Biopython NCBI/Entrez 总结输出和 R 包输出的区别

我是通过 Biopython 和几个 R 包(rentrez 和 reutil)访问 Entrez 的新手。使用 esummary 访问“nuccore”数据库时,Biopython 返回的输出字段与 R 包返回的输出字段不同。

Python:

Biopython 返回的字段是:

['AccessionVersion','Caption','Comment','CreateDate','Extra','Flags','Gi','Id','Item','Length','ReplacedBy','Status',' TaxId','Title','UpdateDate']

R(reutil包):

而 R 包 reutil 和rentrez 返回的字段是: 31 项的摘要结果:

['uid', 'caption', 'title', 'extra', 'gi', 'createdate', 'updatedate', 'flags', 'taxid', 'slen', 'biomol', 'moltype', '拓扑','sourcedb','segsetsize','projectid','genome','subtype','subname','assemblygi','assemblyacc','tech','completeness','geneticcode','strand' , '有机体', '菌株', '生物样本', '统计', '属性', 'oslt']

提前致谢。

0 投票
2 回答
929 浏览

python - 从 PubMed 抓取数据

我编写了以下函数来使用 Entrez 从 PubMed 中提取数据:

但是,此功能并不总是有效,因为并非所有 MEDLINE 记录都包含所有字段。例如,此PMID不包含任何 MeSH 标题。

我可以用 try-except 语句包装每个项目,例如abstract

但这似乎是一种笨拙的实现方式。有什么更优雅的解决方案?

0 投票
1 回答
119 浏览

r - 在 R 中矢量化 for 循环

天啊。我在从我的代码中删除 for 循环方面非常糟糕,因为我发现它们非常直观,而且我首先学习了 C++。下面,我正在为搜索(在本例中为 copd)获取 ID,并使用该 ID 检索其完整的 XML 文件,并将其位置保存到向量中。我不知道如何加快速度,在 700 个 ID 上运行大约需要 5 分钟,而大多数搜索都有 70,000 多个 ID。感谢您的任何指导。

0 投票
1 回答
210 浏览

r - rentrez 错误 HTTP 失败:下载 >1/3 的记录时出现 400

我有一个奇怪的情况。我正在使用rentrez. 当我运行entrez_search()然后entrez_summary()然后entrez_fetch()我收到此错误消息(帖子底部的完整代码):

在四处搜索之后,我想我已经在这个关于查询大小的讨论中找到了解决方案。当我retmax_set从 500 减少到 10 时,代码起作用了。然后我反复确定retmax_set不会引发错误的最大值,并发现在我看来是非常奇怪的行为。

搜索term_set = "transcription AND enhancer AND promoter AND 2017:2018[PDAT]"产生 552 条记录。使用不同的值运行我的代码时retmax

  • 设置retmax_set<= 183 作品
  • 设置retmax_set>= 184 给出上述错误

修改后的搜索term_set = "transcription AND enhancer AND promoter AND 2018[PDAT]"产生 186 条记录。使用不同的值运行此搜索时retmax

  • 设置retmax_set<= 61 作品
  • 设置retmax_set>= 62 给出上述错误

搜索term_set = "transcription AND enhancer AND promoter AND 2017[PDAT]"产生 395 条记录(出于某种原因,PubMed 将 29 条记录标记为 2017 年和 2018 年发布)。当在这个搜索词上运行我的代码时,具有不同的值retmax

  • 设置retmax_set<= 131 作品
  • 设置retmax_set>= 132 给出上述错误

retmax有趣的是,当值大于记录总数的三分之一(552 / 3 = 184、186 / 3 = 62、395 / 3 = 131.67)时,所有三个搜索都开始失败。我将修改我的代码以retmax_set根据返回的结果数进行计算entrez_search,但我不知道为什么rentrez或 NCBI 会这样做。有任何想法吗?

0 投票
1 回答
129 浏览

r - 使用 append() 合并后,rentrez 的摘要列表停止工作

tl; dr:由 生成的摘要列表有什么不同rentrez,为什么所述列表在rentrez使用 合并后停止与其他函数一起使用append()

我正在使用rentrez. 我可以毫无问题地搜索出版物和下载摘要。但是,摘要列表一定有一些我不理解的特殊之处,因为当我过去append()尝试合并列表时,事情就崩溃了。通过阅读文档,我无法弄清楚这种差异是什么。这是允许我毫无问题地搜索 Pubmed 和下载记录的代码:

但是,使用summary.l <- list()and thensummary.l[[length(summary.l)+1]] <- entrez_summary(...会产生一个摘要列表列表(在此搜索中为 3 个子列表)。这会导致for数据提取的后续步骤中出现多个循环(如下),并且是一种笨拙的数据结构。

在下面的代码中使用append()给出了所有 1334 个摘要的单个列表,避免了子列表。

但是,在后续步骤中extract_from_esummary()会引发错误,即使文档说明该参数esummaries应该是一个 esummary 对象列表。

产生少于 500 条记录的搜索可以在一次调用中完成,entrez_summary()并且不需要连接列表。结果,下面的代码有效。

为什么会append()破坏摘要,这可以避免吗?谢谢。

0 投票
1 回答
310 浏览

r - 从 R 中的 NCBI entrez 解析 xml

我想从 NCBI 条目的 features 部分中提取一些信息,我正在使用此代码。下载数据

分析数据

我只对功能感兴趣

我想创建一个像

但是我不明白如何检索数据

我看过 Pubmed 的一些教程,效果很好,但输出的结构不同。最后,我想创建一个循环以从 ID 列表中提取数据,并且由于并非所有条目都具有相同的结构,因此我想使用标签host organism来检索该信息。

0 投票
0 回答
99 浏览

r - 请求限制和申请

我想提出数千个 entrez 请求。我知道除非您拥有 API 密钥,否则您每秒不得发出超过 3 个请求。rentrez 介绍说,rentrez 强制执行此限制。

我只是想确保 NCBI 不会阻止我,所以性能不是这里的问题。

https://cran.r-project.org/web/packages/rentrez/vignettes/rentrez_tutorial.html

但是,如果我与 结合lapply()怎么entrez_search()办?

在这种情况下,rentrez 是否仍然强制执行请求限制,或者我是否必须在我的代码中引入停止?

0 投票
1 回答
251 浏览

r - Data.frame 两个列表,每个列表包含不同长度的元素

我有一个包含两个变量列表的数据框。列表中的每个观察都包含不同长度的元素。例如,变量“accession”的第 4 个包含一个元素,但第 7 个包含两个元素。 当前数据框

我想制作一个新的数据框,将两个列表组合在一起,如下所示: 我想要的最终数据框

谢谢你帮助我!

这是我目前拥有的数据框。

这是我希望拥有的数据框结果

0 投票
1 回答
233 浏览

python - 如何使用 Biopython 找到蛋白质的核苷酸序列?

我有蛋白质,我想找到它们对应的核苷酸序列。我也有发现蛋白质的基因组。在基因组中,我找到了该蛋白质的相应基因 ID。但是,我在获取带有 Gene ID 的核苷酸序列时遇到了麻烦。我曾尝试使用 Entrez Efetch:

但这仅返回以下内容:

反正有没有使用 Efetch 获得实际的核苷酸序列?提前致谢!

0 投票
1 回答
44 浏览

r - system() 是否打开连接?

我有一个 entrez 命令,我正在通过 R 中的一个循环,它似乎在一段时间内工作得很好,但我最终得到了一个我很难弄清楚的错误。

下面的循环将在第 1020 个迭代器上开始失败:

在这种情况下,您不需要我试图从中提取的属的实际载体:

应该做得很好。我一直无法找到使错误更早出现的方法(以便于诊断),并且要求 R 关闭所有打开的连接似乎没有帮助(包含在上面的代码中)。我知道我可以诉诸将我的向量分解成更小的部分并以这种方式运行,但这似乎有点像放弃。

在 MacOS 上运行: