Optimally recovering rate variation information from genomes and sequences: pattern filtering.