in reply to Parsing and Modifying a flat file in perl
The following code does something like what you need. Read it, consider it, and understand it. Post specific questions following site guidelines if anything is unclear.
#!/usr/bin/perl use strict; use warnings; my $buffer = ""; my $series = 1; $_ = <DATA>; # Skip first line while (<DATA>) { if (/>/) { my @elements = split /N+/, $buffer; for my $i (1 .. @elements) { print ">Count$series.$i\n$elements[$i-1]\n"; } $buffer = ""; $series++; } else { chomp; $buffer .= $_; } } my @elements = split /N+/, $buffer; for my $i (1 .. @elements) { print "Count$series.$i\n$elements[$i-1]\n"; } __DATA__ >sequence1 123.3 ATGACGTAGACGATGAGTAGACGATAGCAGTGACAGGTGAGTG ATGACGATGAGTAGAGACGGGGGTAGAGGGGGATAGATAGAGANNNNNNNN ATAGACAGATAANNNNNNNNNNNNNNNNNAGATGAGACAGATANNNNNNN >sequence2 143.5 ATGCGATGCNNNNNNCGTAGCTGANNNNNNCGATGCTGATGCTC CGTAGTCTGCTAGCTAGTCNNNNNNCGTAGTCGATCGATCGANNNNNNCGTGCATGC CGATGCTACGGATNNNNNCGATCGATCGATCGACNNNNNCGATCAGCTAG CCCCGCTAGTCANNNNN >sequence3 132.3 ATGCTGATCAGCTACGCTAGCNNNNNCGATCGATCGATCGACTAGCNNNNNNCGATCCGAGCT CGATCGATCGATCGATCGANNNNNCGATCGATCGACTAGCNNNNNCGATCGATCGA CGATCGATCGA >C1132423 123.4 ATCGTGCATGCATCGATCGACTACGCTGCTACGATCGACTGCTAGCTACGCTAC CGTCGATCGATCGACTACGCTGACTGACTAGCTAG >C1123234 176.4 GCTAGCGATCGCACCGATCGATCGTACGCTACGATCGATCGATCGATCGACTGT CGATCGATCGATCGATCGATCGA >C1123546 531.1 CGTAGCTACGATCGATCGATCGACTAGCTACGATCGATCGACTAGCTAGCTAGCTAG
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Parsing and Modifying a flat file in perl
by ad23 (Acolyte) on Jun 23, 2010 at 20:18 UTC |