搜索
查看: 1462|回复: 1

【py】rosalind5_ Computing GC Content

[复制链接]

10

主题

11

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2017-12-20 23:03:57 | 显示全部楼层 |阅读模式
本帖最后由 默存 于 2017-12-20 23:03 编辑

[Python] 纯文本查看 复制代码
# coding: utf-8
import os
from collections import OrderedDict
os.chdir("F:\\For_Better\\Rosalind")
#本体目的:求fasta中GC比最高的序列及比值
#原题地址:[url=http://rosalind.info/problems/gc/]http://rosalind.info/problems/gc/[/url]
#方法:将序列名及其对应的序列作为键值对存入字典;使用匿名函数求GC比最高的序列及比值
name_seq = OrderedDict()
name_GC_percent =OrderedDict()
with open("rosalind5.txt") as f:
    for line in f:
        line = line.strip("\n")
        if line.startswith(">"):
            name = line
            name_seq[name] = ""#将以>开头的行存储为字典的键
        else:
            name_seq[name] += line#将每个>下的序列合在一起(rosalind5.txt中每一条序列都被\n分割)
            
for k,v in name_seq.items():
    total_leanth = len(v)
    GC_count = v.count("G")+v.count("C")
    GC_percent = GC_count/len(v)
    name_GC_percent[k]=GC_percent#将序列名和GC比作为键值对存入字典name_GC_percent
print(max(name_GC_percent.items(),key=lambda x:x[1]))#关键字lambda表示匿名函数,冒号前面的x表示函数参数




上一篇:LncRNA基础知识大全
下一篇:sratoolkit转化SRA数据出错
回复

使用道具 举报

0

主题

4

帖子

91

积分

注册会员

Rank: 2

积分
91
发表于 2018-3-6 14:53:43 | 显示全部楼层
id_seq = dict()
for i in HTSeq.FastqReader(file):
        id = i.name
        seq = i.seq
        seq = seq.upper()
        c =seq.count("C")
        g = seq.count("G")
        totall = len(seq)
        GC =float(c+g)
#       print totall
        ratio  =(GC/totall)
#       print ratio
        id_seq[id] = ratio

GC_sort = sorted(id_seq.items(),key = lambda d:d[1])

print GC_sort[0][0]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-10-23 09:08 , Processed in 0.028832 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.