如题,我写了一个简单的脚步用来抓取往期分析结果的数据:
#!/usr/bin/perl
#
use warnings;
use strict;
use Statistics::Descriptive;
my $tdir = "/share/tumor171";
my $f20 = "/share/q20.xls";
my $f30 = "/share/q30.xls";
my $pad = "/share/Product_AverageDepth.xls";
my $cpeff = "/share/CaptureEffiency.xls";
my @dirs = glob("$tdir/tvoa*");
open Q20, '>',$f20 or die $!;
open Q30, '>',$f30 or die $!;
open AD, '>',$pad or die $!;
open CE, '>',$cpeff or die $!;
foreach my $dirs (@dirs){
my $qc = "$dirs/result/sampleqc.xls";
my $batchdir = (split /\//, $qc) [6];
print "$batchdir\n";
my $batchnum = (split /_/, $batchdir)[1];
print "$batchnum\n";
open QC,'<',$qc or die $!;
print Q20 "$batchnum \n";
print Q30 "$batchnum \n";
print AD "$batchnum \n";
print CE "$batchnum \n";
while (<QC>){
my $qc = $_;
my $AverageDepth = (split /\t/,$qc)[7];
my $q20 = (split /\t/,$qc)[13];
my $q30 = (split /\t/,$qc)[14];
my $captureeffiency = (split /\t/,$qc)[20];
print Q20 "$q20\n";
print Q30 "$q30\n";
print AD "$AverageDepth\n";
print CE "$captureeffiency\n";
}
close QC;
}
close Q20;close Q30;close AD;close CE;
现在我输出的文件都是一列,如图所示
是否有一种办法可以根据样品名称进行自动分列,即打开一号样本的结果输出到表的第一列,打开第二号样本的结果输出到第二列。。以此类推
如果perl有分列符就好了