问题标签 [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.
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']
提前致谢。
python - 从 PubMed 抓取数据
我编写了以下函数来使用 Entrez 从 PubMed 中提取数据:
但是,此功能并不总是有效,因为并非所有 MEDLINE 记录都包含所有字段。例如,此PMID不包含任何 MeSH 标题。
我可以用 try-except 语句包装每个项目,例如abstract
:
但这似乎是一种笨拙的实现方式。有什么更优雅的解决方案?
r - 在 R 中矢量化 for 循环
天啊。我在从我的代码中删除 for 循环方面非常糟糕,因为我发现它们非常直观,而且我首先学习了 C++。下面,我正在为搜索(在本例中为 copd)获取 ID,并使用该 ID 检索其完整的 XML 文件,并将其位置保存到向量中。我不知道如何加快速度,在 700 个 ID 上运行大约需要 5 分钟,而大多数搜索都有 70,000 多个 ID。感谢您的任何指导。
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 会这样做。有任何想法吗?
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()
破坏摘要,这可以避免吗?谢谢。
r - 从 R 中的 NCBI entrez 解析 xml
我想从 NCBI 条目的 features 部分中提取一些信息,我正在使用此代码。下载数据
分析数据
我只对功能感兴趣
我想创建一个像
但是我不明白如何检索数据
我看过 Pubmed 的一些教程,效果很好,但输出的结构不同。最后,我想创建一个循环以从 ID 列表中提取数据,并且由于并非所有条目都具有相同的结构,因此我想使用标签host
organism
来检索该信息。
r - 请求限制和申请
我想提出数千个 entrez 请求。我知道除非您拥有 API 密钥,否则您每秒不得发出超过 3 个请求。rentrez 介绍说,rentrez 强制执行此限制。
我只是想确保 NCBI 不会阻止我,所以性能不是这里的问题。
https://cran.r-project.org/web/packages/rentrez/vignettes/rentrez_tutorial.html
但是,如果我与 结合lapply()
怎么entrez_search()
办?
在这种情况下,rentrez 是否仍然强制执行请求限制,或者我是否必须在我的代码中引入停止?
python - 如何使用 Biopython 找到蛋白质的核苷酸序列?
我有蛋白质,我想找到它们对应的核苷酸序列。我也有发现蛋白质的基因组。在基因组中,我找到了该蛋白质的相应基因 ID。但是,我在获取带有 Gene ID 的核苷酸序列时遇到了麻烦。我曾尝试使用 Entrez Efetch:
但这仅返回以下内容:
反正有没有使用 Efetch 获得实际的核苷酸序列?提前致谢!
r - system() 是否打开连接?
我有一个 entrez 命令,我正在通过 R 中的一个循环,它似乎在一段时间内工作得很好,但我最终得到了一个我很难弄清楚的错误。
下面的循环将在第 1020 个迭代器上开始失败:
在这种情况下,您不需要我试图从中提取的属的实际载体:
应该做得很好。我一直无法找到使错误更早出现的方法(以便于诊断),并且要求 R 关闭所有打开的连接似乎没有帮助(包含在上面的代码中)。我知道我可以诉诸将我的向量分解成更小的部分并以这种方式运行,但这似乎有点像放弃。
在 MacOS 上运行: