Thank you for all your guys' help so far! I just have 2 more questions about my code.
So far I have this...
use strict;
use warnings;
my $dir = 'c:\seqs';
opendir(DIR,$dir)
or die "unable to open directory $dir:$!";
foreach my $file ( grep{/\.seq$/ && -f "$dir/$_"}readdir DIR)
{
my $output_path = "$dir/$file.seq";
my $input_path = "$dir/$file";
open (my $in, '<', $input_path) or
die "Unable to open $input_path: $!";
open (my $out, '>', $output_path) or
die "Unable to open $output_path: $!";
while (<$in>)
{
my $locus =~ /LOCUS\s*(\w+)/;
s/\^\^/>$locus\n^^\n/g;
print $out $_;
}
close ($in);
close ($out);
unlink ($input_path)
or die "unable to unlink $input_path: $!";
rename ($output_path, $input_path) or
die "Unable to rename $output_path to $input_path:$!";
}
If ^^ is not present I need to add it in with a new line character before the sequence.
Something like...
while (<$in>) {
if $in =~ /^^/ { s/\^\^/\n^^/g;
print $out $_;
else { s/[a]|[c]|[t]|[g]{6}/^^\n }
How would I correctly write the else?
I was thinking I could just find a series of bases and add the ^^ before it but I don't know how to get the same series of bases in the substitution.
Also I need to capture the locus name and place it before the ^^ like this but for the life of me I can not get it to capture.
while (<$in>)
{
my $locus =~ /LOCUS\s*(\w+)/;
s/\^\^/>$locus\n^^\n/g;
print $out $_;
}
within the file the Locus name is formatted like this
Created: Tuesday, July 12, 2005 4:17 PM
LOCUS AJ877263 663 bp DNA linear INV 15
+-APR-2005
Thanks for any help in advance!
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.