mara client module
This package provides a Python interface for the MARA conversational agent for cheminformatics.
Installation
pip install mara-client
Usage
To use the MARA client, you need to have an API key. You can create one at https://app.nanome.ai/settings/api-keys.
MARA chats are created using the new_chat method, or retrieved with the get_chat method of the client. You can then interact with the chat using the prompt method. The prompt method returns a ChatResult object, which contains the response from MARA, intermediate messages such as tool runs, and any files that were generated during the conversation. You can download these files using the download_file method of the chat. Chat will be visible as conversations in the MARA web interface, and can be deleted using the delete method.
from mara_client import MARAClient
API_KEY = "..."
URL = "https://nanome.example.com" # optional
client = MARAClient(API_KEY, URL)
chat = client.new_chat()
# or, chat = client.get_chat("chat_id")
result = chat.prompt('Download SDF of aspirin')
print(result.response)
# The SDF file for the compound aspirin has been downloaded successfully. You can access it [here](CHEMBL25.sdf).
print(result.files)
# [ChatFile(id='...', name='CHEMBL25.sdf', size=1203, date=...)]
chat.files.download('CHEMBL25.sdf', 'aspirin.sdf')
# downloaded as aspirin.sdf in current working directory
result = chat.prompt('Calculate chem props')
print(result.response)
# The chemical properties of the compound with ChEMBL ID CHEMBL25 (aspirin) are as follows:
#
# | Property | Value |
# | --- | --- |
# | Molecular Weight (MW) | 180.159 |
# | LogP | 1.310 |
# | Total Polar Surface Area (TPSA) | 63.600 |
# | Hydrogen Bond Acceptors (HBA) | 3 |
# | Hydrogen Bond Donors (HBD) | 1 |
# | Rotatable Bonds (RB) | 2 |
chat.delete()
# remove chat from history, delete associated files and data
Files
The chat object contains a files attribute for working with files.
# Upload a file as part of a prompt
file_path = './example.sdf'
result = chat.prompt('Convert this to SMILES', files=[file_path])
# List all files
file_list = chat.files.list()
# Download a file
file_name = file_list[0].name
chat.files.download(file_name, 'output.sdf')
# Upload a file directly
file_path = './example.sdf'
file = chat.files.upload(file_path)
print(file.id)
Data Tables
The chat object contains a datatables attribute for working with DataTables.
# Create a data table from already uploaded file
csv_file = './example.csv'
datatable: DataTable = chat.datatables.create(csv_file)
# List all data tables
table_list = chat.datatables.list()
# Generate a new DataTable based on Chat context
chat.datatables.generate()
# Run prompt to update/query a datatable
dt_id = datatable.id
chat.datatables.prompt(dt_id, prompt)
# Retrieve a datatable
chat.datatables.get(dt_id)
# View datatable as a pandas Dataframe
df = datatable.dataframe
Metadata
Release files for mara-client 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mara_client-1.4.0.tar.gz | 5.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mara_client-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.3 kB
Release files / mara_client-1.4.0.tar.gz
| Download URL | mara_client-1.4.0.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2b5bc9e6775d85497bf52d589b517a26cf4d4c9985230f89b720636da2b9511d
|
|
BLAKE2b-256 checksum How to use checksums |
498529ee6f1c339e21887f569021a3047c9b80a82d4e22bb02817a6af6822e24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / mara_client-1.4.0-py3-none-any.whl
| Download URL | mara_client-1.4.0-py3-none-any.whl |
|---|---|
| Size | 6.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
50e1cc7ea263cffadcb793b75ac1c549ebc49eef369535becc4f000521379493
|
|
BLAKE2b-256 checksum How to use checksums |
c74c26d9aae837652d44dad6e18e7025bcf9b9e20fbc91524f2e917c1be78c8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|