molgenis
Search…
Python-api client

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.

Overview example

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.

Methods

login

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

logout

session.logout()
Logout from the MOLGENIS REST API and destroy the session.

get_by_id

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

get

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
Supported RSQL/FIQL query operators (see https://github.com/jirutka/rsql-parser)
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)")

add

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'})

update_one

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

add_all

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)

delete

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

delete_list

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

upload_zip

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

get_entity_meta_data

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

get_attribute_meta_data

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