Overview
在转换fasta
格式的文件为chen's format
文件时,发现前人的程序有些bug,会将最后一条正样本的class
标记为-1
于是将程序改了一下,这下就没有问题了。
解决方案
fasta
格式如下,第一行为头信息,第二行为氨基酸序列:
>sp|Q2YIT7|VIRB3_BRUA2 Type IV secretion system protein virB3 OS=Brucella abortus (strain 2308) GN=virB3 PE=3 SV=1|1
MTTAPQESNARSAGYRGDPIFKGCTRPAMLFGVPVIPLVIVGGSIVLLSVWISMFILPLIVPIVLVMRQITQTDDQMFRLLGLKAQFRLIHFNRTGRFWRASAYSPIAFTKRKRES
现在需要将其转换为如下格式,以供cksaap
以及aaindex
算法之用:
MTTAPQESNARSAGYRGDPIFKGCTRPAMLFGVPVIPLVIVGGSIVLLSVWISMFILPLIVPIVLVMRQITQTDDQMFRLLGLKAQFRLIHFNRTGRFWRASAYSPIAFTKRKRES Q2YIT7 any 1
修改后的python
代码如下:
import sys
import re
import fileinput
check_head = re.compile(r'\>')
seqs = ''
head_line = ''
cls = ''
for line, strin in enumerate(fileinput.input(sys.argv[1])):
if check_head.match(strin):
strin_vec=strin.split('|')
cls = strin_vec[len(strin_vec)-1].strip()
head_line = strin_vec[1].strip()
else:
seqs = strin.strip()
print seqs+'\t'+head_line+'\t'+'any'+'\t'+cls
有些程序处理类似的格式时,有可能会把下一行或者上一行的信息和本行信息混淆,所以处理完之后最好手动检查一下正负样本交界处的数据。