This is a collaborative space. In order to contribute, send an email to maximilien.chaumon@icm-institute.org
On any page, type the letter L on your keyboard to add a "Label" to the page, which will make search easier.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

When an optional parameter is not given (the input field stays empty), it is not written as null in the config.json file generated by Brainlife but it is written as ““. So it is considered as a string by the Python code and an error occurs.

 

Case of a NUMBER parameter

For instance, the app-maxfilter takes the parameter st_duration as optional. This parameter is either a float or None. Locally, in the config.json.example, when this parameter is not given it is written as:

"param_st_duration": null

And when maxfilter.py parses the config.json.example, the value of this parameter is None.

When this App was registered on BL, the st_duration parameter was entered as follows:

But, when no value was entered when executing the App, this parameter was written as follows in the config.json:

"param_st_duration": "",

Then the value of this parameter is passed to the MNE function MaxFilter, which reads it as a string instead of None and an error is raised because the function expects a float or None:

ValueError: could not convert string to float

So, to circumvent this issue, I add the following lines to maxfilter.py:

if config['param_st_duration'] == "":
    param_st_duration = None
else:
    param_st_duration = config['param_st_duration']

 

Case of a STRING parameter

app-maxfilter takes another optional parameter (param_regularize), and this time it is either a string or None. In this case, you can also add in the Python file:

if config['param_regularize'] == "":
    param_regularize = None
else:
    param_regularize = config['param_regularize']

and enter the parameter as follows in BL:

Case of an ENUM parameter

When it is possible, meaning when your parameter is optional and the App user can choose between fixed values of the parameter, set this parameter to ENUM and select ‘optional’ when registering your App on BL:

Then, let the user choose between the fixed values of the parameter or an empty field, don’t propose None or null because in the config.json it will be written as:

"param_regularize": "None"/"null"

instead of simply null.

Then, when you want this parameter to be None, just select the option don’t specify when you execute the App.

If you choose to enter your parameter as an ENUM parameter, no need to modify your Python file the way it is presented for a STRING parameter and a NUMBER parameter.

  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.