I like your approach, because it avoids the problems of the "full file slurping" options suggested above (ie. won't scale for very large input files), and it recognises that '>' is a handy delimiter here.
A small suggested improvement so that it removes the line breaks as per the OP, and is a bit shorter:
...
while (<DATA>) {
$hash{">$1"} = $2 if s/[>\n]//g && /^(SEQ\d+)(.*)/;
}
...