Skip to content

Commit aab6bf1

Browse files
authored
Merge pull request #2 from molecule-one/feature/add-starting-materials-support
Add starting materials support
2 parents 19a7f56 + 0555018 commit aab6bf1

3 files changed

Lines changed: 19 additions & 9 deletions

File tree

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ search = m1wrapper.run_batch_search(
2828
- *targets*: list of target compounds in SMILES format
2929
- *parameters* (optional): additional configuration for your batch
3030
scoring request. See [Batch Scoring API](https://github.com/molecule-one/api/blob/master/batch-scoring.md) for more information.
31-
32-
31+
- *starting_materials* (optional): list of available compounds in SMILES format
3332
### Getting exisiting scoring request by id:
3433
```py
3534
search = m1wrapper.get_batch_search(id)

m1wrapper/m1wrapper.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@ def __prepare_request_headers(self) -> dict:
2828
def run_batch_search(
2929
self,
3030
targets: List[str],
31-
parameters: Dict = None
31+
parameters: Dict = None,
32+
starting_materials: List[str] = None,
3233
) -> BatchSearch:
3334
return BatchSearch(
3435
self.api_base_url,
3536
self.request_headers,
3637
targets=targets,
37-
parameters=parameters
38+
parameters=parameters,
39+
starting_materials=starting_materials
3840
)
3941

4042
def get_batch_search(self, search_id: str) -> BatchSearch:

m1wrapper/search.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,31 @@ def __init__(
3636
search_id=None,
3737
targets=None,
3838
parameters=None,
39+
starting_materials=None,
3940
):
4041
self.search_id = search_id
4142
self.base_url = base_url
4243
self.headers = headers
4344
if self.search_id is None:
44-
new_search = self.__run(targets=targets, parameters=parameters)
45+
new_search = self.__run(
46+
targets=targets,
47+
parameters=parameters,
48+
starting_materials=starting_materials
49+
)
4550
self.search_id = new_search['id']
4651

47-
def __prepare_payload(self, targets, parameters) -> dict:
48-
return {
52+
def __prepare_payload(self, targets, parameters, starting_materials) -> dict:
53+
payload = {
4954
'targets': targets,
5055
'params': parameters or {},
5156
}
57+
if starting_materials is not None:
58+
payload["startingMaterials"] = starting_materials
5259

53-
def __run(self, targets, parameters):
54-
payload = self.__prepare_payload(targets, parameters)
60+
return payload
61+
62+
def __run(self, targets, parameters, starting_materials):
63+
payload = self.__prepare_payload(targets, parameters, starting_materials)
5564
response = requests.post(
5665
urljoin(self.base_url, api_search_endpoint),
5766
data=json.dumps(payload),

0 commit comments

Comments
 (0)