Comment on page
Python-api client
The MOLGENIS python client API allows you to retrieve, create, update and delete entities from within python.
You can install the Python REST Client as a package with
pip
:pip install molgenis-py-client
Now you can create a python script. To get started, you should import the Python client, connect to a molgenis server and login:
import molgenis.client
session = molgenis.client.Session("https://molgenis.mydomain.example/api/")
session.login("username","password")
Always put the import and molgenis.Session in your script to make the api work.
import molgenis.client
session = molgenis.client.Session("https://molgenis.mydomain.example/api/")
session.login("username","password")
my_table = session.get("package_entityName")
print(my_table)
To get a full overview of all functions in the python client, you can look at the examples on GitHub.
session.login(username,password)
Login to the MOLGENIS REST API
Argument | Description | Required | Default |
username | Username for a registered molgenis user | yes | |
password | Password for the user | yes | |
session.logout()
Logout from the MOLGENIS REST API and destroy the session.
session.get_by_id("tableId", "rowId")
Retrieves a single entity row from an entity repository.
Argument | Description | Required | Default |
entity | Fully qualified name of the entity | yes | |
id | The value for the idAttribute of the entity | yes | |
attributes | The list of attributes to retrieve | no | All attributes |
expand | The attributes to expand | no | None |
session.get("package_entityName")
Retrieves entities and returns the result in a dataframe.
Argument | Description | Required | Default |
entity | Fully qualified name of the entity | yes | |
q | Query string in rsql/fiql format (see below) | no | None |
start | The index of the first row to retrieve (zero indexed) | no | 0 |
num | The maximum number of rows to return (max 10000) | no | 100 |
attributes | The list of attributes to retrieve | no | All attributes |
sortColumn | attributeName of the column to sort on | no | None |
sortOrder | The order to sort in | no | None |
Operator | Symbol |
Logical AND | ; or and |
Logical OR | , or or |
Group | ( and ) |
Equal to | == |
Less then | =lt= or < |
Less then or equal to | =le= or <= |
Greater than | =gt= or > |
Greater tha or equal to | =ge= or >= |
Argument can be a single value, or multiple values in parenthesis separated by comma. Value that doesn’t contain any reserved character or a white space can be unquoted, other arguments must be enclosed in single or double quotes.
Examples
session.get("celiacsprue")
session.get("celiacsprue", num = 100000, start = 1000)
session.get("celiacsprue", attributes = c("Individual", "celiac_gender"))
session.get("celiacsprue", q = "(celiac_weight>=80 and celiac_height<180) or (celiac_gender==Female)")
session.get("celiacsprue", q = "(celiac_weight>=80;celiac_height<180),(celiac_gender==Female)")
session.add('Person', firstName='Jan', lastName='Klaassen')
Creates a new instance of an entity (i.e. a new row of the entity data table) and returns the id.
Argument | Description | Required | Default |
entity | Fully qualified name of the entity | yes | |
files | Dictionary containing file attribute values for the entity row. The dictionary should for each file attribute map the attribute name to a tuple Containing the file name and an input stream. | no | Empty dictionary |
data | Dictionary mapping attribute name to non-file attribute value for the entity row, gets merged with the kwargs argument | no | Empty dictionary |
**kwargs | Keyword arguments get merged with the data argument | no | |
Examples
session.add('Person', {'firstName': 'Jan', 'lastName':'Klaassen'})
session.add('Plot', files={'image': ('expression.jpg', open('~/first-plot.jpg','rb')),
'image2': ('expression-large.jpg', open('/Users/me/second-plot.jpg', 'rb'))},
data={'name':'IBD-plot'})
session.update_one("entityType", "id", "attribute", "newValue")
Updates a value of a specified attribute in a specified row in a specified entityType.
Argument | Description | Required | Default |
entity | Fully qualified name of the entity | yes | |
id | The value for the idAttribute of the entity | yes | |
attr | Attribute to update | yes | |
value | New value of the attribute | yes | |
session.add_all(entity, entities)
Creates new instances of an entity (i.e. adds new rows to the entity data table) and returns the ids.
Argument | Description | Required | Default |
entity | Fully qualified name of the entity | yes | |
entities | List of dictionaries with the attributes of the entities | yes | |
Example
update = [{'id': '157', 'type': 'gnome', 'year': '1998'},
{'id': '158', 'type': 'fairy', 'year': '1998'},
{'id': '159', 'type': 'unicorn', 'year': '1998'}]
session.add_all("demo_sightings", update)
session.delete(entity, id)
Deletes row based on its id.
Argument | Description | Required | Default |
entity | Fully qualified name of the entity | yes | |
id | Id of the entity that should be deleted | yes | |
session.delete_list(entity, entities)
Deletes a number of rows based on a list of id's.
Argument | Description | Required | Default |
entity | Fully qualified name of the entity | yes | |
entities | List of id's of entities that should be deleted | yes | |
session.upload_zip("pathtozipfile")
This function uploads a zip file based on the EMX format.
Argument | Description | Required | Default |
meta_data_zip | A zip file containing an attribute, entities, packages file (tsv/csv) to specify the meta data and optionally data defined in the meta data files | yes | |
session.get_entity_meta_data(entity)
Retrieves the metadata for an entity repository.
Argument | Description | Required | Default |
entity | Fully qualified name of the entity | yes | |
session.get_attribute_meta_data(entity, attribute)
Retrieves the metadata for a single attribute of an entity repository.
Argument | Description | Required | Default |
entity | Fully qualified name of the entity | yes | |
attribute | Name of the attribute | yes | |
Last modified 3yr ago