首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Uniprot ID获得PDB ID +链ID吗?

从Uniprot ID获得PDB ID +链ID吗?
EN

Stack Overflow用户
提问于 2022-03-24 09:59:45
回答 1查看 254关注 0票数 0

我有一个Uniprot I列表,需要知道PDB I和链I。使用Uniprot网站上的代码,我可以获得PDB ID,而不是链式信息。

代码语言:javascript
运行
复制
import urllib.parse
import urllib.request

url = 'https://www.uniprot.org/uploadlists/'

params = {
'from': 'ACC+ID',
'to': 'PDB_ID',
'format': 'tab',
'query': UniProtIDs
}

data = urllib.parse.urlencode(params)
data = data.encode('utf-8')
req = urllib.request.Request(url, data)
with open('UniProt_PDB_IDs.txt', 'a') as f:
   with urllib.request.urlopen(req) as q:
      response = q.read()
      f.write(response.decode('utf-8'))

所以这段代码给了我这个:

代码语言:javascript
运行
复制
From    To
A0A075B6N1  5HHM
A0A075B6N1  5HHO
A0A075B6N1  5NQK
A0A075B6T6  1AO7
A0A075B6T6  4ZDH

对于含有PDB 5HM的蛋白质A0A075B6N1,链是E和J,所以我需要一种方法来检索这些链,得到这样的信息:

代码语言:javascript
运行
复制
A0A075B6N1  5HHM_E 
A0A075B6N1  5HHM_J
A0A075B6N1  5HHo_E
A0A075B6N1  5NQK_B

它不必是这种格式,稍后我将其转换为一个字典,其中UniProt in作为键,PDB作为值。

谢谢你提前提供帮助!

EN

回答 1

Stack Overflow用户

发布于 2022-09-13 14:14:46

最近刚刚发布了一个名为localpdb的工具,它可以实现您想要的结果:https://labstructbioinf.github.io/localpdb/

另一种方法是按段拆分结构,这可以很容易地用MDanalysis宇宙对象(https://www.mdanalysis.org)来完成。假设您有一个PDB ID列表:

代码语言:javascript
运行
复制
#fetch structures
universe_objects = []
for pdb_id in pdb_ids:
    mmtf_object = mda.fetch_mmtf(pdb_id)
    universe_objects.append(mmtf_object)

#get rid of water and ligands and split structures into chains
universe_chains = []
for universe_object in universe_objects:
    universe_chain = universe_object.select_atoms('protein').split('segment')
    universe_chains.append(universe_chain)
    
#flatten nested list
universe_chain_list = [item for sublist in universe_chains for item in sublist]

当然,您还可以使用其他工具来完成此任务。例如,通过ProDy Hierview函数!

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71600329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档