【问题标题】:Biopython retrieving particular CDS from a whole genomeBiopython 从整个基因组中检索特定的 CDS
【发布时间】:2015-11-10 11:47:26
【问题描述】:

我是 Stackoverflow 的新手。我正在尝试使用 Biopython 自动化搜索过程。我有两个列表,一个带有蛋白质 GI 编号,另一个带有相应的核苷酸 GI 编号。 例如:

protein_GI=[588489721,788136950,409084506]

nucleo_GI=[588489708,788136846,409084493]

第二个列表是使用 ELink 创建的。然而,核苷酸 GI 对应于整个基因组。我需要从每个与蛋白质 GI 匹配的基因组中检索特定的 CDS。 我尝试再次使用具有不同链接名称(“protein_核苷酸_cds”,“protein_nuccore”)的 ELink,但我得到的只是整个基因组的 id 编号。我应该尝试其他一些链接名称吗? 我还尝试了以下 EFetch 代码:

import Bio
from Bio import Entrez
Entrez.email = None

handle=Entrez.efetch(db="sequences",id="588489708,588489721",rettype="fasta",retmode="text")
print(handle.read())

这种方法在 fasta 文件中提供了核苷酸和蛋白质序列,但核苷酸序列是整个基因组。

如果有人可以帮助我,我将不胜感激。 提前谢谢你!

【问题讨论】:

  • 我尝试了您的示例,但没有发现任何问题。我得到一个包含两条记录的 fasta,每条记录对应于每个 ID。
  • 嗨@cnluzon,我的问题是核苷酸序列是整个基因组。我想只提取该蛋白质的编码序列。可以从 NCBI 网站手动检索特定的 CDS,但我无法自动执行此步骤。
  • 所以你得到的第一条记录是全基因组?但它对应于你得到的这个 GI ID。如果您使用在线 Entrez 实用程序,您将获得完全相同的记录。我只是在猜测,但问题可能出在上一步,即您获取 GI ID。

标签: biopython


【解决方案1】:

希望对你有帮助

import Bio
from Bio import Entrez
from Bio import SeqIO
Entrez.email = "mail@example.com"

gi_protein = "GI:588489721"
gi_genome = "GI:588489708"

handle=Entrez.efetch(db="sequences", id=gi_protein,rettype="fasta", retmode="text")
protein = SeqIO.parse(handle, "fasta").next()

handle=Entrez.efetch(db="sequences", id=gi_genome, rettype="gbwithparts", retmode="text")
genome = SeqIO.parse(handle, "gb").next()

#to extract feature with 'id' equal to protein
feature = [f for f in gb.features if "db_xref" in f.qualifiers and gi_protein in f.qualifiers["db_xref"]]

#to get location of CDS
start = feature[0].location.start.position
end = feature[0].location.end.position
strand = feature[0].location.strand 

seq = genome[start: end]

if strand == 1:
  print seq.seq
else:
  #if strand is -1 then to get reverse complement
  print seq.reverse_complement().seq

print protein.seq

然后你得到:

ATGGATTATATTGTTTCAGCACGAAAATATCGTCCCTCTACCTTTGTTTCGGTGGTAGGG CAGCAGAACATCACCACTACATTAAAAAATGCCATTAAAGGCAGTCAACTGGCACACGCC TATCTTTTTTGCGGACCGCGAGGTGTGGGAAAGACGACTTGTGCCCGTATCTTTGCTAAA ACCATCAACTGTTCGAATATATCAGCTGATTTTGAAGCGTGTAATGAGTGTGAATCCTGT AAGTCTTTTAATGAGAATCGTTCTTATAATATTCATGAACTGGATGGAGCCTCCAATAAC TCAGTAGAGGATATCAGGAGTCTGATTGATAAAGTTCGTGTTCCACCTCAGATAGGTAGT TATAGTGTTATATTATCGATGAGGTTCACATGTTATCGCAGGCAGCTTTTAATGCTTTT CTTAAAACATTGGAAGAGCCACCCAAGCATGCCATCTTTATTTTGGCCACTACTGAAAAA CATAAAATACTACCAACGATCCTGTCTCGTTGCCAGATTTACGATTTTAATAGGATTACC ATTGAAGATGCGGTAGGTCATTTAAAATATGTAGCAGAGAGTGAGCATATAACTGTGGAA GAAGAGGGGTTAACCGTCATTGCACAAAAAGCTGATGGAGCTATGCGGGATGCACTTTCC ATCTTTGATCAGATTGTGGCTTTCTCAGGTAAAAGTATCAGCTATCAGCAAGTAATCGAT AATTTGAATGTATTGGATTATGATTTTTACTTTAGGTTGGTGGATGCTTTTCTGGCAGAA GATACTACACAAACACTATTGATTTTTGATGAGATATTGAAACGGGGATTTGATGCACAT CATTTTATTTCCGGTTTAAGTTCTCATTTGCGTGATTTACTTGTATGTAAGGATGCAGCC ACCATTCAGTTGCTGGATGTGGGTGCTAAAATTAAGGAGAAGTACGGTGTTCAGGCGCAA AAAAGTACGATTGACTTTTTAATGGATGCTTTAAATATTACCAACGATTGCGATTTGCAA TATAGGGTGGCTAAAAATAAGCGTTTGCATGTGGAGTTTGCTCTTCTTAAGATAGCACGT GTATTAGATGAACAAAAAAAAAAGTAG MDYIVSARKYRPSTFVSVVGQQNITTTLKNAIKGSQLAHAYLFCGPRGVGKTTCARIFAK TINCSNISADFEACNECESCKSFNENRSYNIHELDGASNNSVEDIRSLIDKVRVPPQIGS YSVYIIDEVHMLSQAAFNAFLKTLEEPPKHAIFILATTEKHKILPTILSRCQIYDFNRIT IEDAVGHLKYVAESEHITVEEEGLTVIAQKADGAMRDALSIFDQIVAFSGKSISYQQVID NLNVLDYDFYFRLVDAFLAEDTTQTLLIFDEILKRGFDAHHFISGLSSHLRDLLVCKDAA TIQLLDVGAKIKEKYGVQAQKSTIDFLMDALNITNDCDLQYRVAKNKRLHVEFALLKIAR VLDEQRKK

【讨论】:

  • 这太棒了!非常感谢何塞!我使用 Python 3,所以我不得不改变一些东西,但整体代码非常好。我刚开始使用 Biopython,我还在学习。我希望有一天我能帮助像你一样帮助我的人:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 2014-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多