This is an automated email from the git hooks/post-receive script. yoh pushed a commit to tag 0.4 in repository python-mne.
commit 72bd4ec4b31656e4578847096c9563bdffb18d93 Author: [email protected] <[email protected]> Date: Wed Jun 20 03:42:01 2012 -0400 added selection.py --- mne/selection.py | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/mne/selection.py b/mne/selection.py new file mode 100644 index 0000000..1c83a65 --- /dev/null +++ b/mne/selection.py @@ -0,0 +1,98 @@ +# Authors: Alexandre Gramfort <[email protected]> +# Matti Hamalainen <[email protected]> +# Martin Luessi <[email protected]> +# +# License: BSD (3-clause) + +from os import path +from sets import Set + + +def read_selection(name, fname=None): + """Read channel selection from file + + By default, the selections used in mne_browse_raw are supported*. + Additional selections can be added by specifying a selection file (e.g. + produced using mne_browse_raw) using the fname parameter. + + The name parameter can be a string or a list of string. The returned + selection will be the combination of all selections in the file where + (at least) one element in name is a substring of the selection name in + the file. For example, "name = ['temporal', 'Right-frontal']" will produce + a comination of "Left-temporal", "Right-temporal", and "Right-frontal". + + * The included selections are: "Vertex", "Left-temporal", "Right-temporal", + "Left-parietal", "Right-parietal", "Left-occipital", "Right-occipital", + "Left-frontal", and "Right-frontal" + + Parameters + ---------- + name : string or list of string + Name of the selection. If is a list, the selections are combined. + + self_fname : string + Filename of the selection file (if None, built-in selections are used) + + Returns + ------- + sel : list of string + List with channel names in the selection + """ + + # convert name to list of string + if isinstance(name, tuple): + name = list(name) + + if not isinstance(name, list): + name = [name] + + # use built-in selections by default + if fname is None: + fname = path.join(path.dirname(__file__), 'data', 'mne_analyze.sel') + + if not path.exists(fname): + raise ValueError('The file %s does not exist.' % fname) + + # use this to make sure we find at least one match for each name + name_found = {} + for n in name: + name_found[n] = False + + fid = open(fname, 'r') + sel = [] + + for line in fid: + line = line.strip() + + # skip blank lines and comments + if len(line) == 0 or line[0] == '#': + continue + + # get the name of the selection in the file + pos = line.find(':') + if pos < 0: + print '":" delimiter not found in selections file, '\ + 'skipping line' + continue + + sel_name_file = line[:pos] + + # search for substring match with name provided + for n in name: + if sel_name_file.find(n) >= 0: + sel.extend(line[pos + 1:].split('|')) + name_found[n] = True + break + + fid.close() + + # make sure we found at least one match for each name + for n, found in name_found.iteritems(): + if not found: + raise ValueError('No match for selection name "%s" found' % n) + + # make the selection a sorted list with unique elements + sel = list(Set(sel)) + sel.sort() + + return sel -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/python-mne.git _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
