La solución dada por explorer me parece perfecta en cualquier caso.
Ahora bien, por aportar algo al debate, una alternativa que se me ocurre es saltar la línea si empieza por 'm'
Using perl Syntax Highlighting
next if ~/^M/;
"haz algo con esa cadena, sólo llegarán a ésta línea las que te interesan";
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Esto es ya más una cuestión teórica que un problema real, pero buscar una letra es más sencillo en términos de computación que probar con todas las demás así que en teoría encontrar /^[^M]/ debería ser algo más costoso que encontrar /^M/ y luego descartarla. No sé si me explico.
En tu caso probablemente es irrelevante y la velocidad ganada (si es que se gana) sería inapreciable. Las búsquedas de expresiones regulares en Perl están tan optimizadas que probablemente no haya una ganancia real apreciable para sólo 3000 líneas.
Aparte de eso tienes que valorar la posibilidad de que una proteína se extienda a dos líneas en tu archivo, lo que te podría dar un valor erróneo ocasionalmente (algunas proteínas incompletas) de no controlarse. En ese caso podrías acotar a partir de los '>' probablemente. Quizás si vemos el trabajo que tienes hecho podamos aconsejarte alguna mejora o saber por qué lo que probaste no funcionaba.