如何解决从Fasta文件的标头解析特定的字符串
我希望从fasta头文件中获取生物体名称,我感兴趣的是从描述中提取 OS =(Organism Name) 时的生物体。
FASTA HEADER>sp|Q8T8B9|ACMSD_CAEEL 2-amino-3-carboxymuconate-6-semialdehyde decarboxylase OS=Caenorhabditis elegans GN=acsd-1 PE=2 SV=1
MPICEFSATSKSRKIDVHAHVLPKNIPDFQEKFGYPGFVRLDHKEDGTTHMVKDGKLFRV
VEPNCFDTETRIADMNRANVNVQCLSTVPVMFSYWAKPADTEIVARFVNDDLLAECQKFP
GKEHIVLGTDYPFPLGEL
EVGRVVEEYKPFSAKDREDLLWKNAVKMLDIDENLLFNKDF
>sp|P34455|ACON_CAEEL Probable aconitate hydratase,mitochondrial OS=Caenorhabditis elegans GN=aco-2 PE=3 SV=2
MNSLLRLSHLAGPAHYRALHSSSSIWSKVAISKFEPKSYLPYEKLSQTVKIVKDRLKRPL
TLSEKILYGHLDQPKTQDIERGVSYLRLRPDRVAMQDATAQMAMLQFISSGLPKTAVPST
IHCDHLIEAQKGGAQDLARAKDLNKEVFNFLATAGSKYGVGFWKPGSGIIHQIILENYAF
获取FastaHeader的代码
from Bio import SeqIO
import re
import pandas as pd
input_file = "ANIMAL.fasta"
fasta_sequences = SeqIO.parse(open(input_file),'fasta')
for fasta in fasta_sequences:
fasta_id,sequence = fasta.id,str(fasta.seq)
print(fasta.description)
当前输出:
>sp|Q8T8B9|ACMSD_CAEEL 2-amino-3-carboxymuconate-6-semialdehyde decarboxylase OS=Caenorhabditis elegans GN=acsd-1 PE=2 SV=1
>sp|P34455|ACON_CAEEL Probable aconitate hydratase,mitochondrial OS=Caenorhabditis elegans GN=aco-2 PE=3 SV=2
所需的输出:
Caenorhabditis elegans
Caenorhabditis elegans
解决方法
您可以使用正则表达式搜索您的信息:
import re
example = "sp|P34455|ACON_CAEEL Probable aconitate hydratase,mitochondrial OS=Caenorhabditis elegans GN=aco-2 PE=3 SV=2"
start = re.search("OS",example).start()
result = example[start+3:].split("GN")[0].strip()
print(result)
>> Caenorhabditis elegans
此代码在“ OS =“之后的文本中查找文本,直到“ GN”,并在末尾删除空白
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。