A client for the MARA conversational agent for cheminformatics.
Project description
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://mara.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://mara.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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mara_client-0.16.9.tar.gz.
File metadata
- Download URL: mara_client-0.16.9.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97d88298f2d4e051e467c42acebd965b7bb941fe2ffcb021e74a483ab71f84b3
|
|
| MD5 |
98157bbc187653c717e373d7049d1a6d
|
|
| BLAKE2b-256 |
558295f0dc71083a28597dee230b26648ba0f234bf2645146517580998e6cc69
|
File details
Details for the file mara_client-0.16.9-py3-none-any.whl.
File metadata
- Download URL: mara_client-0.16.9-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99bcd64316f9982eb24c9e8c38792441556b6589eb41f7b04848e9560cac3665
|
|
| MD5 |
da3875cc5d25e047c9ce6894f81ea5f3
|
|
| BLAKE2b-256 |
9f7e9c1222fdfec930aad7d3a8ff38849f5516dd9d28cb450e77b19aae14d64c
|