- 我们利用第三方工具下载TCGA数据时,可能下载到的是单个样本的miRNA表达谱,如图:前面的序号是样本id

- 每个文本文档里的数据如图所示:

- 现在我们想把它的RPM取出来并为矩阵,如图:

- 这里我们利用perl处理:
my $DIR_PATH="E:/Data/Lung cancaer/miRNA/cancer";
opendir D, ${DIR_PATH};
@array = grep(/\.txt/,readdir D);
my @file_id =();
my @new =();
my @row_name =();
foreach $file (@array) {
$file =~ m/.mirbase21./;
push(@file_id,$`);
}
open(input, "E:/Data/miR.txt")or die $!;
while(defined($row=<input>)){
chomp($row);
push(@row_name,$row);
}
close input;
foreach $list(@array){
open(F, "E:/Data/Lung cancaer/miRNA/cancer/$list") or die $!;
while(defined($line=<F>)){
chomp();
@a=split(/\t/,$line);
push(@new,$a[2]);
}
}
$m=0;
while($m < 46){
splice(@new,0+$m*1882,1,$file_id[$m]);
$m=$m+1;
}
#取出@new数组中的值,注意循环的使用
open(output,">E:/Data/result.txt")or die $!;
$i=0;
while($i < 1882){
print output "$row_name[$i]"."\t";
$j=0;
while($j < 46){
chomp($new[$i+1882*$j]);
print output "$new[$i+1882*$j]"."\t";
$j=$j+1;
}
print output "\n";
$i=$i+1;
}
close output;