搜索
楼主: Jimmy

生信编程直播第四题:多个同样的行列式文件合并起来

[复制链接]

392

主题

697

帖子

2423

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2423
 楼主| 发表于 2017-1-6 14:48:33 | 显示全部楼层
learnyoung 发表于 2017-1-6 10:54
059pyth+R 冷洋
意思是要把所有的文本文件的内容合成一个文本文件吗?[mw_shl_code=python,true]#coding=ut ...

虽然我不懂python,但你肯定把题目没搞懂,表达矩阵你懂不懂啊?
回复 支持 反对

使用道具 举报

0

主题

3

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2017-1-6 19:06:01 | 显示全部楼层
I think pandas can make our job easier!

[Python] 纯文本查看 复制代码
import pandas
import os
name_list=os.listdir("GSE48213_RAW")
fram_list=[pandas.read_table("GSE48213_RAW/%s"%name) for name in name_list]
fram=fram_list[0]
for i in range(1,len(fram_list)):
    fram=pandas.merge(fram,fram_list[i])
fram.to_csv("result.csv",index=False)


by 075-python-哈哈哈
回复 支持 2 反对 0

使用道具 举报

4

主题

27

帖子

147

积分

注册会员

Rank: 2

积分
147
发表于 2017-1-6 20:02:43 | 显示全部楼层
本帖最后由 babytong 于 2017-1-6 20:18 编辑
end2end 发表于 2017-1-6 19:06
I think pandas can make our job easier!

[mw_shl_code=python,true]import pandas

感觉玩意和sql的join操作有点像采用pandas模块来解决此问题,相当给力

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

1

主题

40

帖子

206

积分

中级会员

Rank: 3Rank: 3

积分
206
发表于 2017-1-7 15:10:45 | 显示全部楼层
Jimmy 发表于 2017-1-6 14:48
虽然我不懂python,但你肯定把题目没搞懂,表达矩阵你懂不懂啊?

不是很懂表达矩阵,我去查查表达矩阵是啥,再来修改
回复 支持 反对

使用道具 举报

1

主题

16

帖子

160

积分

注册会员

Rank: 2

积分
160
发表于 2017-1-8 20:13:57 | 显示全部楼层
本帖最后由 disheng 于 2017-1-8 20:37 编辑

043-perl-R-shell-涤生

学习了二楼yydBIG的二维哈希,真的太棒了。参照他的思想,用哈希也写了个
[Perl] 纯文本查看 复制代码
#!/usr/bin/perl

my %hash;
my $header = "Gene";
foreach my $i ( 0..@ARGV-1){
        $header .= "\t$ARGV[$i]";
        open I,"$ARGV[$i]";
        while(<I>){
                chomp;
                my($gene_num,$num) = split;
                $hash{$gene_num} .= "$num\t";
        }
}
print $header,"\n";
foreach $i (keys %hash){
        print "$i\t$hash{$i}\n";
}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 1 反对 0

使用道具 举报

392

主题

697

帖子

2423

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2423
 楼主| 发表于 2017-1-8 20:45:27 | 显示全部楼层
babytong 发表于 2017-1-6 20:02
感觉玩意和sql的join操作有点像采用pandas模块来解决此问题,相当给力

(⊙o⊙)…模块的确很赞,如果你是自己搜索找到模块的无可厚非,但是我怕这样起不了练习的效果
回复 支持 反对

使用道具 举报

392

主题

697

帖子

2423

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2423
 楼主| 发表于 2017-1-8 20:45:38 | 显示全部楼层
babytong 发表于 2017-1-6 20:02
感觉玩意和sql的join操作有点像采用pandas模块来解决此问题,相当给力

(⊙o⊙)…模块的确很赞,如果你是自己搜索找到模块的无可厚非,但是我怕这样起不了练习的效果
回复 支持 反对

使用道具 举报

392

主题

697

帖子

2423

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2423
 楼主| 发表于 2017-1-8 20:46:36 | 显示全部楼层
disheng 发表于 2017-1-8 20:13
043-perl-R-shell-涤生

学习了二楼yydBIG的二维哈希,真的太棒了。参照他的思想,用哈希也写了个

你这个很赞,看样子你已经看懂了,可是这个我们讲师木有录制视频耶,还没到这个题目,你都自学完了,有没有兴趣录制一个自己对这个题目的想法呢?
回复 支持 反对

使用道具 举报

0

主题

10

帖子

46

积分

新手上路

Rank: 1

积分
46
发表于 2017-1-13 01:13:03 | 显示全部楼层
希望大家可以改进我的方法。感觉写的不太好
[Python] 纯文本查看 复制代码
import glob
import time
start = time.clock()

dict_arr= {}
geneid = []
li_geneID = []
li_expre = []
geneID_index ={}
txt_filenames = glob.glob('F:\Python34\zbioinfo\GSE48213\\*.txt')
for filename in txt_filenames:
    with open(filename,'r',)as f:
        for line in f:
            line = line.rstrip()
            re = line.split('\t')
            if re[0] not in li_geneID:
                li_geneID.append(re[0])
                li_expre.append([re[0]])
                geneID_index[re[0]] = len(li_geneID)
            li_expre[geneID_index[re[0]]-1].append(re[1])
output = open('F:\\Python34\\zbioinfo\\combinedresult.txt', 'w')
for i in li_expre:
    result = '\t'.join(i)
    output.writelines(result)
    output.write('\n')
output.close()    
       
end = time.clock()
print("The function run time is : %.03f seconds" %(end-start))  
回复 支持 反对

使用道具 举报

8

主题

32

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
发表于 2017-1-22 19:37:47 | 显示全部楼层
本帖最后由 anlan 于 2017-1-22 19:45 编辑

034-perl-shell

使用模拟数据,放入test文件夹中,总共26个txt,代码如下:
[Perl] 纯文本查看 复制代码
#!/usr/bin/perl -w
use strict;

my @file_list = glob "*.txt";

my %hash;
foreach my $file (@file_list){
        open my $fh, $file or die "Cannot open $file";
        while(<$fh>){
                chomp;
                my @array = split /\t/, $_;
                $hash{$array[0]} -> {$file} = $array[1];
        }
        print "\t$file";
}
print "\n";
foreach my $gene (sort keys %hash){
        print "$gene";
        foreach my $name (@file_list){
                my $num = $hash{$gene} -> {$name};
                print "\t$num";
        }
        print "\n";
}


sheill 待补

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|关于我们|手机版|小黑屋|生信技能树    

GMT+8, 2017-3-2 02:30 , Processed in 0.029819 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.