Customizing features

Overview

One of the qualities of FeatureFinder that we’re most proud of is the ability for users to add their own features seamlessly into the program. Having written our own processing code time and time again prior to the days of FeatureFinder, we agree that using your own code introduces a real sense of freedom, discovery, and excitement into the analysis process. We wanted to capture that in FeatureFinder

In addition to the practical advantages of coding your own features—say, being able to perfectly replicate a well-performing method from literature—, another big appeal is that you can explore your own feature ideas quickly and easily. For example, say that most people use a “mean + 2 standard deviation” threshold for onset detection, but you think there’s a better way… With FeatureFinder you just code your idea (potentially just a few lines of code), watch it be automatically integrated into the program, open your profile, and then click Process. That’s all there is to it!

NOTE: The user must be able to program in MATLAB in order to add features to FeatureFinder. Though feature customization is quite a powerful feature of the program, it’s still completely optional. FeatureFinder comes with an ever-growing list of standard features for you to use. Have a feature request? Let us know.

Tutorial:

In this tutorial, we’ll create a feature that represents the difference in absolute maxima between the target and baseline windows.

  1. Open MATLAB. Once MATLAB is running, click Open… under the “File” menu. Navigate to FeatureFinder‘s home directory, and then open the “Features” directory you find there. Select “FeatureTemplate.m” and click the Open button.
  2. The m-file (i.e., MATLAB script) will then open in the Editor.
  3. Then, you can simply follow the steps in the m-file. First, you’ll want to re-save the m-file with a new name (i.e., not “FeatureTemplate”). This is the name that will come up in the “Features” drop-down menu when you run FeatureFinder, so try and make it as meaningful as possible—but not too long. We’ll call our new feature “DifferenceInAbsMax.” Click Save As… under the “File” menu to do this.
  4. You can now change the function’s name within the m-file itself (optional, but recommended):
  5. The description is entered next. (Whenever your new feature is selected from the “Feature” drop-down menu in FeatureFinder, this description will be displayed in a box below it.)
  6. After we’ve re-saved the m-file and entered a feature description, we can now write the code:
  7. Lastly, we store the feature in the nFeature variable. And we’re done!
  8. Now, we can open up FeatureFinder, load any profile, and select our new feature from the “Features” menu!