rcsb-embedding-model 0.0.27__py3-none-any.whl → 0.0.29__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.

@@ -59,10 +59,10 @@ class EsmProtFromChain(Dataset):
59
59
  return len(self.data)
60
60
 
61
61
  def __getitem__(self, idx):
62
- src_name = self.data.loc[idx, EsmProtFromChain.STREAM_NAME_ATTR]
63
- src_structure = self.data.loc[idx, EsmProtFromChain.STREAM_ATTR]
64
- chain_id = self.data.loc[idx, EsmProtFromChain.CH_ATTR]
65
- item_name = self.data.loc[idx, EsmProtFromChain.ITEM_NAME_ATTR]
62
+ src_name = self.data.iloc[idx][EsmProtFromChain.STREAM_NAME_ATTR]
63
+ src_structure = self.data.iloc[idx][EsmProtFromChain.STREAM_ATTR]
64
+ chain_id = self.data.iloc[idx][EsmProtFromChain.CH_ATTR]
65
+ item_name = self.data.iloc[idx][EsmProtFromChain.ITEM_NAME_ATTR]
66
66
  structure = self.__structure_provider.get_structure(
67
67
  src_name=src_name,
68
68
  src_structure=stringio_from_url(src_structure) if self.structure_location == StructureLocation.remote else src_structure,
@@ -87,7 +87,7 @@ if __name__ == '__main__':
87
87
  src_stream=args.file_list,
88
88
  src_location=SrcLocation.file,
89
89
  structure_location=StructureLocation.remote,
90
- structure_format=StructureFormat.mmcif,
90
+ structure_format=StructureFormat.bciff,
91
91
  )
92
92
 
93
93
  esm3 = ESM3.from_pretrained(
@@ -40,7 +40,7 @@ class EsmProtFromStructure(EsmProtFromChain):
40
40
 
41
41
  def __get_chains(self, src_stream):
42
42
  chains = []
43
- for idx, row in (pd.DataFrame(
43
+ data = pd.DataFrame(
44
44
  src_stream,
45
45
  dtype=str,
46
46
  columns=EsmProtFromStructure.COLUMNS
@@ -50,7 +50,9 @@ class EsmProtFromStructure(EsmProtFromChain):
50
50
  index_col=None,
51
51
  dtype=str,
52
52
  names=EsmProtFromStructure.COLUMNS
53
- )).iterrows():
53
+ )
54
+ data = data.sort_values(by=data.columns[0])
55
+ for idx, row in data.iterrows():
54
56
  src_name = row[EsmProtFromStructure.STREAM_NAME_ATTR]
55
57
  src_structure = row[EsmProtFromStructure.STREAM_ATTR]
56
58
  item_name = row[EsmProtFromStructure.ITEM_NAME_ATTR]
@@ -33,7 +33,6 @@ class ResidueAssemblyDatasetFromStructure(ResidueAssemblyEmbeddingFromTensorFile
33
33
  self.structure_format = structure_format
34
34
  self.min_res_n = min_res_n
35
35
  self.max_res_n = max_res_n
36
- self.__structure_provider = structure_provider
37
36
  super().__init__(
38
37
  src_stream=self.__get_assemblies(src_stream),
39
38
  res_embedding_location=res_embedding_location,
@@ -47,17 +46,19 @@ class ResidueAssemblyDatasetFromStructure(ResidueAssemblyEmbeddingFromTensorFile
47
46
 
48
47
  def __get_assemblies(self, src_stream):
49
48
  assemblies = []
50
- for idx, row in (pd.DataFrame(
51
- src_stream,
52
- dtype=str,
53
- columns=ResidueAssemblyDatasetFromStructure.COLUMNS
49
+ data = pd.DataFrame(
50
+ src_stream,
51
+ dtype=str,
52
+ columns=ResidueAssemblyDatasetFromStructure.COLUMNS
54
53
  ) if self.src_location == SrcLocation.stream else pd.read_csv(
55
54
  src_stream,
56
55
  header=None,
57
56
  index_col=None,
58
57
  dtype=str,
59
58
  names=ResidueAssemblyDatasetFromStructure.COLUMNS
60
- )).iterrows():
59
+ )
60
+ data = data.sort_values(by=data.columns[0])
61
+ for idx, row in data.iterrows():
61
62
  src_name = row[ResidueAssemblyDatasetFromStructure.STREAM_NAME_ATTR]
62
63
  src_structure = row[ResidueAssemblyDatasetFromStructure.STREAM_ATTR]
63
64
  structure = stringio_from_url(src_structure) if self.structure_location == StructureLocation.remote else src_structure
@@ -58,11 +58,10 @@ class ResidueAssemblyEmbeddingFromTensorFile(Dataset):
58
58
  return len(self.data)
59
59
 
60
60
  def __getitem__(self, idx):
61
- src_name = self.data.loc[idx, ResidueAssemblyEmbeddingFromTensorFile.STREAM_NAME_ATTR]
62
- src_structure = self.data.loc[idx, ResidueAssemblyEmbeddingFromTensorFile.STREAM_ATTR]
63
- assembly_id = self.data.loc[idx, ResidueAssemblyEmbeddingFromTensorFile.ASSEMBLY_ATTR]
64
- item_name = self.data.loc[idx, ResidueAssemblyEmbeddingFromTensorFile.ITEM_NAME_ATTR]
65
-
61
+ src_name = self.data.iloc[idx][ResidueAssemblyEmbeddingFromTensorFile.STREAM_NAME_ATTR]
62
+ src_structure = self.data.iloc[idx][ResidueAssemblyEmbeddingFromTensorFile.STREAM_ATTR]
63
+ assembly_id = self.data.iloc[idx][ResidueAssemblyEmbeddingFromTensorFile.ASSEMBLY_ATTR]
64
+ item_name = self.data.iloc[idx][ResidueAssemblyEmbeddingFromTensorFile.ITEM_NAME_ATTR]
66
65
  structure = self.__structure_provider.get_structure(
67
66
  src_name=src_name,
68
67
  src_structure=stringio_from_url(src_structure) if self.structure_location == StructureLocation.remote else src_structure,
@@ -42,17 +42,19 @@ class ResidueEmbeddingFromStructure(ResidueEmbeddingFromTensorFile):
42
42
 
43
43
  def __get_chains(self, src_stream):
44
44
  chains = []
45
- for idx, row in (pd.DataFrame(
46
- src_stream,
47
- dtype=str,
48
- columns=ResidueEmbeddingFromStructure.COLUMNS
45
+ data = pd.DataFrame(
46
+ src_stream,
47
+ dtype=str,
48
+ columns=ResidueEmbeddingFromStructure.COLUMNS
49
49
  ) if self.src_location == SrcLocation.stream else pd.read_csv(
50
50
  src_stream,
51
51
  header=None,
52
52
  index_col=None,
53
53
  dtype=str,
54
54
  names=ResidueEmbeddingFromStructure.COLUMNS
55
- )).iterrows():
55
+ )
56
+ data = data.sort_values(by=data.columns[0])
57
+ for idx, row in data.iterrows():
56
58
  src_name = row[ResidueEmbeddingFromStructure.STREAM_NAME_ATTR]
57
59
  src_structure = row[ResidueEmbeddingFromStructure.STREAM_ATTR]
58
60
  item_name = row[ResidueEmbeddingFromStructure.ITEM_NAME_ATTR]
@@ -39,6 +39,6 @@ class ResidueEmbeddingFromTensorFile(Dataset):
39
39
  return len(self.data)
40
40
 
41
41
  def __getitem__(self, idx):
42
- embedding_src = self.data.loc[idx, ResidueEmbeddingFromTensorFile.FILE_ATTR]
43
- item_name = self.data.loc[idx, ResidueEmbeddingFromTensorFile.ITEM_NAME_ATTR]
42
+ embedding_src = self.data.iloc[idx][ResidueEmbeddingFromTensorFile.FILE_ATTR]
43
+ item_name = self.data.iloc[idx][ResidueEmbeddingFromTensorFile.ITEM_NAME_ATTR]
44
44
  return torch.load(embedding_src, map_location=torch.device('cpu')), item_name
@@ -1,7 +1,8 @@
1
1
  import os
2
- from io import StringIO
3
-
4
2
  import requests
3
+ import gzip
4
+ from io import StringIO, BytesIO
5
+
5
6
  import torch
6
7
 
7
8
 
@@ -40,10 +41,24 @@ def stringio_from_url(url):
40
41
  try:
41
42
  response = requests.get(url)
42
43
  response.raise_for_status()
43
- return StringIO(response.text)
44
+ data = response.content
45
+ if url.endswith('.bcif.gz'):
46
+ with gzip.GzipFile(fileobj=BytesIO(data), mode='rb') as gz:
47
+ decompressed_data = gz.read()
48
+ return BytesIO(decompressed_data)
49
+ if url.endswith('.gz'):
50
+ compressed = BytesIO(data)
51
+ with gzip.open(compressed, 'rt') as f:
52
+ return StringIO(f.read())
53
+ else:
54
+ return StringIO(response.text)
44
55
  except requests.exceptions.RequestException as e:
45
56
  print(f"Error fetching URL: {e}")
46
57
  return None
58
+ except (OSError, gzip.BadGzipFile) as e:
59
+ print(f"Error decompressing gzip file: {e}")
60
+ return None
61
+
47
62
 
48
63
 
49
64
  def concatenate_tensors(file_list, max_residues, dim=0):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rcsb-embedding-model
3
- Version: 0.0.27
3
+ Version: 0.0.29
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
@@ -2,12 +2,12 @@ rcsb_embedding_model/__init__.py,sha256=r3gLdeBIXkQEQA_K6QcRPO-TtYuAQSutk6pXRUE_
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
4
  rcsb_embedding_model/cli/inference.py,sha256=tfMvHAhkUIzJ2RbTtQjq7eWmOUrSyVfH5bjTkCCSIS8,19500
5
- rcsb_embedding_model/dataset/esm_prot_from_chain.py,sha256=9YVDONAUaIL0U0J_A_0gokN5sN6FgthJHRg_YXTIFLk,3956
6
- rcsb_embedding_model/dataset/esm_prot_from_structure.py,sha256=TeITPdi1uc3qLQ-Pgn807oH6eM0LYv-67RE50ZT4dLI,2551
7
- rcsb_embedding_model/dataset/resdiue_assembly_embedding_from_structure.py,sha256=worRiNqOJRjyr693TaillsS65bdTdGOoHfwyT9yE1O4,2866
8
- rcsb_embedding_model/dataset/residue_assembly_embedding_from_tensor_file.py,sha256=U-XbLVC6d17viKWlSWMs80ztj9VsKjR167B8OvvOfWY,3516
9
- rcsb_embedding_model/dataset/residue_embedding_from_structure.py,sha256=dxfUNcVmdl8LrtQf1UJQ4E79e7R9LRsL0fjsq2GJQRk,2796
10
- rcsb_embedding_model/dataset/residue_embedding_from_tensor_file.py,sha256=qxSnbajARYvyl_KUzoDjqtuCI8YH_7ATpWqDSY0D6F0,1341
5
+ rcsb_embedding_model/dataset/esm_prot_from_chain.py,sha256=l8pRgRpz-8gEzR6QsNcmdnX_KkgvgF1vdqNAsP8Lrc8,3960
6
+ rcsb_embedding_model/dataset/esm_prot_from_structure.py,sha256=3HzXCCc-UqmZNbJaeXHyUsSIZZxMc2erbxAPGIxSmfE,2621
7
+ rcsb_embedding_model/dataset/resdiue_assembly_embedding_from_structure.py,sha256=69h1VkrIXesHZi1cG3BOMMytSDeRzcBBP0_Z3Xz3dM8,2869
8
+ rcsb_embedding_model/dataset/residue_assembly_embedding_from_tensor_file.py,sha256=R-_WY8YJ6qNBjWvY9IzCRThAA42GJ71hzwZBMnkMhOg,3519
9
+ rcsb_embedding_model/dataset/residue_embedding_from_structure.py,sha256=1jmeEcCK41cAi2ZnqQkd667NWCAIGS3k6jGDF-WxtTk,2854
10
+ rcsb_embedding_model/dataset/residue_embedding_from_tensor_file.py,sha256=4OPaw55yGKHjY2iPpCnemcfwfmTZ4j5VrGQ2oIMQw6A,1343
11
11
  rcsb_embedding_model/inference/assembly_inferece.py,sha256=8fPJjEXy1WsM5XB5U7KfdO5-Du6nEsawsaAjmWoXA9I,2329
12
12
  rcsb_embedding_model/inference/chain_inference.py,sha256=6f5wVzjtRtHU3BPMTe5k3nH_Nl440Am8BL8h1vmK1jI,2925
13
13
  rcsb_embedding_model/inference/esm_inference.py,sha256=rn6H43D8BYzMZbMu7UPsLYg2dgERmmpci5weNItrG5Q,2546
@@ -18,13 +18,13 @@ rcsb_embedding_model/modules/chain_module.py,sha256=KsZw2uagO4rpAKWv6ivqEMxIEzgt
18
18
  rcsb_embedding_model/modules/esm_module.py,sha256=otJRbCb319nCCob_4E1W_UClhkex9eDqcCyzWQO-vIs,740
19
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
- rcsb_embedding_model/utils/data.py,sha256=ATgHC6d7xgc2eYtCsEsgMxhAFvYp4R9C0TlNStc1jG0,3254
21
+ rcsb_embedding_model/utils/data.py,sha256=BOjYdIRHrFqk8qFuKGrgCtVyfDupzgOVmH_0C-ecMvg,3813
22
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.dist-info/METADATA,sha256=rbZPxX85Fo7dBZK7eUUxm9etfChs09sWgbKWh4r7Dek,5310
27
- rcsb_embedding_model-0.0.27.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
28
- rcsb_embedding_model-0.0.27.dist-info/entry_points.txt,sha256=MK11jTIEmaV-x4CkPX5IymDaVs7Ky_f2xxU8BJVZ_9Q,69
29
- rcsb_embedding_model-0.0.27.dist-info/licenses/LICENSE.md,sha256=oUaHiKgfBkChth_Sm67WemEvatO1U0Go8LHjaskXY0w,1522
30
- rcsb_embedding_model-0.0.27.dist-info/RECORD,,
26
+ rcsb_embedding_model-0.0.29.dist-info/METADATA,sha256=R3z_Non64xek0bqI40DAoqejy2BtSuHqYuAni2R-eFA,5310
27
+ rcsb_embedding_model-0.0.29.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
28
+ rcsb_embedding_model-0.0.29.dist-info/entry_points.txt,sha256=MK11jTIEmaV-x4CkPX5IymDaVs7Ky_f2xxU8BJVZ_9Q,69
29
+ rcsb_embedding_model-0.0.29.dist-info/licenses/LICENSE.md,sha256=oUaHiKgfBkChth_Sm67WemEvatO1U0Go8LHjaskXY0w,1522
30
+ rcsb_embedding_model-0.0.29.dist-info/RECORD,,