Jun 05 2008
使用python进行ClustalW格式和aligned FASTA格式转换
ClustalW格式是多序列比对程序CLUSTAL W的默认输出格式,大概是这个样子:
Aligned FASTA格式是多序列比对程序MUSCLE的默认输出格式,与一般的FASTA格式很相似,只是根据比对结果在序列中填充“-”,使所有序列长度相同,例如:
Aligned FASTA格式更便于机器阅读,而ClustalW格式是比较人性化的 ,使用者可以直观地看到相同和不同的区域。
由于MUSCLE程序的profile alignment功能需要aligned FASTA格式的输入,因此我写了以下一段简单的python代码,把ClustalW格式转换成aligned FASTA格式:
-
#!/usr/bin/python
-
#Usage: python clw2afa.py input.clw
-
#Default output is STDOUT, you can redirect using '>'
-
-
import sys
-
import re
-
-
pat=re.compile('(\S+)\s+(\S+)')
-
-
f=open(sys.argv[1])
-
header=f.readline()
-
if not header.startswith('CLUSTAL') and not header.startswith('MUSCLE'):
-
sys.exit("Wrong input file type.")
-
ln=f.readline()
-
while not ln.strip():
-
ln=f.readline()
-
seqdict={}
-
EOF=False
-
while ln:
-
m=pat.search(ln)
-
if m and not '*' in ln:
-
seqdict[m.group(1)]=m.group(2)
-
ln=f.readline()
-
elif not ln:
-
EOF=True
-
break
-
else:
-
break
-
if not EOF:
-
while True:
-
ln=f.readline()
-
if not ln:
-
break
-
m=pat.search(ln)
-
if m and not '*' in ln:
-
seqdict[m.group(1)]+='\n'+m.group(2)
-
f.close()
-
for k,v in seqdict.items():
-
print ">%s\n%s"%(k,v)
写得有点混乱,希望大家如果使用的话把BUG报告一下^^




,下载该蛋白质的pdb文件。然后打开RasMol,Ubuntu下自动安装在Applications->Education目录下。或者直接在终端输入rasmol运行。然后打开下载的1R8J.pdb文件,开始胡搞。Display菜单可以选择显示模式,Colours菜单可以选择着色方式,Options菜单可以选择是否显示氢原子、是否显示镜像等。然后Export菜单允许用户把图像导出为平面图形文件。



