in reply to begginer help running perl script
$size = 5000; $overlap = 1; $overlap_size = 0.00*$size; $f = $ARGV[0]; local $/ = "\n>"; open $fh_out, '>', 'out.txt' or die "file out.txt: $!"; open(IN, "$f") || die "$f no\n"; while(<IN>){ s/>//g; $id = ''; $annt = ''; @ln = split /\n/; $defLine = shift @ln; $id = $1 if $defLine =~ /^(\S+)\s?/; $annt = $1 if $defLine =~ /^\S+\s+(.+)$/; $seq = join("",@ln); for(my $i=0; ($i*$size)<(length$seq); $i++){ $subSeq = substr($seq,$i*$size, $size); $subSeq =~ s/(\w{60)/\$1\n/g; chomp $subSeq; $start = $i*$size +1; $end = $start + (length$subSeq) - 1; print $fh_out ">$id:[",$start,'-',$end,"] $annt\n$subSeq\n"; if($overlap == 1 && ($i*$size+$overlap_size) < (length$seq)){ $subSeq = substr($seq,$i*$size+$overlap_size, $size); $subSeq =~ s/(\w{60)/\$1\n/g; chomp $subSeq; $start = $i*$size +1+$overlap_size; $end = $start + (length$subSeq) - 1; print $fh_out ">$id:[",$start,'-',$end,"] $annt\n$subSeq\n +"; } } } close $fh_out;
See also
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: beginner help running perl script
by tstrobaugh (Initiate) on May 08, 2015 at 18:24 UTC |