Spaces:
Running
on
Zero
Running
on
Zero
feat: add logo
Browse files- README.md +2 -2
- app.py +26 -13
- assets/instanovo.svg +23 -0
- assets/sample_spectra.mgf +0 -0
- sample_spectrum.mgf +0 -33
- uv.lock +70 -25
README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
---
|
2 |
-
title:
|
3 |
emoji: ππ§ͺ
|
4 |
colorFrom: blue
|
5 |
colorTo: green
|
@@ -10,7 +10,7 @@ pinned: true
|
|
10 |
license: apache-2.0
|
11 |
---
|
12 |
|
13 |
-
#
|
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 |
-
|
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 |
-
# π
|
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 |
-
[["
|
|
|
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 |
-
*
|
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.
|
805 |
-
source = {
|
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 = "
|
819 |
{ name = "python-dotenv" },
|
820 |
-
{ name = "
|
|
|
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 |
-
{
|
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",
|
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"
|