#!/usr/bin/perl use strict; use warnings; use LWP::Simple; use Data::Dumper; my $sequence="GGCGCAACGCTGAGCAGCTGGCGCGTCCCGCGCGGCCCCAGTTCTGCGCAGCTTCCCGAGGCTCCGCACCAGCCGCGCTTCTGTCCGCCTGCAGGGCATT"; ############ Make array of rejected length ############### my $seqlen = length ($sequence); my $input = "fragments.txt"; open(K,">","temp_hash.txt"); open( my $infile, "<", $input ) || die "Check the $input $!\n"; my $old = 0; while ( my $line = <$infile> ){ my $gap = $line - $old; if ($gap > 2){ my $start = $old+1; my $end = $line-1; print K "$start\t$end\n"; } elsif ($gap == 2){ my $start = $old+1; print K "$start\t$start\n"; } $old = $line; } close ($infile); my $line = $seqlen+1; my $gap = $line - $old; if ($gap > 2){ my $start = $old+1; my $end = $line-1; print K "$start\t$end\n"; } elsif ($gap == 2){ my $start = $old+1; print K "$start\t$start\n"; } close (K); close ($infile); ####################### Make a Hash ######################## my $tempfile = "temp_hash.txt"; open(my $file, "<", $tempfile) or die "Check the file $!"; my $cnt = 1;my %split; while (my $line = <$file>){ chomp $line; if ($line =~/(\S+)\s+(\S+)/){ for (my $s=$1;$s<=$2;$s++){ push @{$split{$cnt}}, $s; } } $cnt++; } close ($file); ############# Write HTML file ############################# #my $header; open(AA, ">fragments.html") or die $!; print AA "\n"; print AA "\n"; print AA "
\n"; print AA "\n";
print AA "\n";
#print AA "$header\n";
for (my $pos=1;$pos<=length($sequence);$pos++){
my $FLAG=0;my @temp=();
foreach my $k(sort {$a <=> $b} keys %split){
my @pos=@{$split{$k}};
my $p1 =$pos[0];
my $p2 =$pos[$#pos];
if($pos == $p1){
push (@temp, "");
for(my $p=$p1;$p<=$p2;$p++){
my $s=substr($sequence,$p-1,1);
push (@temp,$s);
if($p==int($p/50)*50){
push (@temp,"
");
}
$FLAG=1; $pos++;
}
push (@temp, "");
}
}
if($FLAG ==0){
my $s=substr($sequence,$pos-1,1);
print AA "$s";
}
else{
printf AA join("",@temp);
}
if($pos==int($pos/50)*50){
printf AA "
";
}
}
print AA "\n";
print AA "\n";
print AA "\n";
print AA "\n";
print AA "\n";
close (AA);