Skip to main content

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://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

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

mara_client-0.22.10.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mara_client-0.22.10-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file mara_client-0.22.10.tar.gz.

File metadata

  • Download URL: mara_client-0.22.10.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for mara_client-0.22.10.tar.gz
Algorithm Hash digest
SHA256 afee7e6258c4947ac5884726b052a5513c3e0667de520b20eae3d8f7c4c9a0c2
MD5 8963fc3cce342ea0c89e7883f44deccc
BLAKE2b-256 e1e7eb5bf54351f03d93edc4bbe136ad98bc416bcca2805f738ff17bd8371ba0

See more details on using hashes here.

File details

Details for the file mara_client-0.22.10-py3-none-any.whl.

File metadata

  • Download URL: mara_client-0.22.10-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for mara_client-0.22.10-py3-none-any.whl
Algorithm Hash digest
SHA256 6854ed3e2aa3fd82b22c39e923384d0ba9c2f9b806ee0bb0d64ed8ac14dc296f
MD5 5ad3ca3ca2107405f8514298de268bfe
BLAKE2b-256 424a896c1b55bc0158afe2f089f60f8b6b9f9cbc77640ceb029bb7caf6dc84de

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page