如何为每个字符赋值并使用python或awk查找平均值?
作者:互联网
我有一个文本文件,其中包含蛋白质序列(200个序列),如下所示.
>ptn1
AAGHM
>ptn2
MGLKKRR
我需要为seqence的每个字符提供以下值,并且必须找到每个序列的平均值.
A= 0.2, G= 0.5, L=0.14, M= 0.70, R= 0.55, C=0.48, H= 1.00 , K=0.4
期望的输出
ptn1 - 0.52
ptn2 - 0.462
我怎么能用awk或python做到这一点?
您的建议将不胜感激
解决方法:
FS =“”需要gawk
http://www.gnu.org/software/gawk/manual/html_node/Single-Character-Fields.html#Single-Character-Fields
用法:
awk -f foo.awk foo.txt
BEGIN {
FS=""
k["A"]=0.2; k["G"]=0.5; k["L"]=0.14; k["M"]=0.70
k["R"]=0.55; k["C"]=0.48; k["H"]=1.00; k["K"]=0.4
}
/^>/{
$1=""
name=$0
next
}
{
s=0
for (i=1; i<=NF; i++) {
s+=k[$(i)]
}
printf "%s - %.3f\n", name, s/NF
}
标签:python,awk,bioinformatics,biopython 来源: https://codeday.me/bug/20190715/1469566.html