view bin/get.frag.size.pl @ 5:2ebca9da5e42 draft default tip

planemo upload
author bioitcore
date Thu, 07 Sep 2017 17:39:24 -0400
parents adc0f7765d85
children
line wrap: on
line source

#for the results from paired end
#The two inputs are the results from the two ends
use strict;
my $read_size = $ARGV[2];
open(input1, $ARGV[0]);
open(input2, $ARGV[1]);
open(output, ">$ARGV[0].fragsize");
#open(fusefile,">$ARGV[0].fuse");

#my $LongMarker="L";
#my $ShortMarker="S";

while(my $line1=<input1>)
{
	my $line2=<input2>;
	chomp($line1);
	chomp($line2);
	next if($line1=~/$\NM/ or $line2=~/$\NM/ or $line1=~/$\MT/ or $line2=~/$\MT/);
	my @array1 = split("\t",$line1);
	#my $read_size=length($array1[1]);
	my @array2 = split("\t",$line2);
	my $match1=$array1[3];
	my $match2=$array2[3];
#	my $marker=$LongMarker.$ShortMarker;
	my @sizes=();
	#while($match1=~/\/(\S[^,]*\[[$marker]\])\S[^,]*:(\d*)[RF]/g)
	while($match1=~/\/(\S[^,]*\[\w+\])\S[^,]*:(\d*)[RF]/g)
	{
		my $name=$1;
		my $posa=$2;
		#print $name,"\n";
		
		if($match2=~/\Q$name\E\S[^,]*:(\d*)[RF]/)
		{
			#print "match\n";
			my $posb=$1;
			push @sizes, abs($posb-$posa)+$read_size;
			
		}
		
	}
	my %saw;
	@saw{@sizes}=();
	my @keya= keys %saw;
	#print scalar(@keya),"\n";
	if(scalar(@keya)==1)
	{
		print output $keya[0],"\n";
	}

}
#close(fusefile);
close(output);
close(input2);
close(input1);