#!usr/bin/perl -w ### Takes Genbank file, extracts DNA sequence, formats and spits out FASTA file. ### use strict; use library; my @annotation = (); my $sequence = ''; my $definition = ''; my $definition_flag = 0; my $filename = usrquery ("Please enter genbank filename"); parse1 (\@annotation, \$sequence, $filename); $sequence =~ tr/actg/ACTG/; foreach my $element (@annotation) {if ($element =~ /^DEFINITION/) {$element =~ s/^DEFINITION\s*//; $definition = $element; $definition_flag = 1;} elsif ($element =~ /^ACCESSION/) {$element =~ s/^ACCESSION\s*//; $definition_flag = 0;} elsif ($definition_flag) {chomp ($definition); $element =~ s/^\s*/ /; $definition .= $element;} } print "\nPlease enter filename for outfile.\n\n"; my $outputfile = ; chomp $outputfile; unless (open(OUTFILE, ">$outputfile")) {print "Cannot open file \"OUTFILE\" to write to"; exit;} print OUTFILE ">$definition"; print OUTFILE "$sequence\n"; close (OUTFILE); exit; ############################################################ sub parse1 {my ($annotation, $dna, $filename)= @_; my $in_sequence_flag = 0; my @genbankfile = (); @genbankfile = read_file_data ($filename); foreach my $line (@genbankfile) {if ($line =~ /^\/\/\n/) {last;} elsif ($in_sequence_flag) {$sequence .= $line;} elsif ($line =~ /^ORIGIN/) {$in_sequence_flag = 1;} else {push (@annotation, $line);} } $sequence =~ s/[\s0-9]//g; }