- or download this
Chr1 1000 4000 A1
Chr1 12000 32000 A2,A3,B1,B2
Chr1 42000 44000 A4
- or download this
# bedtools closest -a File1 -b File2 -d
Chr1 1000 4000 A1 Chr1 12000 18500 B1 8001
Chr1 15000 22000 A2 Chr1 12000 18500 B1 0
Chr1 30000 32000 A3 Chr1 28000 29000 B2 1001
Chr1 42000 44000 A4 Chr1 28000 29000 B2 13001
- or download this
# bedtools closest -a File1 -b File2 -d | sort -k9,9n
Chr1 15000 22000 A2 Chr1 12000 18500 B1 0
Chr1 30000 32000 A3 Chr1 28000 29000 B2 1001
Chr1 1000 4000 A1 Chr1 12000 18500 B1 8001
Chr1 42000 44000 A4 Chr1 28000 29000 B2 13001
- or download this
# bedtools closest -a ta -b tb -d | sort -k9,9n | perl -ne 'BEGIN{$lim
+itedDistance=10000; use List::Util qw(min max); my %hash=();} @a=spli
+t; $idA=$a[3]; $idB=$a[7]; $dis=$a[8]; if($hash{$idA} and !$hash{$idB
+}){print "$a[4]\t$a[5]\t$a[6]\t$a[7]\n"; $hash{$idB}=1;} if($hash{$i
+dB} and ! $hash{$idA}){print "$a[0]\t$a[1]\t$a[2]\t$a[3]\n"; $hash{$i
+dA}=1; } if(!$hash{$idA} and ! $hash{$idB}){ if($dis > $limitedDistan
+ce){ print "$a[0]\t$a[1]\t$a[2]\t$a[3]\n"; print "$a[4]\t$a[5]\t$a[6]
+\t$a[7]\n";} else{ $start=min($a[1], $a[5]); $end=max($a[2],$a[6]); p
+rint "$a[0]\t$start\t$end\t$a[3],$a[7]\n"; $hash{$idA}=1; $hash{$idB}
+=1; } } ' | sort -k1,1 -k2,2n
- or download this
Chr1 1000 4000 A1
Chr1 12000 22000 A2,B1
Chr1 28000 32000 A3,B2
Chr1 42000 44000 A4
- or download this
use warnings;
use strict;
...
}
}
}