#!/usr/bin/perl use warnings; use strict; my $region = 'testReg.txt'; my $position = 'testPos.txt'; my $writeOut = '>>testOut.txt'; open(R,$region) or die "error reading file"; open(OUT,$writeOut) or die "error writing to the file "; open(P, $position) or die "error reading file "; my $rline; my $pline; while ($rline=) { chomp($rline); my @r_arr=split("\t",$rline); chomp($r_arr[0]); my @rID = split("r",$r_arr[0]); $r_arr[0] = $rID[1]; #this removes the "chr" portion of the first element and leaves number #i.e. instead of [0] -> "chr24"; [0] -> "24" while($pline=

) { if(!$rline) { last; } #end if chomp($pline); my @p_arr=split("\t",$pline); chomp($p_arr[0]); my @pID = split("r",$p_arr[0]); $p_arr[0] = $pID[1]; if($p_arr[1]>$r_arr[2]) { $rline=; redo; } #end if else { if($p_arr[0] == $r_arr[0] && $p_arr[1] >= $r_arr[1] && $p_arr[1] <= $r_arr[2]) { #NOTE: [0] element in each array now corresponds to chr number # r[1] is start of region and r[2] is end of region # p[1] is the position of the base pair shift(@p_arr); print (OUT "chr$r_arr[0]\t$r_arr[1]\t$r_arr[2]\t$r_arr[3]\t"); print OUT join ("\t", @p_arr), "\n"; #essentially I'm joining the two files with matching lines #w/ columns separated by tab } #end if } #end else } # end while

} #end while close R; close P; close OUT;