BioGeek commited on
Commit
20c665f
Β·
1 Parent(s): 841336b

feat: add logo

Browse files
Files changed (6) hide show
  1. README.md +2 -2
  2. app.py +26 -13
  3. assets/instanovo.svg +23 -0
  4. assets/sample_spectra.mgf +0 -0
  5. sample_spectrum.mgf +0 -33
  6. uv.lock +70 -25
README.md CHANGED
@@ -1,5 +1,5 @@
1
  ---
2
- title: InstaNovo De Novo Peptide Sequencing
3
  emoji: πŸš€πŸ§ͺ
4
  colorFrom: blue
5
  colorTo: green
@@ -10,7 +10,7 @@ pinned: true
10
  license: apache-2.0
11
  ---
12
 
13
- # InstaNovo _De Novo_ Peptide Sequencing Demo
14
 
15
  This Space provides a web interface for the [InstaNovo](https://github.com/instadeepai/InstaNovo) model for _de novo_ peptide sequencing from mass spectrometry data.
16
 
 
1
  ---
2
+ title: De Novo Peptide Sequencing With InstaNovo
3
  emoji: πŸš€πŸ§ͺ
4
  colorFrom: blue
5
  colorTo: green
 
10
  license: apache-2.0
11
  ---
12
 
13
+ # _De Novo_ Peptide Sequencing With InstaNovo
14
 
15
  This Space provides a web interface for the [InstaNovo](https://github.com/instadeepai/InstaNovo) model for _de novo_ peptide sequencing from mass spectrometry data.
16
 
app.py CHANGED
@@ -9,7 +9,6 @@ from pathlib import Path
9
  from omegaconf import OmegaConf, DictConfig
10
 
11
  # --- InstaNovo Imports ---
12
- # It's good practice to handle potential import issues
13
  try:
14
  from instanovo.transformer.model import InstaNovo
15
  from instanovo.utils import SpectrumDataFrame, ResidueSet, Metrics
@@ -24,10 +23,7 @@ try:
24
  from instanovo.constants import MASS_SCALE, MAX_MASS
25
  from torch.utils.data import DataLoader
26
  except ImportError as e:
27
- print(f"Error importing InstaNovo components: {e}")
28
- print("Please ensure InstaNovo is installed correctly.")
29
- # Optionally, raise the error or exit if InstaNovo is critical
30
- # raise e
31
 
32
  # --- Configuration ---
33
  MODEL_ID = "instanovo-v1.1.0" # Use the desired pretrained model ID
@@ -44,6 +40,10 @@ KNAPSACK: Knapsack | None = None
44
  MODEL_CONFIG: DictConfig | None = None
45
  RESIDUE_SET: ResidueSet | None = None
46
 
 
 
 
 
47
  def load_model_and_knapsack():
48
  """Loads the InstaNovo model and generates/loads the knapsack."""
49
  global MODEL, KNAPSACK, MODEL_CONFIG, RESIDUE_SET
@@ -63,7 +63,6 @@ def load_model_and_knapsack():
63
  raise gr.Error(f"Failed to load InstaNovo model: {MODEL_ID}. Error: {e}")
64
 
65
  # --- Knapsack Handling ---
66
- KNAPSACK_DIR.mkdir(parents=True, exist_ok=True)
67
  knapsack_exists = (
68
  (KNAPSACK_DIR / "parameters.pkl").exists() and
69
  (KNAPSACK_DIR / "masses.npy").exists() and
@@ -116,7 +115,7 @@ def load_model_and_knapsack():
116
  print("Knapsack saved.")
117
  except Exception as e:
118
  print(f"Error generating or saving knapsack: {e}")
119
- gr.Warning("Failed to generate Knapsack. Knapsack Beam Search will not be available.")
120
  KNAPSACK = None # Ensure it's None if generation failed
121
 
122
  # Load the model and knapsack when the script starts
@@ -405,12 +404,25 @@ css = """
405
  .gradio-container { font-family: sans-serif; }
406
  .gr-button { color: white; border-color: black; background: black; }
407
  footer { display: none !important; }
 
 
408
  """
409
 
410
  with gr.Blocks(css=css, theme=gr.themes.Default(primary_hue="blue", secondary_hue="blue")) as demo:
 
 
 
 
 
 
 
 
 
 
 
411
  gr.Markdown(
412
  """
413
- # πŸš€ InstaNovo _De Novo_ Peptide Sequencing
414
  Upload your mass spectrometry data file (.mgf, .mzml, or .mzxml) and get peptide sequence predictions using InstaNovo.
415
  Choose between fast Greedy Search or more accurate but slower Knapsack Beam Search.
416
  """
@@ -422,13 +434,13 @@ with gr.Blocks(css=css, theme=gr.themes.Default(primary_hue="blue", secondary_hu
422
  file_types=[".mgf", ".mzml", ".mzxml"]
423
  )
424
  decoding_method = gr.Radio(
425
- ["Greedy Search (Fast)", "Knapsack Beam Search (More accurate, but slower)"],
426
  label="Decoding Method",
427
- value="Greedy Search (Fast)" # Default to fast method
428
  )
429
  submit_btn = gr.Button("Predict Sequences", variant="primary")
430
  with gr.Column(scale=2):
431
- output_df = gr.DataFrame(label="Prediction Results", wrap=True)
432
  output_file = gr.File(label="Download Full Results (CSV)")
433
 
434
  submit_btn.click(
@@ -438,7 +450,8 @@ with gr.Blocks(css=css, theme=gr.themes.Default(primary_hue="blue", secondary_hu
438
  )
439
 
440
  gr.Examples(
441
- [["./sample_spectra.mgf", "Knapsack Beam Search (Accurate, 5 Beams)"]], # Requires test data fetched
 
442
  inputs=[input_file, decoding_method],
443
  outputs=[output_df, output_file],
444
  fn=predict_peptides,
@@ -451,7 +464,7 @@ with gr.Blocks(css=css, theme=gr.themes.Default(primary_hue="blue", secondary_hu
451
  **Notes:**
452
  * Predictions are based on the [InstaNovo](https://github.com/instadeepai/InstaNovo) model ({MODEL_ID}).
453
  * Knapsack Beam Search uses pre-calculated mass constraints and yields better results but takes longer.
454
- * 'delta_mass_ppm' shows the lowest absolute precursor mass error (in ppm) across potential isotopes (0-1 neutron).
455
  * Ensure your input file format is correctly specified. Large files may take time to process.
456
  """.format(MODEL_ID=MODEL_ID)
457
  )
 
9
  from omegaconf import OmegaConf, DictConfig
10
 
11
  # --- InstaNovo Imports ---
 
12
  try:
13
  from instanovo.transformer.model import InstaNovo
14
  from instanovo.utils import SpectrumDataFrame, ResidueSet, Metrics
 
23
  from instanovo.constants import MASS_SCALE, MAX_MASS
24
  from torch.utils.data import DataLoader
25
  except ImportError as e:
26
+ raise ImportError("Failed to import InstaNovo components: {e}")
 
 
 
27
 
28
  # --- Configuration ---
29
  MODEL_ID = "instanovo-v1.1.0" # Use the desired pretrained model ID
 
40
  MODEL_CONFIG: DictConfig | None = None
41
  RESIDUE_SET: ResidueSet | None = None
42
 
43
+ # Assets
44
+ gr.set_static_paths(paths=[Path.cwd().absolute()/"assets"])
45
+
46
+
47
  def load_model_and_knapsack():
48
  """Loads the InstaNovo model and generates/loads the knapsack."""
49
  global MODEL, KNAPSACK, MODEL_CONFIG, RESIDUE_SET
 
63
  raise gr.Error(f"Failed to load InstaNovo model: {MODEL_ID}. Error: {e}")
64
 
65
  # --- Knapsack Handling ---
 
66
  knapsack_exists = (
67
  (KNAPSACK_DIR / "parameters.pkl").exists() and
68
  (KNAPSACK_DIR / "masses.npy").exists() and
 
115
  print("Knapsack saved.")
116
  except Exception as e:
117
  print(f"Error generating or saving knapsack: {e}")
118
+ gr.Warning("Failed to generate Knapsack. Knapsack Beam Search will not be available. {e}")
119
  KNAPSACK = None # Ensure it's None if generation failed
120
 
121
  # Load the model and knapsack when the script starts
 
404
  .gradio-container { font-family: sans-serif; }
405
  .gr-button { color: white; border-color: black; background: black; }
406
  footer { display: none !important; }
407
+ /* Optional: Add some margin below the logo */
408
+ .logo-container img { margin-bottom: 1rem; }
409
  """
410
 
411
  with gr.Blocks(css=css, theme=gr.themes.Default(primary_hue="blue", secondary_hue="blue")) as demo:
412
+ # --- Logo Display ---
413
+ gr.Markdown(
414
+ """
415
+ <div style="text-align: center;" class="logo-container">
416
+ <img src='/gradio_api/file=assets/instanovo.svg' alt="InstaNovo Logo" width="300" style="display: block; margin: 0 auto;">
417
+ </div>
418
+ """,
419
+ elem_classes="logo-container" # Optional class for CSS targeting
420
+ )
421
+
422
+ # --- App Content ---
423
  gr.Markdown(
424
  """
425
+ # πŸš€ _De Novo_ Peptide Sequencing with InstaNovo
426
  Upload your mass spectrometry data file (.mgf, .mzml, or .mzxml) and get peptide sequence predictions using InstaNovo.
427
  Choose between fast Greedy Search or more accurate but slower Knapsack Beam Search.
428
  """
 
434
  file_types=[".mgf", ".mzml", ".mzxml"]
435
  )
436
  decoding_method = gr.Radio(
437
+ ["Greedy Search (Fast, resonably accurate)", "Knapsack Beam Search (More accurate, but slower)"],
438
  label="Decoding Method",
439
+ value="Greedy Search (Fast, resonably accurate)" # Default to fast method
440
  )
441
  submit_btn = gr.Button("Predict Sequences", variant="primary")
442
  with gr.Column(scale=2):
443
+ output_df = gr.DataFrame(label="Prediction Results", headers=["scan_number", "precursor_mz", "precursor_charge", "prediction", "log_probability", "delta_mass_ppm"], wrap=True)
444
  output_file = gr.File(label="Download Full Results (CSV)")
445
 
446
  submit_btn.click(
 
450
  )
451
 
452
  gr.Examples(
453
+ [["assets/sample_spectra.mgf", "Greedy Search (Fast, resonably accurate)" ],
454
+ ["assets/sample_spectra.mgf", "Knapsack Beam Search (More accurate, but slower)" ]],
455
  inputs=[input_file, decoding_method],
456
  outputs=[output_df, output_file],
457
  fn=predict_peptides,
 
464
  **Notes:**
465
  * Predictions are based on the [InstaNovo](https://github.com/instadeepai/InstaNovo) model ({MODEL_ID}).
466
  * Knapsack Beam Search uses pre-calculated mass constraints and yields better results but takes longer.
467
+ * `delta_mass_ppm` shows the lowest absolute precursor mass error (in ppm) across potential isotopes (0-1 neutron).
468
  * Ensure your input file format is correctly specified. Large files may take time to process.
469
  """.format(MODEL_ID=MODEL_ID)
470
  )
assets/instanovo.svg ADDED
assets/sample_spectra.mgf ADDED
The diff for this file is too large to render. See raw diff
 
sample_spectrum.mgf DELETED
@@ -1,33 +0,0 @@
1
- BEGIN IONS
2
- TITLE=0
3
- PEPMASS=451.25348
4
- CHARGE=2+
5
- SCANS=F1:2478
6
- RTINSECONDS=824.574
7
- SEQ=IAHYNKR
8
- 63.994834899902344 0.0611930787563324
9
- 70.06543731689453 0.06860413402318954
10
- 84.081298828125 0.22455614805221558
11
- 85.08439636230469 0.06763620674610138
12
- 86.09666442871094 0.22344912588596344
13
- 110.07109069824219 0.3034861385822296
14
- 129.1020050048828 0.0932231917977333
15
- 138.06597900390625 0.07667151838541031
16
- 157.13291931152344 0.14716865122318268
17
- 175.1185302734375 0.19198034703731537
18
- 185.1283721923828 0.09717456996440887
19
- 209.10263061523438 0.13139843940734863
20
- 273.1337890625 0.09324286878108978
21
- 301.1282958984375 0.08515828102827072
22
- 303.21221923828125 0.07235292345285416
23
- 304.17529296875 0.07120858132839203
24
- 322.1859130859375 0.15834060311317444
25
- 350.6787414550781 0.07397215068340302
26
- 417.2552185058594 0.14982180297374725
27
- 580.3185424804688 0.31572264432907104
28
- 630.36572265625 0.06255878508090973
29
- 717.376708984375 0.5990896821022034
30
- 753.3748779296875 0.09976936876773834
31
- 788.4207763671875 0.35858696699142456
32
- 866.4544677734375 0.12016354501247406
33
- END IONS
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
uv.lock CHANGED
@@ -801,35 +801,67 @@ wheels = [
801
 
802
  [[package]]
803
  name = "instanovo"
804
- version = "1.0.0"
805
- source = { registry = "https://pypi.org/simple" }
806
  dependencies = [
807
- { name = "click" },
808
  { name = "datasets" },
 
809
  { name = "hydra-core" },
810
  { name = "jaxtyping" },
811
  { name = "jiwer" },
 
812
  { name = "matchms" },
813
  { name = "neptune" },
814
  { name = "numpy" },
815
  { name = "omegaconf" },
816
  { name = "pandas" },
817
  { name = "polars" },
818
- { name = "pyopenms" },
819
  { name = "python-dotenv" },
820
- { name = "pytorch-lightning" },
 
821
  { name = "s3fs" },
822
  { name = "scikit-learn" },
823
  { name = "spectrum-utils" },
824
  { name = "tensorboard" },
825
- { name = "torch" },
826
  { name = "tqdm" },
 
 
827
  ]
828
- sdist = { url = "https://files.pythonhosted.org/packages/12/a5/e97bec7c26bdd165f23108cb6c048ff50e75c3eced8b08b052c5e0d7ac25/instanovo-1.0.0.tar.gz", hash = "sha256:fd9cfc377d9f8da5272f96b2eb4c14c08b579d7a65466aa402601ec6c4b42672", size = 70720 }
829
  wheels = [
830
- { url = "https://files.pythonhosted.org/packages/10/f2/0f121a26c0b35fa9f962a68864afc75925295b909271e2ad18f2089831a6/instanovo-1.0.0-py3-none-any.whl", hash = "sha256:f0a1193c2f576cd4f89d3623a7f0bcb42e1031caad2ca2b3b51a8a7a66eb4b41", size = 79386 },
831
  ]
832
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
833
  [[package]]
834
  name = "instanovo-gradio"
835
  version = "0.1.0"
@@ -842,7 +874,7 @@ dependencies = [
842
  [package.metadata]
843
  requires-dist = [
844
  { name = "gradio", specifier = ">=5.23.1" },
845
- { name = "instanovo", specifier = ">=1.0.0" },
846
  ]
847
 
848
  [[package]]
@@ -1029,6 +1061,26 @@ wheels = [
1029
  { url = "https://files.pythonhosted.org/packages/2d/00/d90b10b962b4277f5e64a78b6609968859ff86889f5b898c1a778c06ec00/lark-1.2.2-py3-none-any.whl", hash = "sha256:c2276486b02f0f1b90be155f2c8ba4a8e194d42775786db622faccd652d8e80c", size = 111036 },
1030
  ]
1031
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1032
  [[package]]
1033
  name = "lightning-utilities"
1034
  version = "0.14.2"
@@ -1876,22 +1928,6 @@ wheels = [
1876
  { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997 },
1877
  ]
1878
 
1879
- [[package]]
1880
- name = "pyopenms"
1881
- version = "3.3.0"
1882
- source = { registry = "https://pypi.org/simple" }
1883
- dependencies = [
1884
- { name = "matplotlib" },
1885
- { name = "numpy" },
1886
- { name = "pandas" },
1887
- ]
1888
- wheels = [
1889
- { url = "https://files.pythonhosted.org/packages/f5/df/ae6655221fa6b53850cbacae9f6a1d03ee67dba855f8ecb1c5faa01dfec9/pyopenms-3.3.0-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:da7284294fa850b45c206b9337d39c3f9d01b9bfa013665ec0dc55da9513e49c", size = 56065326 },
1890
- { url = "https://files.pythonhosted.org/packages/14/a1/f0685bd47e00a9ea27056335b94516d4d8451ac5151fb05c0d10fcc3c627/pyopenms-3.3.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:c3774b759975064d764239f2e1dbb59810a66124667bb39451e0602d13120fc7", size = 50494234 },
1891
- { url = "https://files.pythonhosted.org/packages/43/40/9c5dc2af36707a7f853b1142af4992e8e9050e1926397a25ec7ba36521ce/pyopenms-3.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:582b585691c0fcfe8ac519849b01c5be861f66059b3c6a6c830cc14d15f20c98", size = 57231043 },
1892
- { url = "https://files.pythonhosted.org/packages/d6/5b/363202bb04962d5aa7ea48a8856692eeebe692e578d481e1ad9de7f476cc/pyopenms-3.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:ff05ae5be93235a8f1eebef02c7e27bfc215c30b80f8c4b27d5a159ffe8f5f22", size = 29539839 },
1893
- ]
1894
-
1895
  [[package]]
1896
  name = "pyparsing"
1897
  version = "3.2.3"
@@ -2579,6 +2615,15 @@ wheels = [
2579
  { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 },
2580
  ]
2581
 
 
 
 
 
 
 
 
 
 
2582
  [[package]]
2583
  name = "triton"
2584
  version = "3.2.0"
 
801
 
802
  [[package]]
803
  name = "instanovo"
804
+ version = "1.1.0"
805
+ source = { path = "../dtu-denovo-sequencing/dist/instanovo-1.1.0-py3-none-any.whl" }
806
  dependencies = [
 
807
  { name = "datasets" },
808
+ { name = "gitpython" },
809
  { name = "hydra-core" },
810
  { name = "jaxtyping" },
811
  { name = "jiwer" },
812
+ { name = "lightning" },
813
  { name = "matchms" },
814
  { name = "neptune" },
815
  { name = "numpy" },
816
  { name = "omegaconf" },
817
  { name = "pandas" },
818
  { name = "polars" },
819
+ { name = "pyteomics" },
820
  { name = "python-dotenv" },
821
+ { name = "pyyaml" },
822
+ { name = "requests" },
823
  { name = "s3fs" },
824
  { name = "scikit-learn" },
825
  { name = "spectrum-utils" },
826
  { name = "tensorboard" },
 
827
  { name = "tqdm" },
828
+ { name = "transfusion-asr" },
829
+ { name = "typer" },
830
  ]
 
831
  wheels = [
832
+ { filename = "instanovo-1.1.0-py3-none-any.whl", hash = "sha256:388ad39f7d458e790e44a9b5655312664e74cee468ce7268fb52740063af557b" },
833
  ]
834
 
835
+ [package.metadata]
836
+ requires-dist = [
837
+ { name = "datasets", specifier = ">=3.1.0" },
838
+ { name = "gitpython", specifier = ">=3.1.44" },
839
+ { name = "hydra-core", specifier = ">=1.3.2" },
840
+ { name = "jaxtyping", specifier = ">=0.2.34" },
841
+ { name = "jiwer", specifier = ">=3.0.5" },
842
+ { name = "lightning", specifier = ">=2.5.1" },
843
+ { name = "matchms", specifier = ">=0.28.1" },
844
+ { name = "neptune", specifier = ">=1.13.0" },
845
+ { name = "numpy", specifier = ">=2.0.2" },
846
+ { name = "omegaconf", specifier = ">=2.3.0" },
847
+ { name = "pandas", specifier = ">=2.2.3" },
848
+ { name = "polars", specifier = ">=1.12.0" },
849
+ { name = "pyteomics", specifier = ">=4.7.5" },
850
+ { name = "python-dotenv", specifier = ">=1.0.1" },
851
+ { name = "pyyaml", specifier = ">=6.0.2" },
852
+ { name = "requests", specifier = ">=2.32.3" },
853
+ { name = "s3fs", specifier = ">=2024.9.0" },
854
+ { name = "scikit-learn", specifier = ">=1.5.2" },
855
+ { name = "spectrum-utils", specifier = ">=0.4.2" },
856
+ { name = "tensorboard", specifier = ">=2.18.0" },
857
+ { name = "torch", marker = "extra == 'cpu'", specifier = ">=2.4.1,<2.5" },
858
+ { name = "torch", marker = "extra == 'cu124'", specifier = ">=2.4.1,<2.5" },
859
+ { name = "tqdm", specifier = ">=4.67.0" },
860
+ { name = "transfusion-asr", specifier = ">=0.1.0" },
861
+ { name = "typer", specifier = ">=0.15.1" },
862
+ ]
863
+ provides-extras = ["cpu", "cu124"]
864
+
865
  [[package]]
866
  name = "instanovo-gradio"
867
  version = "0.1.0"
 
874
  [package.metadata]
875
  requires-dist = [
876
  { name = "gradio", specifier = ">=5.23.1" },
877
+ { name = "instanovo", path = "../dtu-denovo-sequencing/dist/instanovo-1.1.0-py3-none-any.whl" },
878
  ]
879
 
880
  [[package]]
 
1061
  { url = "https://files.pythonhosted.org/packages/2d/00/d90b10b962b4277f5e64a78b6609968859ff86889f5b898c1a778c06ec00/lark-1.2.2-py3-none-any.whl", hash = "sha256:c2276486b02f0f1b90be155f2c8ba4a8e194d42775786db622faccd652d8e80c", size = 111036 },
1062
  ]
1063
 
1064
+ [[package]]
1065
+ name = "lightning"
1066
+ version = "2.5.1"
1067
+ source = { registry = "https://pypi.org/simple" }
1068
+ dependencies = [
1069
+ { name = "fsspec", extra = ["http"] },
1070
+ { name = "lightning-utilities" },
1071
+ { name = "packaging" },
1072
+ { name = "pytorch-lightning" },
1073
+ { name = "pyyaml" },
1074
+ { name = "torch" },
1075
+ { name = "torchmetrics" },
1076
+ { name = "tqdm" },
1077
+ { name = "typing-extensions" },
1078
+ ]
1079
+ sdist = { url = "https://files.pythonhosted.org/packages/39/53/21a834e03317d04cc3db7307d4c19af94c0db43b9001e8fabb8d150c5e69/lightning-2.5.1.tar.gz", hash = "sha256:aca88f8abf3fc38d8b40c1f82ce481f4379c2b181a6eeeb9217db0aba8e40736", size = 630918 }
1080
+ wheels = [
1081
+ { url = "https://files.pythonhosted.org/packages/80/eb/45f6629b92cb4ed38854d5b76f9f668ff58404a4b9ec1abefa98502afd98/lightning-2.5.1-py3-none-any.whl", hash = "sha256:512cbf9e80859f331b329536b2e2f90776e6f8a399048745bb4dabacc36e2850", size = 818892 },
1082
+ ]
1083
+
1084
  [[package]]
1085
  name = "lightning-utilities"
1086
  version = "0.14.2"
 
1928
  { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997 },
1929
  ]
1930
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1931
  [[package]]
1932
  name = "pyparsing"
1933
  version = "3.2.3"
 
2615
  { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 },
2616
  ]
2617
 
2618
+ [[package]]
2619
+ name = "transfusion-asr"
2620
+ version = "0.1.0"
2621
+ source = { registry = "https://pypi.org/simple" }
2622
+ sdist = { url = "https://files.pythonhosted.org/packages/0c/61/8b241f67846260f6d24e2f6c10f5a380cc7ede4f0e7619280e18215367c6/transfusion-asr-0.1.0.tar.gz", hash = "sha256:f9026f5450da4ef14be246dc208deefdb857da525092ab182e48c0b8d0a583c5", size = 52935 }
2623
+ wheels = [
2624
+ { url = "https://files.pythonhosted.org/packages/b8/59/c64b155873375427662a6fbdec13833100e79d1c48ac1c258f5e7e922b51/transfusion_asr-0.1.0-py3-none-any.whl", hash = "sha256:ba7cb988feeb1670335f42e8accc2ca77a1508cbd5cfa5e86eabe35d7be0f3d2", size = 54713 },
2625
+ ]
2626
+
2627
  [[package]]
2628
  name = "triton"
2629
  version = "3.2.0"