搜索
楼主: Jimmy

生信编程直播第六题:下载最新版的KEGG信息,并且解析好

[复制链接]

0

主题

19

帖子

241

积分

中级会员

Rank: 3Rank: 3

积分
241
发表于 2017-4-24 01:52:43 | 显示全部楼层
sxuan 发表于 2017-4-21 20:11
你这with open 这个嵌套的if 条件写的估计老师看了想打人,前面这几个continue的没必要全部写出来,你要 ...

我是自学成才啊,跟优雅一点没沾边,非常苟延残喘啊,我再看看题目再跟你交流。
回复 支持 反对

使用道具 举报

1

主题

16

帖子

152

积分

注册会员

Rank: 2

积分
152
发表于 2017-4-24 14:32:33 | 显示全部楼层
朝曦曦 发表于 2017-4-24 01:52
我是自学成才啊,跟优雅一点没沾边,非常苟延残喘啊,我再看看题目再跟你交流。 ...

都是自学的,解出来是第一步,之后要考虑的就是性能效率以及代码的优雅之类的了。
回复 支持 反对

使用道具 举报

0

主题

7

帖子

136

积分

注册会员

Rank: 2

积分
136
发表于 2017-4-25 17:52:47 | 显示全部楼层
根据jimmy的指引,一步一步下载最新版的GO,但是到第三步“下载GO与基因之间的对应关系!(物种)”就遇到问题了,提示gene2go文件有问题:
The finder can't complete the operation because some data in "gene2go.gz" can't be read or written. (Error code-36).

回复 支持 反对

使用道具 举报

1

主题

22

帖子

158

积分

注册会员

Rank: 2

积分
158
发表于 2019-6-4 09:49:42 | 显示全部楼层
请问图中红色椭圆圈出来的是什么?红色椭圆那二行又是什么意思?谢谢!
回复 支持 反对

使用道具 举报

1

主题

22

帖子

158

积分

注册会员

Rank: 2

积分
158
发表于 2019-6-9 06:20:30 | 显示全部楼层
旭日早升 发表于 2017-3-6 12:11
201-python-无名

问题解析:问题说明:下载KEGG文件并且做解析。文件格式:keg文件详见楼主帖子http://www ...

按照你的代码补充了,A和B二个分类
import re
from collections import OrderedDict
pathway=OrderedDict()
with open('hsa00001.keg') as f:
        for line in f:
                if line.startswith('A'):
                        line = line.strip().split('<b>')
                        A_path_ID=line[1]+'\t'
                        pathway[A_path_ID]=OrderedDict()
                elif line.startswith('B') and len(line)>2:
                        line = line.strip().split('<b>')
                        B_path_ID=line[1]+'\t'
                        pathway[A_path_ID][B_path_ID]=OrderedDict()
                elif line.startswith('C'):
                        line = line.strip().split()
                        C_path_ID_symbol=line[1]+'\t'+' '.join(line[2:-1])+'\t'
                        pathway[A_path_ID][B_path_ID][C_path_ID_symbol]=[]
                elif line.startswith('D'):
                        line = line.strip().split(';')
                        D_gene_ID_symbol=line[0].split()[1]+'\t'+line[0].split()[2]+'\n'
                        pathway[A_path_ID][B_path_ID][C_path_ID_symbol].append(D_gene_ID_symbol)
with open('output (2)','w') as outputfile:
        for k1,v1 in pathway.items():
                for k2,v2 in v1.items():
                        for k3,v3 in v2.items():
                                for v4 in v3:
                                        outputfile.write(k1+k2+k3+v4)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2019-9-21 01:15 , Processed in 0.036098 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.