#!/usr/bin/perl use warnings; use strict; use diagnostics; open( INFILE, "<", 'myosin.fasta') or die $!; #open original myosin.fasta for reading open( OUTFILE, ">", 'modifiedHeaders.fasta') or die $!; #open/create new fasta for writing my %headerHash; #create hash for the header my $seq; my $header; #loop through old file while (){ chomp; my $line = $_; # use if/then to seperate headers from seq, while regex to select only species name in header if ($line =~ /^>/){ $header = $line; if ($header =~ /(>gi.*)\[(.+)\](>g.*)\[(.+)\]/){ my $headerHash = $2; $headerHash{$2} = $2; } } else { $seq = $line; } } close INFILE; for my $key(keys %headerHash){ print OUTFILE $headerHash{$key}, "\n", $seq, "\n"; }