pattern analysis