Mercurial > repos > portiahollyoak > temp
diff scripts/filterFalsePositive.in.pl @ 0:28d1a6f8143f draft
planemo upload for repository https://github.com/portiahollyoak/Tools commit 132bb96bba8e7aed66a102ed93b7744f36d10d37-dirty
author | portiahollyoak |
---|---|
date | Mon, 25 Apr 2016 13:08:56 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/filterFalsePositive.in.pl Mon Apr 25 13:08:56 2016 -0400 @@ -0,0 +1,39 @@ +#!/share/bin/perl +use List::Util qw(max min); +#system("windowBed -a $ARGV[0] -b /home/wangj2/flycommon/all_transposons.dml.rmskCrossmatch.bed -sw -r 1000 -l 0 > tmp"); +#system("windowBed -a $ARGV[0] -b /home/wangj2/flycommon/soo.trnalnpos.map2.sort.bed -sw -r 1000 -l 0 > tmp"); +system("bedtools window -a $ARGV[0] -b $ARGV[1] -sw -r 1000 -l 0 > tmp"); + +open in,"tmp"; +my %read; +while(<in>) +{ + chomp; + split/\t/; + + ## if the same tpye of transposons + my @loc=map { [/(.*?),(\+|-)(.*)/] } split/;/,$_[4]; + foreach my $l (@loc) + { + if($$l[0] eq $_[9]) + { + ## if the same strand of transposons + if((($_[5] eq $$l[1]) && ($_[11] eq "-")) || (($_[5] ne $$l[1]) && ($_[11] eq "+"))) + { + ## if the fragments of the exists transposons + { + my $s=max($$l[2],$_[12]); + my $e=min(($$l[2]+$_[2]-$_[1]),$_[13]); + if($s<$e) + { + print join("\t",@_[0..5]),"\n" if not exists $read{$_[3]}; + $read{$_[3]}=1; + } + } + } + } + } +} +close in; + +system("rm tmp");