Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Genbank file parsing

by blazar (Canon)
on Jan 11, 2005 at 14:00 UTC ( #421273=note: print w/ replies, xml ) Need Help??


in reply to Genbank file parsing

Dear monks, My question is related to file parsing within while loops. I have a large file containing many individual files all in the same format.
I don't think so. I suppose you have a large file containing info related to many individual files.
This is how the file looks: How can I extract all the info between ORIGIN and // for each record??
# extract of file:  
#===============

FEATURES             Location/Qualifiers    
                     /note="blah blah"   
COUNT                200
ORIGIN
        1 lots of nice info
       61 lots of nice info
      121 lots of nice info
   
//
If you can rely on this format, here's how I'd do it:
#!/usr/bin/perl -ln use strict; use warnings; if ($_ eq 'ORIGIN') { local $/='//'; print <>; }
or
#!/usr/bin/perl -ln use strict; use warnings; print if $_ eq 'ORIGIN' .. $_ eq '//' __END__
Of course these are intended to be as minimal examples: adapt the techniques shown here to your needs.
This is my code so far:
open (FILE, $ARGV[0]) or die "unable to open FILE\n";
Why not using <> in the first place? Also, you'd better:
  • use lexical FHs,
  • use the three args form of open(),
  • put relevant info in the error message (i.e. at least include $!).
Note: I skipped the rest


Comment on Re: Genbank file parsing
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://421273]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (9)
As of 2015-07-30 18:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (273 votes), past polls