- 论坛徽章:
- 8
|
本帖最后由 huang6894 于 2014-06-17 12:59 编辑
回复 8# owwa
- ===》 perl map5.pl file1.txt file2.txt
- chrom chromstart chromend strand a1 a2 b1 b2 c1 c2 d1 d2 e1 e2 f1 f2 o1 o2 p1 p2 q1 q2
- chr1 363 364 - 0 10 0 7 0 8 0 3 0.1 10 0 27 0 21 0 11 08
- chr1 33 34 + 0 3 0 20 0 4 0 0.11 9 0 0 1 0 1 017
- chr1 231 232 + 0 3 0 21 0 4 0 0.11 9 0 0 1 0 2 020
- chr1 210 211 + 0 3 0 21 0 4 0 0.11 9 0 0 1 0 2 020
- chr1 13 14 + 0 3 0.06 18 0.33 3 0 0.11 9 0 0 1 0 2 0.05 19
- chr1 217 218 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 023
- chr1 211 212 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.09 23
- chr1 232 233 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 024
- chr1 34 35 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 024
- chr1 253 254 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 023
- chr1 216 217 + 0 3 0 21 0 4 0 0.11 9 0 0 0 0 0 00
- chr1 212 213 + 0 3 0 21 0 4 0 0.11 9 0 0 0 0 0 00
- ===》cat map5.pl
- #########################################################################
- #! /usr/bin/perl -w
- # File Name: map5.pl
- # Created Time: 2014年06月17日 星期二 10时46分35秒
- ## ┏┓ ┏┓
- ## ┏┛┻━━━━━━━━━┛┻┓
- ## ┃ ┃
- ## ┃ ━ ┃
- ## ┃ ┳┛ ┗┳ ┃
- ## ┃ ┃
- ## ┃ ** ┻ ** ┃
- ## ┃ ┃
- ## ┗━┓ ┏━┛
- ## ┃ ┃
- ## ┃ ┃
- ## ┃ ┗━━━┓
- ## ┃ ┣┓
- ## ┃ ┏┛
- ## ┗┓┓┏━━━━━━━┳┓┏┛
- ## ┃┫┫ ┃┫┫
- ## ┗┻┛ ┗┻┛
- ## ━━━━━━神兽保佑,代码无bug━━━━━━
- ## Code is far away from bug with the animal protecting.
- #########################################################################
- my (%hash,%h1,%h2,%h2_1);
- $file1 = $ARGV[0];
- $file2 = $ARGV[1];
- while (<>) {
- chomp;
- my @h = split(/\t/);
- my ($k1,$k2,$k3,$k4,@v) = @h[0,1,2,3,4 .. $#h];
- map{$hash{"$k1\t$k2\t$k3\t$k4"} .= "$_\t"}@v;
- # print "$k1\t$k2\t$k3\t$k4\t".$hash{"$k1\t$k2\t$k3\t$k4"}."\n";
- }
- my @merge = keys (%hash);
- open F1, "< $file1" or die "$!";
- open F2, "< $file2" or die "$!";
- while(<F1>){
- chomp;
- my @h = split(/\t/);
- my ($k1,$k2,$k3,$k4) = @h[0,1,2,3];
- my $t = "0\t" x ($#h-3);
- $t =~ s/\t$//;
- $h1{"$k1\t$k2\t$k3\t$k4"} = 1;
- $h2_1{"not_exit_file1"} = $t;
- }
- close F1;
- while(<F2>){
- chomp;
- my @h = split(/\t/);
- my ($k1,$k2,$k3,$k4) = @h[0,1,2,3];
- my $t = "0\t" x ($#h-3);
- $t =~ s/\t$//;
- $h2{"$k1\t$k2\t$k3\t$k4"} = 1;
- $h2_1{"not_exit_file2"} = $t;
- }
- close F2;
- my @f1 = keys (%h1);
- my @f2 = keys (%h2);
- for $i (grep {$h1{$_}} @f2){
- chop $hash{$i};
- print "$i\t$hash{$i}\n";
- }
- for $i (grep {!$h1{$_}} @merge){
- chop $hash{$i};
- print "$i\t$h2_1{not_exit_file1}\t$hash{$i}\n";
- }
- for $i (grep {!$h2{$_}} @merge){
- chop $hash{$i};
- print "$i\t$hash{$i}\t$h2_1{not_exit_file2}\n";
- }
复制代码 |
|