我是靠谱客的博主 暴躁犀牛,这篇文章主要介绍统计2.2.1cufflinks的矩阵和差异表达结果--大量数据结构,现在分享给大家,希望可以做个参考。

统计最新版的cufflinks的矩阵结果和差异表达结果(针对基因),涉及的数据结构比较复杂,有二维数组,hash的数组,数组的hash等等:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/usr/bin/env perl use warnings; use strict; die "perl $0 <file: norm.fpkm/diff.fpkm> <option: interclass/interblock/de> <outprefix>n" if(@ARGV ne 3); open EXP, $ARGV[0] or die $!; my $string = <EXP>; chomp($string); my @labels = split /t/, $string; shift @labels; @labels = map {$_ =~ s/_d+$// ? $_ : $_} @labels; my ($sum, @gene, %hash, @rc, @final); if($ARGV[1] eq "interblock") { open OUT, ">> $ARGV[2].txt" or die $!; my ($x, $flag) = (0, 0); for(my $i = 0; $i < @labels; $i ++) { if(exists $hash{$labels[$i]}) { push @{$rc[$x]}, $i; $flag = 1; }else{ $x ++ if($flag == 1); $hash{$labels[$i]} = 0; push @final, $labels[$i]; push @{$rc[$x]}, $i; } } =cut for (my $i = 0; $i < @rc; $i ++) { for (my $j = 0; $j < @{$rc[$i]}; $j ++) { print "$it$rc[$i][$j]n"; } } =cut while(<EXP>) { chomp; my @tmp = split; for(my $i = 0; $i < @rc; $i ++) { my $fpkm; for(my $j = 0; $j < @{$rc[$i]}; $j ++) { $fpkm += $tmp[$rc[$i][$j] + 1]; } if($fpkm > 0 and $tmp[0] !~ /^XLOC/) { $gene[$i]{ref} ++; }elsif($fpkm > 0){ $gene[$i]{new} ++; } } } print OUT "nTYPE: interBlockn"; for(my $i = 0; $i < @final; $i ++) { print OUT "$final[$i]t"; foreach my $key(sort keys %{$gene[$i]}) { print OUT "$key: $gene[$i]{$key}t"; } print OUT "n"; } }elsif($ARGV[1] eq "interclass"){ open OUT, "> $ARGV[2].txt" or die $!; my $all_sum; while(<EXP>) { chomp; my @tmp = split; my $all; for(my $i = 1; $i < @tmp; $i ++) { $all += $tmp[$i]; if($tmp[$i] > 0 and $tmp[0] !~ /^XLOC/) { $gene[$i - 1]{ref} ++; }elsif($tmp[$i] > 0){ $gene[$i - 1]{new} ++; } } $all_sum ++ if($all > 0); $sum ++; } print OUT "All genes: $sumn"; print OUT "All samples cover: $all_sumnn"; print OUT "TYPE: interClassn"; for(my $i = 0; $i < @labels; $i ++) { print OUT "$labels[$i]t"; foreach my $key(sort keys %{$gene[$i]}) { print OUT "$key: $gene[$i]{$key}t"; } print OUT "n"; } }elsif($ARGV[1] eq "de"){ open OUT, "> $ARGV[2].txt" or die $!; open DE, "> $ARGV[2].diffexpression.txt" or die $!; print DE "$stringn"; my %gene; while(<EXP>) { chomp; my @tmp = split; if(abs($tmp[9]) > 1 and $tmp[13] eq "yes") { print DE "$_n"; $hash{$tmp[4]."-".$tmp[5]} ++; if($tmp[9] > 1) { $gene{$tmp[4]."-".$tmp[5]}[0] ++; }elsif($tmp[9] < -1){ $gene{$tmp[4]."-".$tmp[5]}[1] ++; } } } foreach my $key(keys %hash) { $gene{$key}[0] = 0 if(!defined $gene{$key}[0]); $gene{$key}[1] = 0 if(!defined $gene{$key}[1]); print OUT "$key: $hash{$key}tUP: $gene{$key}[0]tDOWN: $gene{$key}[1]n"; } }else{ die "check correct optionn"; }


最后

以上就是暴躁犀牛最近收集整理的关于统计2.2.1cufflinks的矩阵和差异表达结果--大量数据结构的全部内容,更多相关统计2.2.1cufflinks内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部