搜索
12
返回列表 发新帖
楼主: Jimmy

生信编程直播第11题:把文件内容按照染色体分开写出

[复制链接]

3

主题

34

帖子

310

积分

中级会员

Rank: 3Rank: 3

积分
310
发表于 2017-8-10 13:46:52 | 显示全部楼层
azazelcc 发表于 2017-5-15 19:59
相对来说比较简单,直接调用第零题的readfasta函数。os包不是很熟悉,只能现学现用了。
觉得输出一堆文件看 ...

> 写成了<
好坑啊
回复 支持 反对

使用道具 举报

1

主题

5

帖子

109

积分

注册会员

Rank: 2

积分
109
发表于 2017-8-22 11:21:25 | 显示全部楼层
xxnku 发表于 2017-5-22 17:50
用群主给的例子数据:
[Python] 纯文本查看 复制代码
#encoding = utf-8

[/quote]

[mw_shl_code=python,true]line = line.rstrip().split(' ',1)

这句话好像不能用空格分开吧,应该用制表符
[AppleScript] 纯文本查看 复制代码
line = line.rstrip().split('\t ',1)

回复 支持 反对

使用道具 举报

1

主题

5

帖子

109

积分

注册会员

Rank: 2

积分
109
发表于 2017-8-22 11:23:02 | 显示全部楼层
xxnku 发表于 2017-5-22 17:50
用群主给的例子数据:
[mw_shl_code=python,true]#encoding = utf-8

我用了一下的你代码,好像是把所有的信心,写在一个value里面。读取到文件里面以后很长一行。
回复 支持 反对

使用道具 举报

0

主题

7

帖子

95

积分

注册会员

Rank: 2

积分
95
发表于 2017-12-12 19:53:09 | 显示全部楼层
使用简单的循环和文件读写
回复 支持 反对

使用道具 举报

0

主题

7

帖子

95

积分

注册会员

Rank: 2

积分
95
发表于 2017-12-12 19:53:45 | 显示全部楼层
[Python] 纯文本查看 复制代码
### 按照染色体号分割hg19注释文件 ###
import time
start_time = time.time()
file_gtf = r'C:\Users\berry12\Desktop\python文件\gencode.v7.annotation_goodContig.gtf\gencode.v7.annotation_goodContig.gtf'
chr_list = list('123456789') + ('10/11/12/13/14/15/16/17/18/19/20/21/22/X/Y').split('/')
file_output = r"C:\Users\berry12\Desktop\python文件\gtf_split\gtf_chr"
with open(file_gtf, 'rt') as f1:
    for line in f1:
        if line.startswith('#'):
            next
        elif line[0] in chr_list and line[1] == '\t':
            chr_name = line[0]
            #print(chr_name)
            with open((file_output + chr_name),'a') as f2:
                f2.write(line)
                f2.close()
        elif line[0:2] in chr_list:
            chr_name = line[0:2]
            with open((file_output + chr_name),'a') as f3:
                f3.write(line)
                f3.close()
f1.close()
import os
gtf_split = os.listdir(r'C:\Users\berry12\Desktop\python文件\gtf_split')
print(gtf_split)
print('sucessfully split it!')
print('used ' + str(time.time()-start_time) + ' seconds!')
回复 支持 反对

使用道具 举报

0

主题

1

帖子

23

积分

新手上路

Rank: 1

积分
23
发表于 2018-2-27 21:45:43 | 显示全部楼层
先从文件读取行,然后文件分割,分别按照染色体自动分类到指定文件,文件名以染色体号命名。

[Python] 纯文本查看 复制代码
import os

def process():
    with open("example.txt", "r") as file:
        for eachline in file:
            if eachline:
                chrom = eachline.strip("\n").split('\t',1)[0]
                if chrom.startswith("chr"):
                    with open("%s\outfile\%s.txt" % (os.getcwd(), chrom), "a+") as out:
                        out.write(eachline)
                else:
                    continue
            else:
                break

if __name__ == '__main__':
    process()
回复 支持 反对

使用道具 举报

7

主题

37

帖子

412

积分

中级会员

Rank: 3Rank: 3

积分
412
发表于 2018-4-2 16:01:13 | 显示全部楼层
本帖最后由 xiao7462 于 2018-4-2 16:02 编辑
刘超仲 发表于 2017-5-3 21:09
Python
用的是健明老师给的测试数据
用到的方法都是dongye以前讲过的,自己也上网查了一些[mw_shl_code=pyt ...

你开头能不能直接改为  targ=sys.argv[1]    ?  

我直接运行python3 test.py CCDS.current.txt   产生了错误

[mw_shl_code=bash,true]Traceback (most recent call last):
  File "test.py", line 24, in <module>
    out.write('%s\t'%(list[i-1]))
TypeError: 'dict_keys' object does not support indexing
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.