嗨
我目前参与制作一个旨在将所有乳头状瘤病毒信息合并到一个地方的网站。 作为努力的一部分,我们正在策划在公共服务器(例如GenBank) 一个我遇到的问题所有已知的文件是许多(〜50%)都解决了结构都没有根据蛋白质编号。 也就是说亚结晶结晶(氨基酸310-450),然而结晶学家将其作为残基1-140沉积。 我想知道是否有人知道重新编号整个pdb文件的方法。我已经找到了重新编号序列的方法(由seqres标识),但是这不会更新螺旋线和图表信息。 我将不胜感激,如果你有任何建议...
感谢在一个蛋白质结构文件中重新编号残基(pdb)
5
A
回答
1
我也经常遇到这个问题。在放弃了我以前的perl脚本之后,我一直在尝试使用一些python。此解决方案假定您已安装Biopython,ProDy(http://www.csb.pitt.edu/ProDy/#prody)和EMBOSS(http://emboss.sourceforge.net/)。
我这里使用的乳头状瘤病毒PDB条目之一。
from Bio import AlignIO,SeqIO,ExPASy,SwissProt
from Bio.Seq import Seq
from Bio.SeqRecord import SeqRecord
from Bio.Alphabet import IUPAC
from Bio.Emboss.Applications import NeedleCommandline
from prody.proteins.pdbfile import parsePDB, writePDB
import os
oneletter = {
'ASP':'D','GLU':'E','ASN':'N','GLN':'Q',
'ARG':'R','LYS':'K','PRO':'P','GLY':'G',
'CYS':'C','THR':'T','SER':'S','MET':'M',
'TRP':'W','PHE':'F','TYR':'Y','HIS':'H',
'ALA':'A','VAL':'V','LEU':'L','ILE':'I',
}
# Retrieve pdb to extract sequence
# Can probably be done with Bio.PDB but being able to use the vmd-like selection algebra is nice
pdbname="2kpl"
selection="chain A"
structure=parsePDB(pdbname)
pdbseq_str=''.join([oneletter[i] for i in structure.select("protein and name CA and %s"%selection).getResnames()])
alnPDBseq=SeqRecord(Seq(pdbseq_str,IUPAC.protein),id=pdbname)
SeqIO.write(alnPDBseq,"%s.fasta"%pdbname,"fasta")
# Retrieve reference sequence
accession="Q96QZ7"
handle = ExPASy.get_sprot_raw(accession)
swissseq = SwissProt.read(handle)
refseq=SeqRecord(Seq(swissseq.sequence,IUPAC.protein),id=accession)
SeqIO.write(refseq, "%s.fasta"%accession,"fasta")
# Do global alignment with needle from EMBOSS, stores entire sequences which makes numbering easier
needle_cli = NeedleCommandline(asequence="%s.fasta"%pdbname,bsequence="%s.fasta"%accession,gapopen=10,gapextend=0.5,outfile="needle.out")
needle_cli()
aln = AlignIO.read("needle.out", "emboss")
os.remove("needle.out")
os.remove("%s.fasta"%pdbname)
os.remove("%s.fasta"%accession)
alnPDBseq = aln[0]
alnREFseq = aln[1]
# Initialize per-letter annotation for pdb sequence record
alnPDBseq.letter_annotations["resnum"]=[None]*len(alnPDBseq)
# Initialize annotation for reference sequence, assume first residue is #1
alnREFseq.letter_annotations["resnum"]=range(1,len(alnREFseq)+1)
# Set new residue numbers in alnPDBseq based on alignment
reslist = [[i,alnREFseq.letter_annotations["resnum"][i]] for i in range(len(alnREFseq)) if alnPDBseq[i] != '-']
for [i,r] in reslist:
alnPDBseq.letter_annotations["resnum"][i]=r
# Set new residue numbers in the structure
newresnums=[i for i in alnPDBseq.letter_annotations["resnum"][:] if i != None]
resindices=structure.select("protein and name CA and %s"%selection).getResindices()
resmatrix = [[newresnums[i],resindices[i]] for i in range(len(newresnums)) ]
for [newresnum,resindex] in resmatrix:
structure.select("resindex %d"%resindex).setResnums(newresnum)
writePDB("%s.renumbered.pdb"%pdbname,structure)
0
6
我的pdb-tools维护者 - 这马你是一个可以帮助你的工具。
我最近修改了应用程序内的residue-renumber
脚本提供更多的灵活性。它现在可以renumber
hetatms和具体链,,要么迫使残留号码是连续的或者只是添加用户指定的偏移所有的残留物。
请让我知道,如果这有助于你。
+0
谢谢,我会检查出来,让你张贴! – Stylize 2012-12-07 16:54:23
相关问题
- 1. 从单个PDB文件中提取多个蛋白质链
- 2. 重新编号残基biopython
- 3. 从蛋白质数据库(PDB)文本文件中提取列
- 4. 用给定的残基编号列表替换pdb中的残基编号
- 5. 在Biopython PDB模块中获取残基编号和残基名称
- 6. 蛋白质结构可视化
- 7. 建模蛋白质结构python
- 8. 计算pdb文件中的残基数
- 9. 蛋白质序列编码
- 10. 如何在PDB.BIO中为蛋白质原子做Superimposer后写回PDB文件python
- 11. 从PPI(蛋白质 - 蛋白质相互作用)制作无向图excel文件
- 12. 使用biopython从蛋白质数据库下载pdb的错误
- 13. 使用PyMol脚本通过从文本文件导入残基列表来选择蛋白质中的保守残基
- 14. 氨基酸结合位点发现,蛋白质数据库
- 15. 蛋白质编码基因正则表达式
- 16. 将DNA转换为蛋白质-c结构问题
- 17. 从蛋白质数据库中提取高度相似的蛋白质
- 18. 翻译DNA到蛋白质
- 19. DNA与蛋白质序列
- 20. mRNA/DNA与蛋白质
- 21. pdb蛋白库格式 - 配体去除
- 22. 立方残基模质数
- 23. 从蛋白质数据库到Cosmic或Uniprot的蛋白质序列比对
- 24. 蛋白质 - 蛋白质相互作用网络数据集的基准数据集
- 25. 寻找蛋白质序列中的氨基酸序列
- 26. 如何从蛋白质序列中提取所有可能的甲硫氨酸残基?
- 27. 命令我可以用来从一组蛋白质中分离假设的蛋白质?
- 28. 在python中重新编号文件
- 29. Biopython:通过蛋白质登录获取XML文件
- 30. 基于Python的关键字获取蛋白质FASTA序列
不建议使用pdb-tools'renumberer'。它甚至不考虑HETATM条目。 – 2011-07-20 14:25:38
谢谢...扬 - 菲利普。你有什么其他的建议? – Stylize 2012-01-18 13:59:56
我有类似的问题。看到我的帖子在这里:http://stackoverflow.com/questions/10786803/protein-sequence-alignment-from-protein-databank-to-cosmic-or-uniprot 你有没有解决它? – user1357015 2012-05-28 15:51:47