API Reference

This section documents the classes, functions, etc. provided by MolCube-API Client. For examples of common operations, see User Guide.

Low-level details

molcube.api

Low level client methods.

class API(host='localhost', port=8000, **kwargs)

Bases: object

A high-level API class for interacting with the server.

This class provides methods for authentication and creating specific project types.

Parameters:
  • host (str)

  • port (int)

authenticate(api_token)

Authenticate with the API server.

Parameters:

api_token (str) – Pre-issued MolCube API token or Pre-issued JWT access token.

Raises:

Exception – If authentication fails.

Return type:

None

create_afes_project()

Create a new AFES project.

Returns:

A new AFES project instance.

Return type:

FreeEnergyProject

Raises:

Exception – If the client is not authenticated.

create_ligand_modeler_project()

Create a new Ligand Modeler project.

Returns:

A new Ligand Read & Modeler project instance.

Return type:

LigandModelerProject

Raises:

Exception – If the client is not authenticated.

create_membrane_builder_project()

Create a new membrane builder project.

Returns:

A new membrane builder project instance.

Return type:

MembraneBuilderProject

Raises:

Exception – If the client is not authenticated.

create_pdb_reader_project()

Create a new PDB reader project.

Returns:

A new PDB reader project instance.

Return type:

PdbReaderProject

Raises:

Exception – If the client is not authenticated.

create_solution_builder_project()

Create a new solution builder project.

Returns:

A new solution builder project instance.

Return type:

SolutionBuidlerProject

Raises:

Exception – If the client is not authenticated.

delete_project(projectId)
Parameters:

projectId (str)

Return type:

None

delete_projects(projectIds)
Parameters:

projectIds (Iterable[str])

Return type:

None

generate_api_key(username, password)

Generate an API key using the given username and password.

Parameters:
  • username (str) – The username.

  • password (str) – The password.

Returns:

The generated API key.

Return type:

str

search_projects(page=1, perPage=None, keyword=None, searchKey=None, projectStatus=None, projectStep=None, projectCategory=None, forceField=None, startDate=None, endDate=None, hasStandaloneLigand=None, pdbAmberOption=None)

Search for projects.

Returns:

The response containing project search results.

Return type:

dict

Raises:

Exception – If listing projects fails.

Parameters:
  • page (int)

  • perPage (int | None)

  • keyword (str | None)

  • searchKey ('title' | 'pk' | None)

  • projectStatus (str | None)

  • projectStep (int | None)

  • projectCategory ('designer' | 'builder' | None)

  • forceField (ForceFieldType | None)

  • startDate (datetime | None)

  • endDate (datetime | None)

  • hasStandaloneLigand (bool | None)

  • pdbAmberOption (AmberOptionsRequest | None)

class APIClient(host, port, is_onprem=False)

Bases: object

A client for interacting with the API.

This class provides methods for making HTTP requests to the API endpoints.

Parameters:
  • host (str)

  • port (int)

  • is_onprem (bool)

delete(endpoint)

Send a DELETE request to the specified endpoint.

Parameters:

endpoint (str) – The API endpoint.

Returns:

The JSON response from the API.

Return type:

dict

generate_token(username, password)

Generate an authorization token using the given username and password.

Parameters:
  • username (str) – The username.

  • password (str) – The password.

Return type:

str

get(endpoint, params=None)

Send a GET request to the specified endpoint.

Parameters:
  • endpoint (str) – The API endpoint.

  • params (dict, optional) – Query parameters for the request.

Returns:

The JSON response from the API.

Return type:

dict

post(endpoint, data, *, require_success=True)

Send a POST request with JSON data to the specified endpoint.

Parameters:
  • endpoint (str) – The API endpoint.

  • data (dict) – The data to be sent in the request body.

  • require_success (bool) – Fail if json “status” is “error”.

Returns:

The JSON response from the API.

Return type:

dict

post_files(endpoint, data, files)

Send a POST request with form data and file uploads to the specified endpoint.

Parameters:
  • endpoint (str) – The API endpoint.

  • data (dict) – The form data (non-file fields).

  • files (list) – List of files in the format [(‘key’, (‘filename’, fileobj, ‘mime/type’))].

Returns:

The JSON response from the API.

Return type:

dict

post_multipart(endpoint, data)

Send a POST request with multipart form data to the specified endpoint.

Parameters:
  • endpoint (str) – The API endpoint.

  • data (MultipartEncoder) – The multipart form data.

Returns:

The JSON response from the API.

Return type:

dict

post_raw(endpoint, data)

Send a POST request with raw data to the specified endpoint.

Parameters:
  • endpoint (str) – The API endpoint.

  • data (dict) – The raw data to be sent in the request body.

Returns:

The raw response from the API.

Return type:

requests.Response

put(endpoint, data)

Send a PUT request to the specified endpoint.

Parameters:
  • endpoint (str) – The API endpoint.

  • data (dict) – The data to be sent in the request body.

Returns:

The JSON response from the API.

Return type:

dict

set_authorization_token()

Set the authorization token for API requests.

Return type:

None

set_token(token, scheme='Token')

Store the authentication token and scheme for future requests.

Parameters:
  • token (str) – The token string returned by the server.

  • scheme (str) – The HTTP authorization scheme (e.g., ‘Token’, ‘Bearer’).

Return type:

None

type AuthScheme = 'Token' | 'Bearer'

molcube.base

Common definitions for MolCube projects.

class BaseProject(client)

Bases: ABC

An abstract base class for project-related operations.

This class provides common functionality for handling API responses and tracking task progress.

Parameters:

client (APIClient)

get_post_response(endpoint: str, *, require_success: bool = False, projectId: str | None = '', _response_type: None = None, **other_data) dict[str, Any]
get_post_response(endpoint: str, *, require_success: bool = False, projectId: str | None = '', _response_type: type[T], **other_data) T

Handles common operations in POST requests.

Creates POST data, automatically adding known projectPk. Extracts and returns JSON response data.

Parameters:
  • endpoint (str) – request path

  • require_success (bool) – whether to treat ‘failed’ response as fatal

  • projectId (str | None) – if omitted or ‘’, self.projectId is used instead. Set to None to omit projectPk from request data.

  • other_data (kwargs) – everything else to put in POST request.

  • _response_type (type) – for static analysis; does nothing at runtime

Returns:

‘data’ component of JSON response.

Return type:

dict[str, Any]

handle_response(response, task=False)

Handle the API response and optionally track task progress.

Parameters:
  • response (dict[str, Any]) – The API response.

  • task (bool) – Whether to track task progress. Defaults to False.

Returns:

True if the operation was successful, False otherwise.

Return type:

bool

resume_project(project_id, base_url='')

Resume a project by ID

Parameters:
  • project_id (str)

  • base_url (str)

Return type:

dict[str, Any]

molcube.models

Validation schemata for requests sent to MolCube servers.

class AlignOptionsRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

alignmentOption: Annotated[str | None, Field(min_length=1)] = None
orientationOption: OrientationOptionRequest | None = None
pdbreaderPk: UUID
proteinChains: list[ProteinChain] | None = None
systemLayer: Annotated[str, Field(min_length=1)]
class AmberOptionRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

lipid: Annotated[str, Field(min_length=1)]
protein: Annotated[str, Field(min_length=1)]
water: Annotated[str, Field(min_length=1)]
class AmberOptionsRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

dna: Annotated[str, Field(min_length=1)]
glycan: Annotated[str, Field(min_length=1)]
lipid: Annotated[str, Field(min_length=1)]
protein: Annotated[str, Field(min_length=1)]
rna: Annotated[str, Field(min_length=1)]
water: Annotated[str, Field(min_length=1)]
class ApplyPHtoLigandRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

cappings: list[list[Any]] | None = None
ph: float
protAtoms: list[int] | None = None
sdf: Annotated[str, Field(min_length=1)]
class AvailableGlycoProtRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chain: Annotated[str, Field(min_length=1)]
projectPk: UUID
resid: Annotated[str, Field(min_length=1)]
class BoxMarginRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

margin: Decimal | None = None
sizeX: Decimal | None = None
sizeY: Decimal | None = None
sizeZ: Decimal | None = None
class CancellationSupportRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

cancellationDate: Annotated[str | None, Field(max_length=100)] = None

Scheduled cancellation date

contactEmail: Annotated[EmailStr, Field(min_length=1)]

Email address for contact

contactName: Annotated[str, Field(max_length=255, min_length=1)]

Name of the contact person

feedback: Annotated[str, Field(min_length=1)]

Detailed feedback about the experience

reason: Annotated[str, Field(max_length=100, min_length=1)]

Reason for cancellation

teamName: Annotated[str | None, Field(max_length=255)] = None

Name of the team

class CappingInfoRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

capping: Annotated[str, Field(min_length=1)]
resid: Annotated[str, Field(min_length=1)]
class ChainIndexRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chainIndex: Annotated[str, Field(min_length=1)]
covalentLigand: list[CovalentLigandRequest] | None = None
cyclization: bool | None = None
lipidation: list[LipidationRequest] | None = None
missing: list[MissingRequest] | None = None
mutation: list[MutationRequest] | None = None
nonStandard: list[NonstandardRequest] | None = None
phosphorylation: list[PhosphorylationRequest] | None = None
protonation: list[ProtonationRequest] | None = None
ptm: list[PTMRequest] | None = None
selected: bool
terminal: TerminalRequest | None = None
class ChainRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

glycan: list[GlycanChainIndexRequest] | None = None
heme: list[HemeChainIndexRequest] | None = None
ion: list[IonChainIndexRequest] | None = None
nucleicAcid: list[NucleicChainIndexRequest] | None = None
protein: list[ChainIndexRequest] | None = None
standaloneLigand: list[StandaloneChainIndexRequest] | None = None
water: list[WaterChainIndexRequest] | None = None
class CharmmAmberFileRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

param: bytes | None = None
top: bytes
class ConnProteinRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chainIndex: Annotated[str, Field(min_length=1)]
resid: Annotated[str, Field(min_length=1)]
class ConnectionsRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

completeRingMatch: bool | None = False

Complete ring match

end: int

End

start: int

Start

class CovalentLigandRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chainIndex: Annotated[str, Field(min_length=1)]
resname: Annotated[str, Field(min_length=1)]
class CreateProjectRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

amberOptions: AmberOptionsRequest | None = None
boltzProjectId: str | None = None
calcPka: bool | None = False
corrTop: bool | None = False
customPdb: bytes | None = None
pdbId: Annotated[str | None, Field(min_length=1)] = ''
pdbSource: Annotated[str | None, Field(min_length=1)] = 'RCSB'
projectForceField: Annotated[str, Field(min_length=1)]
projectPk: UUID | None = None
projectTitle: str
renameDupl: bool | None = False
workspace: Annotated[WorkspaceEnum | None, Field(default_factory=lambda: WorkspaceEnum('personal'))]

‘personal’ (token) or ‘team’ (subscription)

  • personal - personal

  • team - team

Type:

Billing workspace

class CubeBuilderInquiryRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

content: Annotated[str, Field(min_length=1)]

Description of the issue/bug

email: Annotated[EmailStr, Field(min_length=1)]

Email address for contact

name: Annotated[str, Field(max_length=255, min_length=1)]

Name of the reporter

projectCategory: Annotated[str | None, Field(max_length=100)] = None

Project category (e.g., ‘Simulation’, ‘Analysis’)

projectId: Annotated[str | None, Field(max_length=255)] = None

Project ID if applicable

projectType: Annotated[str | None, Field(max_length=100)] = None

Project type

class CustomIonRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

anion: Annotated[str | None, Field(min_length=1)] = None
cation: Annotated[str | None, Field(min_length=1)] = None
charge: int | None = None
conc: float | None = None
customAnion: Annotated[str | None, Field(min_length=1)] = None
customCation: Annotated[str | None, Field(min_length=1)] = None
neutralize: bool | None = False
pk: UUID | None = None
selected: bool | None = True
class CustomSolventRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

conc: float | None = None
counts: int
density: float | None = None
name: Annotated[str | None, Field(min_length=1)] = None
pk: UUID | None = None
ratio: float | None = None
selected: bool | None = True
class DihedralRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

angle: float
chainIndex: Annotated[str, Field(min_length=1)]
resid: Annotated[str, Field(min_length=1)]
class DiscntTerminalsRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

cter: CappingInfoRequest
nter: CappingInfoRequest
class EnterpriseInquiryRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

companyName: Annotated[str, Field(max_length=255, min_length=1)]

Name of the company

contactEmail: Annotated[EmailStr, Field(min_length=1)]

Email address for contact

contactName: Annotated[str, Field(max_length=255, min_length=1)]

Name of the contact person

teamSize: Annotated[str | None, Field(max_length=50)] = None

Size of the team (e.g., ‘1-5’, ‘6-20’, etc.)

useCase: str | None = None

Description of the use case

class ErrorResponse(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

message: str
status: str
class ForceFieldFilesRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

amber: CharmmAmberFileRequest | None = None
charmm: CharmmAmberFileRequest | None = None
martini: MartiniFileRequest | None = None
projectPk: UUID | None = None
sdf: str | None = None
class ForceFieldGenerationRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

applyPh: bool | None = None
existingMethod: Annotated[str | None, Field(min_length=1)] = None
files: ForceFieldFilesRequest | None = None
forceFieldMethod: Annotated[str, Field(min_length=1)]
forceFieldType: Annotated[str | None, Field(min_length=1)] = None
hasParam: bool | None = None
keepCoords: bool | None = None
optimize: bool | None = None
resname: Annotated[str | None, Field(min_length=1)] = None
toBeResname: Annotated[str | None, Field(min_length=1)] = None
class ForceFieldRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

forceField: Annotated[str, Field(min_length=1)]
class GaffFastItem(*args, **kwargs)

Bases: OpenffItem

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class GaffItem(*args, **kwargs)

Bases: OpenffItem

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class GetGlyInfoRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

linkages: list[LinkagesRequest]
residues: dict[str, ResiduesRequest]
class GlycRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

glycInfo: GetGlyInfoRequest
projectPk: UUID
class GlycanChainIndexRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chainIndex: Annotated[str, Field(min_length=1)]
selected: bool
class GlycoInfoRequest(*args, **kwargs)

Bases: GetGlyInfoRequest

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class GlycosylationRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chainIndex: Annotated[str, Field(min_length=1)]
glycInfo: GlycoInfoRequest
glycoProtein: str
class HandleRequestStep1Request(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

amberOptions: AmberOptionRequest | None = None
boxShape: Annotated[str, Field(min_length=1)]
membraneOnly: bool | None = False
membraneType: Annotated[str, Field(min_length=1)]
pdbreaderProject: UUID | None = None
pdbreaderProjects: list[UUID] | None = None
projectForceField: Annotated[str, Field(min_length=1)]

Force field

projectTitle: str
workspace: Annotated[WorkspaceEnum | None, Field(default_factory=lambda: WorkspaceEnum('personal'))]

‘personal’ (token) or ‘team’ (subscription)

  • personal - personal

  • team - team

Type:

Billing workspace

class HandleRequestStep2Request(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

alignOptions: list[AlignOptionsRequest] | None = None
alignmentOption: Annotated[str | None, Field(min_length=1)] = None
innerWaterMargin: Decimal | None = Decimal('22.5')
orientationOption: OrientationOptionRequest | None = None
projectPk: UUID
proteinChains: list[ProteinChain] | None = None
class HandleRequestStep3Request(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

boxMargin: BoxMarginRequest | None = None
compositionOption: Annotated[str, Field(min_length=1)]
fillSpace: bool | None = True
height: float | None = None
innerHydrationNumber: Annotated[int | None, Field(ge=1, le=50)] = None
innerWaterMargin: Decimal | None = Decimal('22.5')
lipids: list[LipidsRequest]
nanodisc: Annotated[str | None, Field(min_length=1)] = None
poreR: float | None = None
projectPk: UUID
radius: float | None = None
tightPacking: bool | None = True
tightPackingScaling: float | None = 0.8
useInnerHydrationNumber: bool | None = False
class HandleRequestStep4Request(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

compositionOption: Annotated[str, Field(min_length=1)]
fillSpace: bool | None = True
lipids: list[LipidsRequest]
margin: Decimal | None = None
projectPk: UUID
tightPacking: bool | None = True
tightPackingScaling: float | None = 0.8
class HandleRequestStep5Request(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

coreIons: Annotated[str | None, Field(min_length=1)] = None
hydrationNumber: Annotated[int | None, Field(ge=10, le=100)] = None
innerIonConc: Decimal | None = Decimal('0.15')
innerIons: Annotated[str | None, Field(min_length=1)] = None
innerNeutralize: bool | None = False
ionConc: Decimal | None = Decimal('0.15')
ions: Annotated[str, Field(min_length=1)]
lipaIons: Annotated[str | None, Field(min_length=1)] = None
mdEngines: MDRequest
neutralize: bool | None = False
projectPk: UUID
temperature: Decimal | None = Decimal('310.00')
useHmr: bool | None = False
useHydrationNumber: bool | None = False
waterMargin: Decimal | None = Decimal('22.5')
class HandleRequestStep6Request(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

coreIons: Annotated[str | None, Field(min_length=1)] = None
customIons: list[CustomIonRequest] | None = None
customSolvent: list[CustomSolventRequest] | None = None
ionConc: Decimal | None = Decimal('0.15')
ions: Annotated[str | None, Field(min_length=1)] = None
lipaIons: Annotated[str | None, Field(min_length=1)] = None
mdEngines: MDRequest
neutralize: bool | None = False
projectPk: UUID
temperature: Decimal | None = Decimal('310.00')
useHmr: bool | None = False
class HandleStepRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

projectPk: UUID
projectStep: int
class HeadGroupItem(*args, **kwargs)

Bases: ProteinChain

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class HemeChainIndexRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chainIndex: Annotated[str, Field(min_length=1)]
connProtein: ConnProteinRequest
selected: bool
class HemeRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chainIndex: Annotated[str, Field(min_length=1)]
connProtein: ConnProteinRequest
class InquiryTypeEnum(*args, **kwargs)

Bases: Literal['enterprise', 'cancellation', 'payment', 'cubebuilder', 'marketing']

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

root: 'enterprise' | 'cancellation' | 'payment' | 'cubebuilder' | 'marketing'
  • enterprise - Enterprise Inquiry

  • cancellation - Cancellation Support

  • payment - Payment Support

  • cubebuilder - CubeBuilder Support

  • marketing - Marketing Inquiry

class IonChainIndexRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chainIndex: Annotated[str, Field(min_length=1)]
ionElement: Annotated[str, Field(min_length=1)]
selected: bool
class LigandForceFieldRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

gaff: bool | None = None

GAFF

gaffFast: bool | None = None

GAFF Fast

openff: bool | None = None

OpenFF

openffFast: bool | None = None

OpenFF Fast

xff: bool | None = None

XFF

xffFast: bool | None = None

XFF Fast

class LinkagesRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

residue1: Annotated[str, Field(min_length=1)]
residue2: Annotated[str, Field(min_length=1)]
site1: str
site2: str
class LipidationRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

resid: Annotated[str, Field(min_length=1)]
swap: Annotated[str, Field(min_length=1)]
class LipidsRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

area: float
core: Annotated[str | None, Field(min_length=1)] = None
head: Annotated[str | None, Field(min_length=1)] = None
headGroup: list[HeadGroupItem] | None = None
headType: Annotated[str | None, Field(min_length=1)] = None
innerNumber: int | None = None
innerRatio: float | None = None
isCustom: bool | None = False
lipid: Annotated[str | None, Field(min_length=1)] = None
lowNumber: int | None = None
lowRatio: float | None = None
lowerInnerNumber: int | None = None
lowerInnerRatio: float | None = None
lowerOuterNumber: int | None = None
lowerOuterRatio: float | None = None
nUnit: Annotated[str | None, Field(min_length=1)] = None
number: int | None = None
oAnti: Annotated[str | None, Field(min_length=1)] = None
oUnit: Annotated[str | None, Field(min_length=1)] = None
outerNumber: int | None = None
outerRatio: float | None = None
ratio: float | None = None
sequence: Annotated[str | None, Field(min_length=1)] = None
species: Annotated[str | None, Field(min_length=1)] = None
tail1: Annotated[str | None, Field(min_length=1)] = None
tail2: Annotated[str | None, Field(min_length=1)] = None
tailGroup: list[TailGroupItem] | None = None
tailType: Annotated[str | None, Field(min_length=1)] = None
thickness: float | None = None
type: Annotated[str, Field(min_length=1)]
upNumber: int | None = None
upRatio: float | None = None
upperInnerNumber: int | None = None
upperInnerRatio: float | None = None
upperOuterNumber: int | None = None
upperOuterRatio: float | None = None
class MDRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

amber: bool | None = False
desmond: bool | None = False
genesis: bool | None = False
gromacs: bool | None = False
namd: bool | None = False
openmm: bool | None = False
class MarketingInquiryRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

content: Annotated[str, Field(min_length=1)]

Inquiry content/message

email: Annotated[EmailStr, Field(min_length=1)]

Email address for contact

name: Annotated[str, Field(max_length=255, min_length=1)]

Name of the contact person

organization: Annotated[str | None, Field(max_length=255)] = None

Organization/company name

class MartiniFileRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

top: bytes
class MissingRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

discntTerminals: DiscntTerminalsRequest | None = None
range: Annotated[str, Field(min_length=1)]
selected: bool
class ModelingRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chain: ChainRequest
conjugatedLigand: list[NewLinkageRequest] | None = None
covalentLigand: list[NewLinkageRequest] | None = None
cysteinBridge: Annotated[str | None, Field(min_length=1)] = None
elasticNetwork: bool | None = False
ffGeneration: list[ForceFieldGenerationRequest] | None = None
glycosylation: list[GlycosylationRequest] | None = None
heme: list[HemeRequest] | None = None
isMembrane: bool | None = None
model: Annotated[str | None, Field(min_length=1)] = None
newCovalentLigand: list[NewLinkageRequest] | None = None
ph: float
projectPk: UUID
sideChainOrient: bool | None = None
ssbond: list[SsbondRequest] | None = None
stapling: list[StaplingRequest] | None = None
terminalCharge: bool | None = False
class MorphPairByForceFieldTypeRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

gaff: MorphPairRequest | None = None

GAFF

gaffFast: MorphPairRequest | None = None

GAFF fast

openff: MorphPairRequest | None = None

OpenFF

openffFast: MorphPairRequest | None = None

OpenFF fast

xff: MorphPairRequest | None = None

XFF

xffFast: MorphPairRequest | None = None

XFF fast

class MorphPairRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

connections: list[ConnectionsRequest]

Connections

threshold: int

Threshold

class MutationRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

resid: Annotated[str, Field(min_length=1)]
toBeResname: Annotated[str, Field(min_length=1)]
class NewLinkageRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

proteinLigand: list[ProteinLigandRequest]
resname: Annotated[str, Field(min_length=1)]
class NonstandardRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chainIndex: Annotated[str, Field(min_length=1)]
resid: Annotated[str, Field(min_length=1)]
toBeResname: str | None = None
class NucleicChainIndexRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chainIndex: Annotated[str, Field(min_length=1)]
missing: list[MissingRequest] | None = None
mutation: list[MutationRequest] | None = None
nonStandard: list[NonstandardRequest] | None = None
selected: bool
terminal: TerminalRequest | None = None
class OpenffFastItem(*args, **kwargs)

Bases: OpenffItem

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class OpenffItem(*args, **kwargs)

Bases: ~pydantic.RootModel.

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

root: Annotated[str, Field(min_length=1)]

Selected ligand name

class OrientationOptionRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

flipZ: bool | None = False
transZ: int | None = 0
class PTMRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

patch: Annotated[str, Field(min_length=1)]
resid: Annotated[str, Field(min_length=1)]
class PaginatedProjectList(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

count: Annotated[int | None, Field(examples=[123])] = None
next: Annotated[AnyUrl | None, Field(examples=['http://api.example.org/accounts/?page=4'])] = None
previous: Annotated[AnyUrl | None, Field(examples=['http://api.example.org/accounts/?page=2'])] = None
results: list[Project] | None = None
class PatchedProjectRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

project_type: ProjectTypeEnum | None = None
title: Annotated[str | None, Field(max_length=255, min_length=1)] = None
class PaymentSupportRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

contactEmail: Annotated[EmailStr, Field(min_length=1)]

Email address for contact

issueDescription: Annotated[str, Field(min_length=1)]

Description of the payment issue

pollingId: Annotated[str, Field(max_length=255, min_length=1)]

Payment polling ID (order/subscription ID)

pollingType: PollingTypeEnum

Type of payment (token or subscription)

  • token - token

  • subscription - subscription

class PdbreaderPKRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

projectPk: UUID
class PhosphorylationRequest(*args, **kwargs)

Bases: PTMRequest

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class PollingTypeEnum(*args, **kwargs)

Bases: Literal['token', 'subscription']

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

root: 'token' | 'subscription'
  • token - token

  • subscription - subscription

class Project(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

created_at: AwareDatetime
id: UUID
project_type: ProjectTypeEnum
title: Annotated[str, Field(max_length=255)]
updated_at: AwareDatetime
user: int
class ProjectPKRequest(*args, **kwargs)

Bases: PdbreaderPKRequest

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class ProjectRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

project_type: ProjectTypeEnum
title: Annotated[str, Field(max_length=255, min_length=1)]
class ProjectTypeEnum(*args, **kwargs)

Bases: Literal['Boltz', 'Protenix', 'LBS Finder', 'Chem Patent Search', 'PDB Reader', 'Ligand Modeler', 'Solution Builder', 'Membrane Builder', 'Membrane Only Builder', 'Double Membrane Builder', 'Double Membrane Only Builder', 'Nanodisc Builder', 'Nanodisc Only Builder', 'Vesicle Builder', 'Vesicle Only Builder', 'Micelle Builder', 'Micelle Only Builder', 'HexPhase Builder', 'HexPhase Only Builder', 'Quick Bilayer Builder', 'Quick Bilayer Only Builder', 'Multicomponent Assembler', 'Free Energy', 'High-Throughput', 'Ligand Docker', 'Enhanced Sampler', 'Quick Free Energy', 'Solution Simulator', 'Membrane Simulator', 'Free Energy Simulator', 'Ligand Docker Simulator', 'Solution Analyzer', 'Membrane Analyzer', 'Free Energy Analyzer', 'Ligand Docker Analyzer']

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

root: 'Boltz' | 'Protenix' | 'LBS Finder' | 'Chem Patent Search' | 'PDB Reader' | 'Ligand Modeler' | 'Solution Builder' | 'Membrane Builder' | 'Membrane Only Builder' | 'Double Membrane Builder' | 'Double Membrane Only Builder' | 'Nanodisc Builder' | 'Nanodisc Only Builder' | 'Vesicle Builder' | 'Vesicle Only Builder' | 'Micelle Builder' | 'Micelle Only Builder' | 'HexPhase Builder' | 'HexPhase Only Builder' | 'Quick Bilayer Builder' | 'Quick Bilayer Only Builder' | 'Multicomponent Assembler' | 'Free Energy' | 'High-Throughput' | 'Ligand Docker' | 'Enhanced Sampler' | 'Quick Free Energy' | 'Solution Simulator' | 'Membrane Simulator' | 'Free Energy Simulator' | 'Ligand Docker Simulator' | 'Solution Analyzer' | 'Membrane Analyzer' | 'Free Energy Analyzer' | 'Ligand Docker Analyzer'
  • Boltz - Boltz 2

  • Protenix - Protenix

  • LBS Finder - Lbs Finder

  • Chem Patent Search - Patent Search

  • PDB Reader - Pdb Reader

  • Ligand Modeler - Ligand Modeler

  • Solution Builder - Solution Builder

  • Membrane Builder - Membrane Builder

  • Membrane Only Builder - Membrane Only Builder

  • Double Membrane Builder - Double Membrane Builder

  • Double Membrane Only Builder - Double Membrane Only Builder

  • Nanodisc Builder - Nanodisc Builder

  • Nanodisc Only Builder - Nanodisc Only Builder

  • Vesicle Builder - Vesicle Builder

  • Vesicle Only Builder - Vesicle Only Builder

  • Micelle Builder - Micelle Builder

  • Micelle Only Builder - Micelle Only Builder

  • HexPhase Builder - Hexphase Builder

  • HexPhase Only Builder - Hexphase Only Builder

  • Quick Bilayer Builder - Membrane Builder Shortcut

  • Quick Bilayer Only Builder - Membrane Only Builder Shortcut

  • Multicomponent Assembler - Multicomponent Assembler

  • Free Energy - Free Energy

  • High-Throughput - High Throughput Simulator

  • Ligand Docker - Ligand Docker

  • Enhanced Sampler - Enhanced Sampler

  • Quick Free Energy - Quick Free Energy

  • Solution Simulator - Solution Simulator

  • Membrane Simulator - Membrane Simulator

  • Free Energy Simulator - Free Energy Simulator

  • Ligand Docker Simulator - Ligand Docker Simulator

  • Solution Analyzer - Solution Analyzer

  • Membrane Analyzer - Membrane Analyzer

  • Free Energy Analyzer - Free Energy Analyzer

  • Ligand Docker Analyzer - Ligand Docker Analyzer

class ProteinChain(*args, **kwargs)

Bases: ~pydantic.RootModel.

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

root: Annotated[str, Field(min_length=1)]
class ProteinLigandRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

ligandChainIndex1: str | None = None
ligandChainIndex2: str | None = None
proteinChainIndex: Annotated[str, Field(min_length=1)]
proteinResid: Annotated[str, Field(min_length=1)]
class ProtonationRequest(*args, **kwargs)

Bases: PTMRequest

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class RenameProejctRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

projectPk: UUID
projectTitle: Annotated[str, Field(min_length=1)]
class ResidueRequest(*args, **kwargs)

Bases: ConnProteinRequest

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class ResiduesRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chain: Annotated[str, Field(min_length=1)]
modifications: dict[str, str] | None = None
name: Annotated[str, Field(min_length=1)]
resid: Annotated[str, Field(min_length=1)]
type: Annotated[str, Field(min_length=1)]
class SaveModifiedResidueRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

cappings: list[list[Any]] | None = None
chainIndex: Annotated[str, Field(min_length=1)]
initSdf: str
ketcherInitSdf: Annotated[str, Field(min_length=1)]
projectPk: UUID
protAtoms: list[int] | None = None
resname: Annotated[str, Field(min_length=1)]
sdf: Annotated[str, Field(min_length=1)]
typeOfResidue: Annotated[str, Field(min_length=1)]
class SearchIsomorphicResiduesRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

ketcherInitSdf: Annotated[str, Field(min_length=1)]
resname: Annotated[str, Field(min_length=1)]
sdf: Annotated[str, Field(min_length=1)]
class SelectChainModificationRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chain: ChainRequest
conjugatedLigand: list[NewLinkageRequest] | None = None
covalentLigand: list[NewLinkageRequest] | None = None
cysteinBridge: Annotated[str | None, Field(min_length=1)] = None
elasticNetwork: bool | None = False
ffGeneration: list[ForceFieldGenerationRequest] | None = None
glycosylation: list[GlycosylationRequest] | None = None
heme: list[HemeRequest] | None = None
model: Annotated[str | None, Field(min_length=1)] = None
newCovalentLigand: list[NewLinkageRequest] | None = None
ph: float | None = None
projectPk: UUID
ssbond: list[SsbondRequest] | None = None
stapling: list[StaplingRequest] | None = None
terminalCharge: bool | None = False
class SelectedForceField(*args, **kwargs)

Bases: ProteinChain

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class SelectedLigandsRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

gaff: list[GaffItem] | None = None

GAFF

gaffFast: list[GaffFastItem] | None = None

GAFF fast

openff: list[OpenffItem] | None = None

OpenFF

openffFast: list[OpenffFastItem] | None = None

OpenFF fast

xff: list[XffItem] | None = None

XFF

xffFast: list[XffFastItem] | None = None

XFF fast

class SetLigandForceFieldsRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

ligandForceFields: LigandForceFieldRequest

Ligand force fields

projectPk: UUID
class SideChainOrientationRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

dihedrals: list[DihedralRequest] | None = None
projectPk: UUID
class SolutionBuilderProjectRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

pdbProjectPk: UUID
projectForceField: Annotated[str, Field(min_length=1)]
projectTitle: Annotated[str, Field(min_length=1)]
workspace: Annotated[WorkspaceEnum | None, Field(default_factory=lambda: WorkspaceEnum('personal'))]

‘personal’ (token) or ‘team’ (subscription)

  • personal - personal

  • team - team

Type:

Billing workspace

class SolutionBuilderTaskRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

boxShape: Annotated[str, Field(min_length=1)]
boxSize: float | None = None
ionConc: float
ions: Annotated[str, Field(min_length=1)]
margin: float | None = None
mdEngines: dict[str, bool]
mminimization: bool | None = False
neutralize: bool | None = False
projectPk: UUID
temperature: float
useBoxSize: bool | None = None
useHmr: bool | None = False
class SsbondRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

residue1: ResidueRequest
residue2: ResidueRequest
class StandaloneChainIndexRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chainIndex: Annotated[str, Field(min_length=1)]
resname: Annotated[str | None, Field(min_length=1)] = None
selected: bool
class StaplingRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

patch: Annotated[str, Field(min_length=1)]
residue1: ResidueRequest
residue2: ResidueRequest
stapling: Annotated[str, Field(min_length=1)]
class StatusEnum(*args, **kwargs)

Bases: Literal['pending', 'contacted', 'resolved', 'escalated']

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

root: 'pending' | 'contacted' | 'resolved' | 'escalated'
  • pending - Pending

  • contacted - Contacted

  • resolved - Resolved

  • escalated - Escalated

class SuccessResponse(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

data: dict[str, Any]
status: str
class SupportInquiry(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

contact_email: Annotated[EmailStr, Field(max_length=254)]

Primary contact email address

contact_name: Annotated[str | None, Field(max_length=255)] = None

Name of the contact person

contact_phone: Annotated[str | None, Field(max_length=50)] = None

Phone number (optional)

created_at: AwareDatetime

When the inquiry was created

id: UUID
inquiry_data: dict[str, Any] | None = None

team_name, reason, feedback, cancellation_date. Payment: polling_id, polling_type, issue_description. CubeBuilder: project_id, project_category, project_type, content. Marketing: organization, content.

Type:

Type-specific inquiry data. Enterprise

Type:

company_name, team_size, use_case, expected_users. Cancellation

inquiry_type: InquiryTypeEnum

Type of inquiry

  • enterprise - Enterprise Inquiry

  • cancellation - Cancellation Support

  • payment - Payment Support

  • cubebuilder - CubeBuilder Support

  • marketing - Marketing Inquiry

inquiry_type_display: str
notes: str

Internal notes from support/sales team

status: StatusEnum

Current status of the inquiry

  • pending - Pending

  • contacted - Contacted

  • resolved - Resolved

  • escalated - Escalated

status_display: str
updated_at: AwareDatetime

When the inquiry was last updated

class TailGroupItem(*args, **kwargs)

Bases: ProteinChain

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class TargetLigandRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

chainIndex: Annotated[str, Field(min_length=1)]

Chain index

residueName: Annotated[str, Field(min_length=1)]

Residue name

class TerminalRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

cter: Annotated[str, Field(min_length=1)]
nter: Annotated[str, Field(min_length=1)]
class TokenVerifyRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

token: Annotated[str, Field(min_length=1)]
class UpdatePerturbationPathsRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

perturbationPaths: MorphPairByForceFieldTypeRequest

Perturbation paths keyed by force field type

projectPk: UUID
class UpdateReferenceLigandProjectRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

projectPk: UUID
referenceLigandProjectId: UUID

Reference ligand project ID (Ligand Reader & Modeler project)

class UpdateSelectedForceFieldsRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

projectPk: UUID
selectedForceFields: list[SelectedForceField]

List of selected force field types

class UpdateSelectedLigandsRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

projectPk: UUID
selectedLigands: SelectedLigandsRequest

Selected ligands keyed by force field type

class UpdateSimilarityScoreMatrixRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

projectPk: UUID
similarityScoreMatrix: dict[str, Any]

Similarity score matrix keyed by force field type. Each value is a 2D array of scores.

class UpdateTargetLigandRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

projectPk: UUID
targetLigand: TargetLigandRequest

Target ligand information

class ValidateStandaloneSdfRequest(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

isCustom: bool | None = False
projectPk: UUID
resname: Annotated[str, Field(min_length=1)]
sdf: Annotated[str, Field(min_length=1)]
class WaterChainIndexRequest(*args, **kwargs)

Bases: GlycanChainIndexRequest

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class WorkspaceEnum(*args, **kwargs)

Bases: Literal['personal', 'team']

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

root: 'personal' | 'team'
  • personal - personal

  • team - team

class XffFastItem(*args, **kwargs)

Bases: OpenffItem

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

class XffItem(*args, **kwargs)

Bases: OpenffItem

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

molcube.typed_dicts

Definitions for static type checkers and language servers.

class AlignOptionsRequest

Bases: TypedDict

alignmentOption: NotRequired[str]
orientationOption: NotRequired[OrientationOptionRequest]
pdbreaderPk: str
proteinChains: NotRequired[list[str]]
systemLayer: str
class AmberOptionRequest

Bases: TypedDict

lipid: str
protein: str
water: str
class AmberOptionsRequest

Bases: TypedDict

dna: str
glycan: str
lipid: str
protein: str
rna: str
water: str
class ApplyPHtoLigandRequest

Bases: TypedDict

cappings: NotRequired[list[list[Any]]]
ph: float
protAtoms: NotRequired[list[int]]
sdf: str
class AvailableGlycoProtRequest

Bases: TypedDict

chain: str
projectPk: str
resid: str
class BoxMarginRequest

Bases: TypedDict

margin: NotRequired[DecimalLike]
sizeX: NotRequired[DecimalLike]
sizeY: NotRequired[DecimalLike]
sizeZ: NotRequired[DecimalLike]
class CancellationSupportRequest

Bases: TypedDict

cancellationDate: NotRequired[str]
contactEmail: str
contactName: str
feedback: str
reason: str
teamName: NotRequired[str]
class CappingInfoRequest

Bases: TypedDict

capping: str
resid: str
class ChainIndexRequest

Bases: TypedDict

chainIndex: str
covalentLigand: NotRequired[list[CovalentLigandRequest]]
cyclization: NotRequired[bool]
lipidation: NotRequired[list[LipidationRequest]]
missing: NotRequired[list[MissingRequest]]
mutation: NotRequired[list[MutationRequest]]
nonStandard: NotRequired[list[NonstandardRequest]]
phosphorylation: NotRequired[list[PhosphorylationRequest]]
protonation: NotRequired[list[ProtonationRequest]]
ptm: NotRequired[list[PTMRequest]]
selected: bool
terminal: NotRequired[TerminalRequest]
class ChainRequest

Bases: TypedDict

glycan: NotRequired[list[GlycanChainIndexRequest]]
heme: NotRequired[list[HemeChainIndexRequest]]
ion: NotRequired[list[IonChainIndexRequest]]
nucleicAcid: NotRequired[list[NucleicChainIndexRequest]]
protein: NotRequired[list[ChainIndexRequest]]
standaloneLigand: NotRequired[list[StandaloneChainIndexRequest]]
water: NotRequired[list[WaterChainIndexRequest]]
class CharmmAmberFileRequest

Bases: TypedDict

param: NotRequired[bytes]
top: bytes
class ConnProteinRequest

Bases: TypedDict

chainIndex: str
resid: str
class ConnectionsRequest

Bases: TypedDict

completeRingMatch: NotRequired[bool]
end: int
start: int
class CovalentLigandRequest

Bases: TypedDict

chainIndex: str
resname: str
class CreateProjectRequest

Bases: TypedDict

amberOptions: NotRequired[AmberOptionsRequest]
boltzProjectId: NotRequired[str]
calcPka: NotRequired[bool]
corrTop: NotRequired[bool]
customPdb: NotRequired[bytes]
pdbId: NotRequired[str]
pdbSource: NotRequired[str]
projectForceField: str
projectPk: NotRequired[str]
projectTitle: str
renameDupl: NotRequired[bool]
workspace: NotRequired[WorkspaceEnum]
class CubeBuilderInquiryRequest

Bases: TypedDict

content: str
email: str
name: str
projectCategory: NotRequired[str]
projectId: NotRequired[str]
projectType: NotRequired[str]
class CustomIonRequest

Bases: TypedDict

anion: NotRequired[str]
cation: NotRequired[str]
charge: NotRequired[int]
conc: NotRequired[float]
customAnion: NotRequired[str]
customCation: NotRequired[str]
neutralize: NotRequired[bool]
pk: NotRequired[str]
selected: NotRequired[bool]
class CustomSolventRequest

Bases: TypedDict

conc: NotRequired[float]
counts: int
density: NotRequired[float]
name: NotRequired[str]
pk: NotRequired[str]
ratio: NotRequired[float]
selected: NotRequired[bool]
class DihedralRequest

Bases: TypedDict

angle: float
chainIndex: str
resid: str
class DiscntTerminalsRequest

Bases: TypedDict

cter: CappingInfoRequest
nter: CappingInfoRequest
class EnterpriseInquiryRequest

Bases: TypedDict

companyName: str
contactEmail: str
contactName: str
teamSize: NotRequired[str]
useCase: NotRequired[str]
class ErrorResponse

Bases: TypedDict

message: str
status: str
class ForceFieldFilesRequest

Bases: TypedDict

amber: NotRequired[CharmmAmberFileRequest]
charmm: NotRequired[CharmmAmberFileRequest]
martini: NotRequired[MartiniFileRequest]
projectPk: NotRequired[str]
sdf: NotRequired[str]
class ForceFieldGenerationRequest

Bases: TypedDict

applyPh: NotRequired[bool]
existingMethod: NotRequired[str]
files: NotRequired[ForceFieldFilesRequest]
forceFieldMethod: str
forceFieldType: NotRequired[str]
hasParam: NotRequired[bool]
keepCoords: NotRequired[bool]
optimize: NotRequired[bool]
resname: NotRequired[str]
toBeResname: NotRequired[str]
class ForceFieldRequest

Bases: TypedDict

forceField: str
class GetGlyInfoRequest

Bases: TypedDict

linkages: list[LinkagesRequest]
residues: dict[str, ResiduesRequest]
class GlycRequest

Bases: TypedDict

glycInfo: GetGlyInfoRequest
projectPk: str
class GlycanChainIndexRequest

Bases: TypedDict

chainIndex: str
selected: bool
class GlycoInfoRequest

Bases: GetGlyInfoRequest

linkages: list[LinkagesRequest]
residues: dict[str, ResiduesRequest]
class GlycosylationRequest

Bases: TypedDict

chainIndex: str
glycInfo: GlycoInfoRequest
glycoProtein: str
class HandleRequestStep1Request

Bases: TypedDict

amberOptions: NotRequired[AmberOptionRequest]
boxShape: str
membraneOnly: NotRequired[bool]
membraneType: str
pdbreaderProject: NotRequired[str]
pdbreaderProjects: NotRequired[list[str]]
projectForceField: str
projectTitle: str
workspace: NotRequired[WorkspaceEnum]
class HandleRequestStep2Request

Bases: TypedDict

alignOptions: NotRequired[list[AlignOptionsRequest]]
alignmentOption: NotRequired[str]
innerWaterMargin: NotRequired[DecimalLike]
orientationOption: NotRequired[OrientationOptionRequest]
projectPk: str
proteinChains: NotRequired[list[str]]
class HandleRequestStep3Request

Bases: TypedDict

boxMargin: NotRequired[BoxMarginRequest]
compositionOption: str
fillSpace: NotRequired[bool]
height: NotRequired[float]
innerHydrationNumber: NotRequired[int]
innerWaterMargin: NotRequired[DecimalLike]
lipids: list[LipidsRequest]
nanodisc: NotRequired[str]
poreR: NotRequired[float]
projectPk: str
radius: NotRequired[float]
tightPacking: NotRequired[bool]
tightPackingScaling: NotRequired[float]
useInnerHydrationNumber: NotRequired[bool]
class HandleRequestStep4Request

Bases: TypedDict

compositionOption: str
fillSpace: NotRequired[bool]
lipids: list[LipidsRequest]
margin: NotRequired[DecimalLike]
projectPk: str
tightPacking: NotRequired[bool]
tightPackingScaling: NotRequired[float]
class HandleRequestStep5Request

Bases: TypedDict

coreIons: NotRequired[str]
hydrationNumber: NotRequired[int]
innerIonConc: NotRequired[DecimalLike]
innerIons: NotRequired[str]
innerNeutralize: NotRequired[bool]
ionConc: NotRequired[DecimalLike]
ions: str
lipaIons: NotRequired[str]
mdEngines: MDRequest
neutralize: NotRequired[bool]
projectPk: str
temperature: NotRequired[DecimalLike]
useHmr: NotRequired[bool]
useHydrationNumber: NotRequired[bool]
waterMargin: NotRequired[DecimalLike]
class HandleRequestStep6Request

Bases: TypedDict

coreIons: NotRequired[str]
customIons: NotRequired[list[CustomIonRequest]]
customSolvent: NotRequired[list[CustomSolventRequest]]
ionConc: NotRequired[DecimalLike]
ions: NotRequired[str]
lipaIons: NotRequired[str]
mdEngines: MDRequest
neutralize: NotRequired[bool]
projectPk: str
temperature: NotRequired[DecimalLike]
useHmr: NotRequired[bool]
class HandleStepRequest

Bases: TypedDict

projectPk: str
projectStep: int
class HemeChainIndexRequest

Bases: TypedDict

chainIndex: str
connProtein: ConnProteinRequest
selected: bool
class HemeRequest

Bases: TypedDict

chainIndex: str
connProtein: ConnProteinRequest
class IonChainIndexRequest

Bases: TypedDict

chainIndex: str
ionElement: str
selected: bool
class LigandForceFieldRequest

Bases: TypedDict

gaff: NotRequired[bool]
gaffFast: NotRequired[bool]
openff: NotRequired[bool]
openffFast: NotRequired[bool]
xff: NotRequired[bool]
xffFast: NotRequired[bool]
class LinkagesRequest

Bases: TypedDict

residue1: str
residue2: str
site1: str
site2: str
class LipidationRequest

Bases: TypedDict

resid: str
swap: str
class LipidsRequest

Bases: TypedDict

area: float
core: NotRequired[str]
head: NotRequired[str]
headGroup: NotRequired[list[str]]
headType: NotRequired[str]
innerNumber: NotRequired[int]
innerRatio: NotRequired[float]
isCustom: NotRequired[bool]
lipid: NotRequired[str]
lowNumber: NotRequired[int]
lowRatio: NotRequired[float]
lowerInnerNumber: NotRequired[int]
lowerInnerRatio: NotRequired[float]
lowerOuterNumber: NotRequired[int]
lowerOuterRatio: NotRequired[float]
nUnit: NotRequired[str]
number: NotRequired[int]
oAnti: NotRequired[str]
oUnit: NotRequired[str]
outerNumber: NotRequired[int]
outerRatio: NotRequired[float]
ratio: NotRequired[float]
sequence: NotRequired[str]
species: NotRequired[str]
tail1: NotRequired[str]
tail2: NotRequired[str]
tailGroup: NotRequired[list[str]]
tailType: NotRequired[str]
thickness: NotRequired[float]
type: str
upNumber: NotRequired[int]
upRatio: NotRequired[float]
upperInnerNumber: NotRequired[int]
upperInnerRatio: NotRequired[float]
upperOuterNumber: NotRequired[int]
upperOuterRatio: NotRequired[float]
class MDRequest

Bases: TypedDict

amber: NotRequired[bool]
desmond: NotRequired[bool]
genesis: NotRequired[bool]
gromacs: NotRequired[bool]
namd: NotRequired[bool]
openmm: NotRequired[bool]
class MarketingInquiryRequest

Bases: TypedDict

content: str
email: str
name: str
organization: NotRequired[str]
class MartiniFileRequest

Bases: TypedDict

top: bytes
class MissingRequest

Bases: TypedDict

discntTerminals: NotRequired[DiscntTerminalsRequest]
range: str
selected: bool
class ModelingRequest

Bases: TypedDict

chain: ChainRequest
conjugatedLigand: NotRequired[list[NewLinkageRequest]]
covalentLigand: NotRequired[list[NewLinkageRequest]]
cysteinBridge: NotRequired[str]
elasticNetwork: NotRequired[bool]
ffGeneration: NotRequired[list[ForceFieldGenerationRequest]]
glycosylation: NotRequired[list[GlycosylationRequest]]
heme: NotRequired[list[HemeRequest]]
isMembrane: NotRequired[bool]
model: NotRequired[str]
newCovalentLigand: NotRequired[list[NewLinkageRequest]]
ph: float
projectPk: str
sideChainOrient: NotRequired[bool]
ssbond: NotRequired[list[SsbondRequest]]
stapling: NotRequired[list[StaplingRequest]]
terminalCharge: NotRequired[bool]
class MorphPairByForceFieldTypeRequest

Bases: TypedDict

gaff: NotRequired[MorphPairRequest]
gaffFast: NotRequired[MorphPairRequest]
openff: NotRequired[MorphPairRequest]
openffFast: NotRequired[MorphPairRequest]
xff: NotRequired[MorphPairRequest]
xffFast: NotRequired[MorphPairRequest]
class MorphPairRequest

Bases: TypedDict

connections: list[ConnectionsRequest]
threshold: int
class MutationRequest

Bases: TypedDict

resid: str
toBeResname: str
class NewLinkageRequest

Bases: TypedDict

proteinLigand: list[ProteinLigandRequest]
resname: str
class NonstandardRequest

Bases: TypedDict

chainIndex: str
resid: str
toBeResname: NotRequired[str]
class NucleicChainIndexRequest

Bases: TypedDict

chainIndex: str
missing: NotRequired[list[MissingRequest]]
mutation: NotRequired[list[MutationRequest]]
nonStandard: NotRequired[list[NonstandardRequest]]
selected: bool
terminal: NotRequired[TerminalRequest]
class OrientationOptionRequest

Bases: TypedDict

flipZ: NotRequired[bool]
transZ: NotRequired[int]
class PTMRequest

Bases: TypedDict

patch: str
resid: str
class PaginatedProjectList

Bases: TypedDict

count: NotRequired[int]
next: NotRequired[str]
previous: NotRequired[str]
results: NotRequired[list[Project]]
class PatchedProjectRequest

Bases: TypedDict

project_type: NotRequired[ProjectTypeEnum]
title: NotRequired[str]
class PaymentSupportRequest

Bases: TypedDict

contactEmail: str
issueDescription: str
pollingId: str
pollingType: PollingTypeEnum
class PdbreaderPKRequest

Bases: TypedDict

projectPk: str
class PhosphorylationRequest

Bases: PTMRequest

patch: str
resid: str
class Project

Bases: TypedDict

created_at: str
id: str
project_type: ProjectTypeEnum
title: str
updated_at: str
user: int
class ProjectPKRequest

Bases: PdbreaderPKRequest

projectPk: str
class ProjectRequest

Bases: TypedDict

project_type: ProjectTypeEnum
title: str
class ProteinLigandRequest

Bases: TypedDict

ligandChainIndex1: NotRequired[str]
ligandChainIndex2: NotRequired[str]
proteinChainIndex: str
proteinResid: str
class ProtonationRequest

Bases: PTMRequest

patch: str
resid: str
class RenameProejctRequest

Bases: TypedDict

projectPk: str
projectTitle: str
class ResidueRequest

Bases: ConnProteinRequest

chainIndex: str
resid: str
class ResiduesRequest

Bases: TypedDict

chain: str
modifications: NotRequired[dict[str, str]]
name: str
resid: str
type: str
class SaveModifiedResidueRequest

Bases: TypedDict

cappings: NotRequired[list[list[Any]]]
chainIndex: str
initSdf: str
ketcherInitSdf: str
projectPk: str
protAtoms: NotRequired[list[int]]
resname: str
sdf: str
typeOfResidue: str
class SearchIsomorphicResiduesRequest

Bases: TypedDict

ketcherInitSdf: str
resname: str
sdf: str
class SelectChainModificationRequest

Bases: TypedDict

chain: ChainRequest
conjugatedLigand: NotRequired[list[NewLinkageRequest]]
covalentLigand: NotRequired[list[NewLinkageRequest]]
cysteinBridge: NotRequired[str]
elasticNetwork: NotRequired[bool]
ffGeneration: NotRequired[list[ForceFieldGenerationRequest]]
glycosylation: NotRequired[list[GlycosylationRequest]]
heme: NotRequired[list[HemeRequest]]
model: NotRequired[str]
newCovalentLigand: NotRequired[list[NewLinkageRequest]]
ph: NotRequired[float]
projectPk: str
ssbond: NotRequired[list[SsbondRequest]]
stapling: NotRequired[list[StaplingRequest]]
terminalCharge: NotRequired[bool]
class SelectedLigandsRequest

Bases: TypedDict

gaff: NotRequired[list[str]]
gaffFast: NotRequired[list[str]]
openff: NotRequired[list[str]]
openffFast: NotRequired[list[str]]
xff: NotRequired[list[str]]
xffFast: NotRequired[list[str]]
class SetLigandForceFieldsRequest

Bases: TypedDict

ligandForceFields: LigandForceFieldRequest
projectPk: str
class SideChainOrientationRequest

Bases: TypedDict

dihedrals: NotRequired[list[DihedralRequest]]
projectPk: str
class SolutionBuilderProjectRequest

Bases: TypedDict

pdbProjectPk: str
projectForceField: str
projectTitle: str
workspace: NotRequired[WorkspaceEnum]
class SolutionBuilderTaskRequest

Bases: TypedDict

boxShape: str
boxSize: NotRequired[float]
ionConc: float
ions: str
margin: NotRequired[float]
mdEngines: dict[str, bool]
mminimization: NotRequired[bool]
neutralize: NotRequired[bool]
projectPk: str
temperature: float
useBoxSize: NotRequired[bool]
useHmr: NotRequired[bool]
class SsbondRequest

Bases: TypedDict

residue1: ResidueRequest
residue2: ResidueRequest
class StandaloneChainIndexRequest

Bases: TypedDict

chainIndex: str
resname: NotRequired[str]
selected: bool
class StaplingRequest

Bases: TypedDict

patch: str
residue1: ResidueRequest
residue2: ResidueRequest
stapling: str
class SuccessResponse

Bases: TypedDict

data: dict[str, Any]
status: str
class SupportInquiry

Bases: TypedDict

contact_email: str
contact_name: NotRequired[str]
contact_phone: NotRequired[str]
created_at: str
id: str
inquiry_data: NotRequired[dict[str, Any]]
inquiry_type: InquiryTypeEnum
inquiry_type_display: str
notes: str
status: StatusEnum
status_display: str
updated_at: str
class TargetLigandRequest

Bases: TypedDict

chainIndex: str
residueName: str
class TerminalRequest

Bases: TypedDict

cter: str
nter: str
class TokenVerifyRequest

Bases: TypedDict

token: str
class UpdatePerturbationPathsRequest

Bases: TypedDict

perturbationPaths: MorphPairByForceFieldTypeRequest
projectPk: str
class UpdateReferenceLigandProjectRequest

Bases: TypedDict

projectPk: str
referenceLigandProjectId: str
class UpdateSelectedForceFieldsRequest

Bases: TypedDict

projectPk: str
selectedForceFields: list[str]
class UpdateSelectedLigandsRequest

Bases: TypedDict

projectPk: str
selectedLigands: SelectedLigandsRequest
class UpdateSimilarityScoreMatrixRequest

Bases: TypedDict

projectPk: str
similarityScoreMatrix: dict[str, Any]
class UpdateTargetLigandRequest

Bases: TypedDict

projectPk: str
targetLigand: TargetLigandRequest
class ValidateStandaloneSdfRequest

Bases: TypedDict

isCustom: NotRequired[bool]
projectPk: str
resname: str
sdf: str
class WaterChainIndexRequest

Bases: GlycanChainIndexRequest

chainIndex: str
selected: bool
type DecimalLike = int | str | tuple | Decimal
type InquiryTypeEnum = 'enterprise' | 'cancellation' | 'payment' | 'cubebuilder' | 'marketing'
type PollingTypeEnum = 'token' | 'subscription'
type ProjectTypeEnum = 'Boltz' | 'Protenix' | 'LBS Finder' | 'Chem Patent Search' | 'PDB Reader' | 'Ligand Modeler' | 'Solution Builder' | 'Membrane Builder' | 'Membrane Only Builder' | 'Double Membrane Builder' | 'Double Membrane Only Builder' | 'Nanodisc Builder' | 'Nanodisc Only Builder' | 'Vesicle Builder' | 'Vesicle Only Builder' | 'Micelle Builder' | 'Micelle Only Builder' | 'HexPhase Builder' | 'HexPhase Only Builder' | 'Quick Bilayer Builder' | 'Quick Bilayer Only Builder' | 'Multicomponent Assembler' | 'Free Energy' | 'High-Throughput' | 'Ligand Docker' | 'Enhanced Sampler' | 'Quick Free Energy' | 'Solution Simulator' | 'Membrane Simulator' | 'Free Energy Simulator' | 'Ligand Docker Simulator' | 'Solution Analyzer' | 'Membrane Analyzer' | 'Free Energy Analyzer' | 'Ligand Docker Analyzer'
type StatusEnum = 'pending' | 'contacted' | 'resolved' | 'escalated'
type WorkspaceEnum = 'personal' | 'team'

molcube.utils

flip_kv(obj)

Flips keys and values, allowing duplicate values.

Takes an object like {‘a’: 1, ‘b’: 1, ‘c’: 2} and returns {1: [‘a’, ‘b’], 2: [‘c’]}

Parameters:

obj (Mapping)

Return type:

dict[V, list[K]]

flip_kv_unique(obj)

Flips keys and values, ignoring duplicates.

Takes an object like {‘a’: 1, ‘b’: 1, ‘c’: 2} and returns {1: ‘a’, 2: ‘c’}. Best used when you are sure there are no duplicate values

Parameters:

obj (Mapping)

Return type:

dict[V, K]

itervar_to_list(vtype: type[T], value: None) None
itervar_to_list(vtype: type[T], value: T | Iterable[T]) list[T]
Parameters:
  • vtype (type[T])

  • value (T | Iterable | None)

Return type:

list[T] | None

remove_matching_list_items(seq, function)

Remove items that match a filter. Return the number of items removed

Parameters:
  • seq (list[T])

  • function (Callable[[T], bool])

Return type:

int

remove_none_recursive(obj)
Parameters:

obj (T)

Return type:

T