rcsb-embedding-model 0.0.21__py3-none-any.whl → 0.0.23__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rcsb-embedding-model might be problematic. Click here for more details.
- rcsb_embedding_model/cli/inference.py +44 -22
- rcsb_embedding_model/dataset/esm_prot_from_chain.py +3 -1
- rcsb_embedding_model/inference/chain_inference.py +6 -1
- rcsb_embedding_model/inference/esm_inference.py +6 -1
- rcsb_embedding_model/inference/structure_inference.py +8 -1
- rcsb_embedding_model/modules/chain_module.py +8 -5
- rcsb_embedding_model/modules/esm_module.py +7 -4
- rcsb_embedding_model/modules/structure_module.py +9 -4
- rcsb_embedding_model/utils/model.py +2 -0
- {rcsb_embedding_model-0.0.21.dist-info → rcsb_embedding_model-0.0.23.dist-info}/METADATA +2 -2
- {rcsb_embedding_model-0.0.21.dist-info → rcsb_embedding_model-0.0.23.dist-info}/RECORD +14 -14
- {rcsb_embedding_model-0.0.21.dist-info → rcsb_embedding_model-0.0.23.dist-info}/WHEEL +0 -0
- {rcsb_embedding_model-0.0.21.dist-info → rcsb_embedding_model-0.0.23.dist-info}/entry_points.txt +0 -0
- {rcsb_embedding_model-0.0.21.dist-info → rcsb_embedding_model-0.0.23.dist-info}/licenses/LICENSE.md +0 -0
|
@@ -325,26 +325,36 @@ def complete_embedding(
|
|
|
325
325
|
resolve_path=True,
|
|
326
326
|
help='CSV file 4 columns: Structure Name | Structure File Path or URL (switch structure-location) | Assembly Id | Output embedding name.'
|
|
327
327
|
)],
|
|
328
|
-
|
|
328
|
+
output_res_path: Annotated[typer.FileText, typer.Option(
|
|
329
329
|
exists=True,
|
|
330
330
|
file_okay=False,
|
|
331
331
|
dir_okay=True,
|
|
332
332
|
resolve_path=True,
|
|
333
|
-
help='Output path to store
|
|
333
|
+
help='Output path to store residue embeddings. Residue embeddings are stored in separated files'
|
|
334
334
|
)],
|
|
335
|
-
|
|
335
|
+
output_chain_path: Annotated[typer.FileText, typer.Option(
|
|
336
|
+
exists=True,
|
|
337
|
+
file_okay=False,
|
|
338
|
+
dir_okay=True,
|
|
339
|
+
resolve_path=True,
|
|
340
|
+
help='Output path to store chain embeddings. Embeddings are stored as a single JSON file (see output_chain_name).'
|
|
341
|
+
)],
|
|
342
|
+
output_assembly_path: Annotated[typer.FileText, typer.Option(
|
|
336
343
|
exists=True,
|
|
337
344
|
file_okay=False,
|
|
338
345
|
dir_okay=True,
|
|
339
346
|
resolve_path=True,
|
|
340
|
-
help='Output path to store
|
|
347
|
+
help='Output path to store assembly embeddings. Embeddings are stored as a single JSON file (see output_assembly_name).'
|
|
341
348
|
)],
|
|
342
349
|
output_format: Annotated[OutFormat, typer.Option(
|
|
343
350
|
help='Format of the output. Options: separated (predictions are stored in single files) or grouped (predictions are stored in a single JSON file).'
|
|
344
351
|
)] = OutFormat.separated,
|
|
345
|
-
|
|
346
|
-
help='File name for storing embeddings as a single JSON file. Used when output-format=grouped.'
|
|
347
|
-
)] = 'inference',
|
|
352
|
+
output_chain_name: Annotated[str, typer.Option(
|
|
353
|
+
help='File name for storing chain embeddings as a single JSON file. Used when output-format=grouped.'
|
|
354
|
+
)] = 'chain-inference',
|
|
355
|
+
output_assembly_name: Annotated[str, typer.Option(
|
|
356
|
+
help='File name for storing chain embeddings as a single JSON file. Used when output-format=grouped.'
|
|
357
|
+
)] = 'chain-inference',
|
|
348
358
|
structure_location: Annotated[StructureLocation, typer.Option(
|
|
349
359
|
help='Structure file location.'
|
|
350
360
|
)] = StructureLocation.local,
|
|
@@ -354,10 +364,22 @@ def complete_embedding(
|
|
|
354
364
|
min_res_n: Annotated[int, typer.Option(
|
|
355
365
|
help='When using all chains in a structure, consider only chains with more than <min_res_n> residues.'
|
|
356
366
|
)] = 0,
|
|
357
|
-
|
|
367
|
+
batch_size_res: Annotated[int, typer.Option(
|
|
358
368
|
help='Number of samples processed together in one iteration.'
|
|
359
369
|
)] = 1,
|
|
360
|
-
|
|
370
|
+
num_workers_res: Annotated[int, typer.Option(
|
|
371
|
+
help='Number of subprocesses to use for data loading.'
|
|
372
|
+
)] = 0,
|
|
373
|
+
batch_size_chain: Annotated[int, typer.Option(
|
|
374
|
+
help='Number of samples processed together in one iteration.'
|
|
375
|
+
)] = 1,
|
|
376
|
+
num_workers_chain: Annotated[int, typer.Option(
|
|
377
|
+
help='Number of subprocesses to use for data loading.'
|
|
378
|
+
)] = 0,
|
|
379
|
+
batch_size_assembly: Annotated[int, typer.Option(
|
|
380
|
+
help='Number of samples processed together in one iteration.'
|
|
381
|
+
)] = 1,
|
|
382
|
+
num_workers_assembly: Annotated[int, typer.Option(
|
|
361
383
|
help='Number of subprocesses to use for data loading.'
|
|
362
384
|
)] = 0,
|
|
363
385
|
num_nodes: Annotated[int, typer.Option(
|
|
@@ -372,43 +394,43 @@ def complete_embedding(
|
|
|
372
394
|
):
|
|
373
395
|
residue_embedding(
|
|
374
396
|
src_file=src_chain_file,
|
|
375
|
-
output_path=
|
|
397
|
+
output_path=output_res_path,
|
|
376
398
|
output_format=OutFormat.separated,
|
|
377
399
|
structure_location=structure_location,
|
|
378
400
|
structure_format=structure_format,
|
|
379
401
|
min_res_n=min_res_n,
|
|
380
|
-
batch_size=
|
|
381
|
-
num_workers=
|
|
402
|
+
batch_size=batch_size_res,
|
|
403
|
+
num_workers=num_workers_res,
|
|
382
404
|
num_nodes=num_nodes,
|
|
383
405
|
accelerator=accelerator,
|
|
384
406
|
devices=devices,
|
|
385
407
|
)
|
|
386
408
|
chain_embedding(
|
|
387
409
|
src_file=src_chain_file,
|
|
388
|
-
output_path=
|
|
410
|
+
output_path=output_chain_path,
|
|
389
411
|
output_format=output_format,
|
|
390
|
-
output_name=
|
|
391
|
-
res_embedding_location=
|
|
412
|
+
output_name=output_chain_name,
|
|
413
|
+
res_embedding_location=output_res_path,
|
|
392
414
|
structure_location=structure_location,
|
|
393
415
|
structure_format=structure_format,
|
|
394
416
|
min_res_n=min_res_n,
|
|
395
|
-
batch_size=
|
|
396
|
-
num_workers=
|
|
417
|
+
batch_size=batch_size_chain,
|
|
418
|
+
num_workers=num_workers_chain,
|
|
397
419
|
num_nodes=num_nodes,
|
|
398
420
|
accelerator=accelerator,
|
|
399
421
|
devices=devices
|
|
400
422
|
)
|
|
401
423
|
assembly_embedding(
|
|
402
424
|
src_file=src_assembly_file,
|
|
403
|
-
output_path=
|
|
425
|
+
output_path=output_assembly_path,
|
|
404
426
|
output_format=output_format,
|
|
405
|
-
output_name=
|
|
406
|
-
res_embedding_location=
|
|
427
|
+
output_name=output_assembly_name,
|
|
428
|
+
res_embedding_location=output_res_path,
|
|
407
429
|
structure_location=structure_location,
|
|
408
430
|
structure_format=structure_format,
|
|
409
431
|
min_res_n=min_res_n,
|
|
410
|
-
batch_size=
|
|
411
|
-
num_workers=
|
|
432
|
+
batch_size=batch_size_assembly,
|
|
433
|
+
num_workers=num_workers_assembly,
|
|
412
434
|
num_nodes=num_nodes,
|
|
413
435
|
accelerator=accelerator,
|
|
414
436
|
devices=devices
|
|
@@ -68,9 +68,11 @@ class EsmProtFromChain(Dataset):
|
|
|
68
68
|
chain_id=chain_id
|
|
69
69
|
)
|
|
70
70
|
for atom_ch in chain_iter(structure):
|
|
71
|
+
if len(atom_ch) == 0:
|
|
72
|
+
raise IOError(f"No atoms were found in structure chain {src_name}.{chain_id}")
|
|
71
73
|
protein_chain = ProteinChain.from_atomarray(rename_atom_ch(atom_ch))
|
|
72
74
|
return ESMProtein.from_protein_chain(protein_chain), item_name
|
|
73
|
-
|
|
75
|
+
raise IOError(f"No chain was found for structure {src_name}")
|
|
74
76
|
|
|
75
77
|
|
|
76
78
|
if __name__ == '__main__':
|
|
@@ -7,6 +7,7 @@ from rcsb_embedding_model.modules.chain_module import ChainModule
|
|
|
7
7
|
from rcsb_embedding_model.types.api_types import Accelerator, Devices, OptionalPath, FileOrStreamTuple, SrcLocation, \
|
|
8
8
|
SrcTensorFrom, StructureLocation, StructureFormat, OutFormat
|
|
9
9
|
from rcsb_embedding_model.utils.data import collate_seq_embeddings
|
|
10
|
+
from rcsb_embedding_model.utils.model import get_aggregator_model
|
|
10
11
|
from rcsb_embedding_model.writer.batch_writer import CsvBatchWriter, JsonStorage
|
|
11
12
|
|
|
12
13
|
|
|
@@ -52,13 +53,17 @@ def predict(
|
|
|
52
53
|
)
|
|
53
54
|
)
|
|
54
55
|
|
|
55
|
-
|
|
56
|
+
aggregator_model = get_aggregator_model()
|
|
57
|
+
module = ChainModule(
|
|
58
|
+
model=aggregator_model
|
|
59
|
+
)
|
|
56
60
|
inference_writer = (JsonStorage(out_path, out_name) if out_format == OutFormat.grouped else CsvBatchWriter(out_path)) if out_path is not None else None
|
|
57
61
|
trainer = Trainer(
|
|
58
62
|
callbacks=[inference_writer] if inference_writer is not None else None,
|
|
59
63
|
num_nodes=num_nodes,
|
|
60
64
|
accelerator=accelerator,
|
|
61
65
|
devices=devices,
|
|
66
|
+
strategy="ddp",
|
|
62
67
|
logger=False
|
|
63
68
|
)
|
|
64
69
|
|
|
@@ -6,6 +6,7 @@ from rcsb_embedding_model.dataset.esm_prot_from_chain import EsmProtFromChain
|
|
|
6
6
|
from rcsb_embedding_model.modules.esm_module import EsmModule
|
|
7
7
|
from rcsb_embedding_model.types.api_types import StructureFormat, Accelerator, Devices, OptionalPath, StructureLocation, \
|
|
8
8
|
SrcProteinFrom, FileOrStreamTuple, SrcLocation, OutFormat
|
|
9
|
+
from rcsb_embedding_model.utils.model import get_residue_model
|
|
9
10
|
from rcsb_embedding_model.writer.batch_writer import TensorBatchWriter, JsonStorage
|
|
10
11
|
|
|
11
12
|
|
|
@@ -46,13 +47,17 @@ def predict(
|
|
|
46
47
|
collate_fn=lambda _: _
|
|
47
48
|
)
|
|
48
49
|
|
|
49
|
-
|
|
50
|
+
esm_model = get_residue_model()
|
|
51
|
+
module = EsmModule(
|
|
52
|
+
model=esm_model
|
|
53
|
+
)
|
|
50
54
|
inference_writer = (JsonStorage(out_path, out_name) if out_format == OutFormat.grouped else TensorBatchWriter(out_path)) if out_path is not None else None
|
|
51
55
|
trainer = Trainer(
|
|
52
56
|
callbacks=[inference_writer] if inference_writer is not None else None,
|
|
53
57
|
num_nodes=num_nodes,
|
|
54
58
|
accelerator=accelerator,
|
|
55
59
|
devices=devices,
|
|
60
|
+
strategy="ddp",
|
|
56
61
|
logger=False
|
|
57
62
|
)
|
|
58
63
|
|
|
@@ -6,6 +6,7 @@ from rcsb_embedding_model.dataset.esm_prot_from_chain import EsmProtFromChain
|
|
|
6
6
|
from rcsb_embedding_model.modules.structure_module import StructureModule
|
|
7
7
|
from rcsb_embedding_model.types.api_types import StructureFormat, Accelerator, Devices, OptionalPath, StructureLocation, \
|
|
8
8
|
SrcProteinFrom, FileOrStreamTuple, SrcLocation
|
|
9
|
+
from rcsb_embedding_model.utils.model import get_residue_model, get_aggregator_model
|
|
9
10
|
from rcsb_embedding_model.writer.batch_writer import JsonStorage
|
|
10
11
|
|
|
11
12
|
|
|
@@ -45,13 +46,19 @@ def predict(
|
|
|
45
46
|
collate_fn=lambda _: _
|
|
46
47
|
)
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
res_model = get_residue_model()
|
|
50
|
+
aggregator_model = get_aggregator_model()
|
|
51
|
+
module = StructureModule(
|
|
52
|
+
res_model=res_model,
|
|
53
|
+
aggregator_model=aggregator_model
|
|
54
|
+
)
|
|
49
55
|
inference_writer = JsonStorage(out_path, out_name) if out_path is not None and out_name is not None else None
|
|
50
56
|
trainer = Trainer(
|
|
51
57
|
callbacks=[inference_writer] if inference_writer is not None else None,
|
|
52
58
|
num_nodes=num_nodes,
|
|
53
59
|
accelerator=accelerator,
|
|
54
60
|
devices=devices,
|
|
61
|
+
strategy="ddp",
|
|
55
62
|
logger=False
|
|
56
63
|
)
|
|
57
64
|
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
import logging
|
|
2
2
|
|
|
3
|
-
from
|
|
3
|
+
from lightning import LightningModule
|
|
4
4
|
|
|
5
|
+
logger = logging.getLogger(__name__)
|
|
5
6
|
|
|
6
7
|
class ChainModule(LightningModule):
|
|
7
8
|
|
|
8
9
|
def __init__(
|
|
9
|
-
self
|
|
10
|
+
self,
|
|
11
|
+
model
|
|
10
12
|
):
|
|
11
13
|
super().__init__()
|
|
12
|
-
|
|
14
|
+
logger.info(f"Using device: {self.device}")
|
|
15
|
+
self.aggregator = model
|
|
13
16
|
|
|
14
17
|
def predict_step(self, batch, batch_idx):
|
|
15
18
|
(x, x_mask), dom_id = batch
|
|
16
|
-
return self.
|
|
19
|
+
return self.aggregator(x, x_mask), dom_id
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
1
3
|
from esm.sdk.api import SamplingConfig
|
|
2
4
|
from lightning import LightningModule
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
logger = logging.getLogger(__name__)
|
|
6
7
|
|
|
7
8
|
class EsmModule(LightningModule):
|
|
8
9
|
|
|
9
10
|
def __init__(
|
|
10
|
-
self
|
|
11
|
+
self,
|
|
12
|
+
model
|
|
11
13
|
):
|
|
12
14
|
super().__init__()
|
|
13
|
-
|
|
15
|
+
logger.info(f"Using device: {self.device}")
|
|
16
|
+
self.esm3 = model
|
|
14
17
|
|
|
15
18
|
def predict_step(self, prot_batch, batch_idx):
|
|
16
19
|
return tuple([self.__compute_embeddings(esm_prot) for esm_prot, name in prot_batch]), tuple([name for esm_prot, name in prot_batch])
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
1
3
|
from esm.sdk.api import SamplingConfig
|
|
2
4
|
from lightning import LightningModule
|
|
3
5
|
|
|
4
6
|
from rcsb_embedding_model.utils.data import collate_seq_embeddings
|
|
5
|
-
from rcsb_embedding_model.utils.model import get_residue_model, get_aggregator_model
|
|
6
7
|
|
|
8
|
+
logger = logging.getLogger(__name__)
|
|
7
9
|
|
|
8
10
|
class StructureModule(LightningModule):
|
|
9
11
|
|
|
10
12
|
def __init__(
|
|
11
|
-
self
|
|
13
|
+
self,
|
|
14
|
+
res_model,
|
|
15
|
+
aggregator_model
|
|
12
16
|
):
|
|
13
17
|
super().__init__()
|
|
14
|
-
|
|
15
|
-
self.
|
|
18
|
+
logger.info(f"Using device: {self.device}")
|
|
19
|
+
self.esm3 = res_model
|
|
20
|
+
self.aggregator = aggregator_model
|
|
16
21
|
|
|
17
22
|
def predict_step(self, prot_batch, batch_idx):
|
|
18
23
|
prot_embeddings = []
|
|
@@ -16,6 +16,8 @@ def get_aggregator_model(device=None):
|
|
|
16
16
|
filename=FILE_NAME,
|
|
17
17
|
revision=REVISION
|
|
18
18
|
)
|
|
19
|
+
if device is None:
|
|
20
|
+
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
|
19
21
|
weights = torch.load(model_path, weights_only=True, map_location=device)
|
|
20
22
|
aggregator_model = ResidueEmbeddingAggregator()
|
|
21
23
|
aggregator_model.load_state_dict(weights)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rcsb-embedding-model
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.23
|
|
4
4
|
Summary: Protein Embedding Model for Structure Search
|
|
5
5
|
Project-URL: Homepage, https://github.com/rcsb/rcsb-embedding-model
|
|
6
6
|
Project-URL: Issues, https://github.com/rcsb/rcsb-embedding-model/issues
|
|
@@ -17,7 +17,7 @@ Description-Content-Type: text/markdown
|
|
|
17
17
|
|
|
18
18
|
# RCSB Embedding Model
|
|
19
19
|
|
|
20
|
-
**Version** 0.0.
|
|
20
|
+
**Version** 0.0.23
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
## Overview
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
rcsb_embedding_model/__init__.py,sha256=r3gLdeBIXkQEQA_K6QcRPO-TtYuAQSutk6pXRUE_nas,120
|
|
2
2
|
rcsb_embedding_model/rcsb_structure_embedding.py,sha256=dKp9hXQO0JAnO4SEfjJ_mG_jHu3UxAPguv6jkOjp-BI,4487
|
|
3
3
|
rcsb_embedding_model/cli/args_utils.py,sha256=7nP2q8pL5dWK_U7opxtWmoFcYVwasky6elHk-dASFaI,165
|
|
4
|
-
rcsb_embedding_model/cli/inference.py,sha256=
|
|
5
|
-
rcsb_embedding_model/dataset/esm_prot_from_chain.py,sha256=
|
|
4
|
+
rcsb_embedding_model/cli/inference.py,sha256=tfMvHAhkUIzJ2RbTtQjq7eWmOUrSyVfH5bjTkCCSIS8,19500
|
|
5
|
+
rcsb_embedding_model/dataset/esm_prot_from_chain.py,sha256=wUpLUzRiEHG6IMfwpW48606fwXTE3jAWbJaQ7RWoulQ,3685
|
|
6
6
|
rcsb_embedding_model/dataset/esm_prot_from_structure.py,sha256=TeITPdi1uc3qLQ-Pgn807oH6eM0LYv-67RE50ZT4dLI,2551
|
|
7
7
|
rcsb_embedding_model/dataset/resdiue_assembly_embedding_from_structure.py,sha256=worRiNqOJRjyr693TaillsS65bdTdGOoHfwyT9yE1O4,2866
|
|
8
8
|
rcsb_embedding_model/dataset/residue_assembly_embedding_from_tensor_file.py,sha256=JG4rrhziIUtdTmbuTbMbEYHrvlda4m5VWvdJXe_Sv3c,3449
|
|
9
9
|
rcsb_embedding_model/dataset/residue_embedding_from_structure.py,sha256=dxfUNcVmdl8LrtQf1UJQ4E79e7R9LRsL0fjsq2GJQRk,2796
|
|
10
10
|
rcsb_embedding_model/dataset/residue_embedding_from_tensor_file.py,sha256=ehHQuLI2TrE5l4_4n6p3e30i17O1pXW92KOCn7bGtcg,1274
|
|
11
11
|
rcsb_embedding_model/inference/assembly_inferece.py,sha256=8fPJjEXy1WsM5XB5U7KfdO5-Du6nEsawsaAjmWoXA9I,2329
|
|
12
|
-
rcsb_embedding_model/inference/chain_inference.py,sha256=
|
|
13
|
-
rcsb_embedding_model/inference/esm_inference.py,sha256=
|
|
14
|
-
rcsb_embedding_model/inference/structure_inference.py,sha256=
|
|
12
|
+
rcsb_embedding_model/inference/chain_inference.py,sha256=YGSCEYQWQvew_UGhM6Ehqd77vPUWXt2XrQuCuQvjM0o,2872
|
|
13
|
+
rcsb_embedding_model/inference/esm_inference.py,sha256=EmLsP4a0nCQKPIaMNuzY1MZQ7YZuj15FBqymV6WZMfc,2493
|
|
14
|
+
rcsb_embedding_model/inference/structure_inference.py,sha256=VMjUZFj5zGnW7HB6-7rnuBrNhXby5yCQgQoiK9g_PDo,2498
|
|
15
15
|
rcsb_embedding_model/model/layers.py,sha256=lhKaWC4gTS_T5lHOP0mgnnP8nKTPEOm4MrjhESA4hE8,743
|
|
16
16
|
rcsb_embedding_model/model/residue_embedding_aggregator.py,sha256=k3UW63Ax8DtjCMdD3O5xNxtyAu28l2n3-Ab6nS0atm0,1967
|
|
17
|
-
rcsb_embedding_model/modules/chain_module.py,sha256=
|
|
18
|
-
rcsb_embedding_model/modules/esm_module.py,sha256=
|
|
19
|
-
rcsb_embedding_model/modules/structure_module.py,sha256=
|
|
17
|
+
rcsb_embedding_model/modules/chain_module.py,sha256=KsZw2uagO4rpAKWv6ivqEMxIEzgtfQFliHV_vX8kqtc,435
|
|
18
|
+
rcsb_embedding_model/modules/esm_module.py,sha256=otJRbCb319nCCob_4E1W_UClhkex9eDqcCyzWQO-vIs,740
|
|
19
|
+
rcsb_embedding_model/modules/structure_module.py,sha256=4js02XzKvhc_G26ELsGhJ9SCi_wlvtVolObxfWt3BhE,1077
|
|
20
20
|
rcsb_embedding_model/types/api_types.py,sha256=SCwALwvEb0KRKaoWKbuN7JyfOH-1whsI0Z4ki41dht8,1235
|
|
21
21
|
rcsb_embedding_model/utils/data.py,sha256=ATgHC6d7xgc2eYtCsEsgMxhAFvYp4R9C0TlNStc1jG0,3254
|
|
22
|
-
rcsb_embedding_model/utils/model.py,sha256=
|
|
22
|
+
rcsb_embedding_model/utils/model.py,sha256=xr3p02ohOgJ5UInwdIupN68Oq4yvNFhxobZRacS1adg,953
|
|
23
23
|
rcsb_embedding_model/utils/structure_parser.py,sha256=IWMQ8brlEMe6_ND-DBESOli8vlqHxladTssjbM9RSKw,2751
|
|
24
24
|
rcsb_embedding_model/utils/structure_provider.py,sha256=eWtxjkPpmRfmil_DKR1J6miaXR3lQ28DF5O0qrqSgGA,786
|
|
25
25
|
rcsb_embedding_model/writer/batch_writer.py,sha256=rTFNasB0Xp4-XCNTXKeEWZxSrb7lvZytoRldJUWn9Jg,3312
|
|
26
|
-
rcsb_embedding_model-0.0.
|
|
27
|
-
rcsb_embedding_model-0.0.
|
|
28
|
-
rcsb_embedding_model-0.0.
|
|
29
|
-
rcsb_embedding_model-0.0.
|
|
30
|
-
rcsb_embedding_model-0.0.
|
|
26
|
+
rcsb_embedding_model-0.0.23.dist-info/METADATA,sha256=gBdBfyHb621lPl3R7-2dpmc8A093pOHgRHym2NNilK4,5310
|
|
27
|
+
rcsb_embedding_model-0.0.23.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
28
|
+
rcsb_embedding_model-0.0.23.dist-info/entry_points.txt,sha256=MK11jTIEmaV-x4CkPX5IymDaVs7Ky_f2xxU8BJVZ_9Q,69
|
|
29
|
+
rcsb_embedding_model-0.0.23.dist-info/licenses/LICENSE.md,sha256=oUaHiKgfBkChth_Sm67WemEvatO1U0Go8LHjaskXY0w,1522
|
|
30
|
+
rcsb_embedding_model-0.0.23.dist-info/RECORD,,
|
|
File without changes
|
{rcsb_embedding_model-0.0.21.dist-info → rcsb_embedding_model-0.0.23.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{rcsb_embedding_model-0.0.21.dist-info → rcsb_embedding_model-0.0.23.dist-info}/licenses/LICENSE.md
RENAMED
|
File without changes
|