ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何为每个字符赋值并使用python或awk查找平均值?

2019-07-15 16:55:39  阅读:243  来源: 互联网

标签:python awk bioinformatics biopython


我有一个文本文件,其中包含蛋白质序列(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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有