#!/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 " Colored Gene Walk \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);