Chinaunix首页 | 论坛 | 博客
  • 博客访问: 367060
  • 博文数量: 97
  • 博客积分: 2846
  • 博客等级: 少校
  • 技术积分: 1000
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-19 20:00
文章分类

全部博文(97)

文章存档

2017年(1)

2013年(2)

2012年(6)

2011年(17)

2010年(12)

2009年(41)

2007年(18)

我的朋友

分类: Python/Ruby

2009-04-04 18:45:27

文件: dinucleotides.rar
大小: 0KB
下载: 下载
输出一个序列然后返回其中的二核苷酸的分布情况:
 
 

# demonstrates
#
# - list comprehension
# - method fromkeys
# - sequence unpacking
# - method iteritems
# - gradually building complex string


def dinucleotide_distribution(s):
    """Return histogram of dinucleotide
    distribution in DNA string s"
""

    nuc = "A", "C", "G", "T"

    keys = [ (a, b) for a in nuc for b in nuc]

    # create dictionary where all dinucleotide keys
    # have default value 0:
    d = dict.fromkeys( keys, 0 )

    for i in xrange(0, len(s)-1):
        d[(s[i], s[i+1])] += 1

    # build histogram string as a list first:
    histogram = []
    for (n1, n2), m in sorted(d.iteritems()):

        if m>0:
            histogram.append("%s%s : %3d"%(n1, n2, m))

    # turn list into string:
    return "\n".join(histogram)


s = raw_input("Input DNA string: ")
print dinucleotide_distribution(s.upper())

阅读(380) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~