#!/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); #### fragments.txt 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 51 52 53 54 55 56 57 58 59 60 86 87 88 89 90 91 92 93 94 95