rcsb-embedding-model 0.0.20__py3-none-any.whl → 0.0.22__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 +47 -22
- 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.20.dist-info → rcsb_embedding_model-0.0.22.dist-info}/METADATA +3 -3
- {rcsb_embedding_model-0.0.20.dist-info → rcsb_embedding_model-0.0.22.dist-info}/RECORD +13 -13
- {rcsb_embedding_model-0.0.20.dist-info → rcsb_embedding_model-0.0.22.dist-info}/WHEEL +0 -0
- {rcsb_embedding_model-0.0.20.dist-info → rcsb_embedding_model-0.0.22.dist-info}/entry_points.txt +0 -0
- {rcsb_embedding_model-0.0.20.dist-info → rcsb_embedding_model-0.0.22.dist-info}/licenses/LICENSE.md +0 -0
|
@@ -8,6 +8,9 @@ from rcsb_embedding_model.types.api_types import StructureFormat, Accelerator, S
|
|
|
8
8
|
StructureLocation, SrcAssemblyFrom, SrcTensorFrom, OutFormat
|
|
9
9
|
from rcsb_embedding_model.utils.data import adapt_csv_to_embedding_chain_stream
|
|
10
10
|
|
|
11
|
+
import os
|
|
12
|
+
os.environ["TOKENIZERS_PARALLELISM"] = "false"
|
|
13
|
+
|
|
11
14
|
app = typer.Typer(
|
|
12
15
|
add_completion=False
|
|
13
16
|
)
|
|
@@ -322,26 +325,36 @@ def complete_embedding(
|
|
|
322
325
|
resolve_path=True,
|
|
323
326
|
help='CSV file 4 columns: Structure Name | Structure File Path or URL (switch structure-location) | Assembly Id | Output embedding name.'
|
|
324
327
|
)],
|
|
325
|
-
|
|
328
|
+
output_res_path: Annotated[typer.FileText, typer.Option(
|
|
326
329
|
exists=True,
|
|
327
330
|
file_okay=False,
|
|
328
331
|
dir_okay=True,
|
|
329
332
|
resolve_path=True,
|
|
330
|
-
help='Output path to store
|
|
333
|
+
help='Output path to store residue embeddings. Residue embeddings are stored in separated files'
|
|
331
334
|
)],
|
|
332
|
-
|
|
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(
|
|
333
343
|
exists=True,
|
|
334
344
|
file_okay=False,
|
|
335
345
|
dir_okay=True,
|
|
336
346
|
resolve_path=True,
|
|
337
|
-
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).'
|
|
338
348
|
)],
|
|
339
349
|
output_format: Annotated[OutFormat, typer.Option(
|
|
340
350
|
help='Format of the output. Options: separated (predictions are stored in single files) or grouped (predictions are stored in a single JSON file).'
|
|
341
351
|
)] = OutFormat.separated,
|
|
342
|
-
|
|
343
|
-
help='File name for storing embeddings as a single JSON file. Used when output-format=grouped.'
|
|
344
|
-
)] = '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',
|
|
345
358
|
structure_location: Annotated[StructureLocation, typer.Option(
|
|
346
359
|
help='Structure file location.'
|
|
347
360
|
)] = StructureLocation.local,
|
|
@@ -351,10 +364,22 @@ def complete_embedding(
|
|
|
351
364
|
min_res_n: Annotated[int, typer.Option(
|
|
352
365
|
help='When using all chains in a structure, consider only chains with more than <min_res_n> residues.'
|
|
353
366
|
)] = 0,
|
|
354
|
-
|
|
367
|
+
batch_size_res: Annotated[int, typer.Option(
|
|
355
368
|
help='Number of samples processed together in one iteration.'
|
|
356
369
|
)] = 1,
|
|
357
|
-
|
|
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(
|
|
358
383
|
help='Number of subprocesses to use for data loading.'
|
|
359
384
|
)] = 0,
|
|
360
385
|
num_nodes: Annotated[int, typer.Option(
|
|
@@ -369,43 +394,43 @@ def complete_embedding(
|
|
|
369
394
|
):
|
|
370
395
|
residue_embedding(
|
|
371
396
|
src_file=src_chain_file,
|
|
372
|
-
output_path=
|
|
397
|
+
output_path=output_res_path,
|
|
373
398
|
output_format=OutFormat.separated,
|
|
374
399
|
structure_location=structure_location,
|
|
375
400
|
structure_format=structure_format,
|
|
376
401
|
min_res_n=min_res_n,
|
|
377
|
-
batch_size=
|
|
378
|
-
num_workers=
|
|
402
|
+
batch_size=batch_size_res,
|
|
403
|
+
num_workers=num_workers_res,
|
|
379
404
|
num_nodes=num_nodes,
|
|
380
405
|
accelerator=accelerator,
|
|
381
406
|
devices=devices,
|
|
382
407
|
)
|
|
383
408
|
chain_embedding(
|
|
384
409
|
src_file=src_chain_file,
|
|
385
|
-
output_path=
|
|
410
|
+
output_path=output_chain_path,
|
|
386
411
|
output_format=output_format,
|
|
387
|
-
output_name=
|
|
388
|
-
res_embedding_location=
|
|
412
|
+
output_name=output_chain_name,
|
|
413
|
+
res_embedding_location=output_res_path,
|
|
389
414
|
structure_location=structure_location,
|
|
390
415
|
structure_format=structure_format,
|
|
391
416
|
min_res_n=min_res_n,
|
|
392
|
-
batch_size=
|
|
393
|
-
num_workers=
|
|
417
|
+
batch_size=batch_size_chain,
|
|
418
|
+
num_workers=num_workers_chain,
|
|
394
419
|
num_nodes=num_nodes,
|
|
395
420
|
accelerator=accelerator,
|
|
396
421
|
devices=devices
|
|
397
422
|
)
|
|
398
423
|
assembly_embedding(
|
|
399
424
|
src_file=src_assembly_file,
|
|
400
|
-
output_path=
|
|
425
|
+
output_path=output_assembly_path,
|
|
401
426
|
output_format=output_format,
|
|
402
|
-
output_name=
|
|
403
|
-
res_embedding_location=
|
|
427
|
+
output_name=output_assembly_name,
|
|
428
|
+
res_embedding_location=output_res_path,
|
|
404
429
|
structure_location=structure_location,
|
|
405
430
|
structure_format=structure_format,
|
|
406
431
|
min_res_n=min_res_n,
|
|
407
|
-
batch_size=
|
|
408
|
-
num_workers=
|
|
432
|
+
batch_size=batch_size_assembly,
|
|
433
|
+
num_workers=num_workers_assembly,
|
|
409
434
|
num_nodes=num_nodes,
|
|
410
435
|
accelerator=accelerator,
|
|
411
436
|
devices=devices
|
|
@@ -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.22
|
|
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.22
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
## Overview
|
|
@@ -48,7 +48,7 @@ If you are interested in training the model with a new dataset, visit the [rcsb-
|
|
|
48
48
|
**Requirements:**
|
|
49
49
|
|
|
50
50
|
- Python ≥ 3.10
|
|
51
|
-
- ESM
|
|
51
|
+
- ESM >= 3.2.0
|
|
52
52
|
- Lightning ≥ 2.5.0
|
|
53
53
|
- Typer ≥ 0.15.0
|
|
54
54
|
|
|
@@ -1,7 +1,7 @@
|
|
|
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=
|
|
4
|
+
rcsb_embedding_model/cli/inference.py,sha256=tfMvHAhkUIzJ2RbTtQjq7eWmOUrSyVfH5bjTkCCSIS8,19500
|
|
5
5
|
rcsb_embedding_model/dataset/esm_prot_from_chain.py,sha256=3hWo2nWunFZNTfYCTiPvVoJlkWQbRmvlehFw-6B4z6A,3506
|
|
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
|
|
@@ -9,22 +9,22 @@ rcsb_embedding_model/dataset/residue_assembly_embedding_from_tensor_file.py,sha2
|
|
|
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.22.dist-info/METADATA,sha256=NK8CDZOJQdk6TCULyjGFODqwRxqCVUPNIUnc9Hhqllg,5310
|
|
27
|
+
rcsb_embedding_model-0.0.22.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
28
|
+
rcsb_embedding_model-0.0.22.dist-info/entry_points.txt,sha256=MK11jTIEmaV-x4CkPX5IymDaVs7Ky_f2xxU8BJVZ_9Q,69
|
|
29
|
+
rcsb_embedding_model-0.0.22.dist-info/licenses/LICENSE.md,sha256=oUaHiKgfBkChth_Sm67WemEvatO1U0Go8LHjaskXY0w,1522
|
|
30
|
+
rcsb_embedding_model-0.0.22.dist-info/RECORD,,
|
|
File without changes
|
{rcsb_embedding_model-0.0.20.dist-info → rcsb_embedding_model-0.0.22.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{rcsb_embedding_model-0.0.20.dist-info → rcsb_embedding_model-0.0.22.dist-info}/licenses/LICENSE.md
RENAMED
|
File without changes
|