levseq 1.2.6__tar.gz → 1.2.7__tar.gz
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.
- {levseq-1.2.6/levseq.egg-info → levseq-1.2.7}/PKG-INFO +6 -2
- {levseq-1.2.6 → levseq-1.2.7}/README.md +5 -1
- {levseq-1.2.6 → levseq-1.2.7}/levseq/__init__.py +1 -1
- {levseq-1.2.6 → levseq-1.2.7}/levseq/run_levseq.py +18 -10
- {levseq-1.2.6 → levseq-1.2.7}/levseq/variantcaller.py +5 -4
- {levseq-1.2.6 → levseq-1.2.7/levseq.egg-info}/PKG-INFO +6 -2
- {levseq-1.2.6 → levseq-1.2.7}/LICENSE +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/MANIFEST.in +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/IO_processor.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/barcoding/__init__.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/barcoding/demultiplex +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/barcoding/demultiplex-arm64 +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/barcoding/demultiplex-x86 +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/barcoding/minion_barcodes.fasta +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/basecaller.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/cmd.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/coordinates.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/globals.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/interface.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/parser.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/screen.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/seqfit.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/simulation.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/user.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/utils.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq/visualization.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq.egg-info/SOURCES.txt +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq.egg-info/dependency_links.txt +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq.egg-info/entry_points.txt +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq.egg-info/requires.txt +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/levseq.egg-info/top_level.txt +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/setup.cfg +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/setup.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/tests/test_demultiplex_docker.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/tests/test_opligopools.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/tests/test_seqfitvis.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/tests/test_seqs.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/tests/test_statistics.py +0 -0
- {levseq-1.2.6 → levseq-1.2.7}/tests/test_variant_calling.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: levseq
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.7
|
|
4
4
|
Home-page: https://github.com/fhalab/levseq/
|
|
5
5
|
Author: Yueming Long, Emreay Gursoy, Ariane Mora, Francesca-Zhoufan Li
|
|
6
6
|
Author-email: ylong@caltech.edu
|
|
@@ -54,7 +54,7 @@ Figure 1: Overview of the LevSeq variant sequencing workflow using Nanopore tech
|
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
- Data to reproduce the results and to test are available on zenodo [](https://doi.org/10.5281/zenodo.13694463)
|
|
57
|
-
- A dockerized website and database for labs to locally host and visualize their data: website is available [here](https://
|
|
57
|
+
- A dockerized website and database for labs to locally host and visualize their data: website is available [here](https://levseqdb.streamlit.app/) and code to host locally [here](https://github.com/fhalab/LevSeq_db)
|
|
58
58
|
|
|
59
59
|
## Setup
|
|
60
60
|
|
|
@@ -172,3 +172,7 @@ For more details or trouble shooting please look at our [computational_protocols
|
|
|
172
172
|
#### Citing
|
|
173
173
|
|
|
174
174
|
If you have found LevSeq useful, please cite out [paper](https://doi.org/10.1101/2024.09.04.611255).
|
|
175
|
+
|
|
176
|
+
#### Contact
|
|
177
|
+
|
|
178
|
+
Leave a feature request in the issues or reach us via [email](mailto:levseqdb@gmail.com).
|
|
@@ -7,7 +7,7 @@ Figure 1: Overview of the LevSeq variant sequencing workflow using Nanopore tech
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
- Data to reproduce the results and to test are available on zenodo [](https://doi.org/10.5281/zenodo.13694463)
|
|
10
|
-
- A dockerized website and database for labs to locally host and visualize their data: website is available [here](https://
|
|
10
|
+
- A dockerized website and database for labs to locally host and visualize their data: website is available [here](https://levseqdb.streamlit.app/) and code to host locally [here](https://github.com/fhalab/LevSeq_db)
|
|
11
11
|
|
|
12
12
|
## Setup
|
|
13
13
|
|
|
@@ -125,3 +125,7 @@ For more details or trouble shooting please look at our [computational_protocols
|
|
|
125
125
|
#### Citing
|
|
126
126
|
|
|
127
127
|
If you have found LevSeq useful, please cite out [paper](https://doi.org/10.1101/2024.09.04.611255).
|
|
128
|
+
|
|
129
|
+
#### Contact
|
|
130
|
+
|
|
131
|
+
Leave a feature request in the issues or reach us via [email](mailto:levseqdb@gmail.com).
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
__title__ = 'levseq'
|
|
19
19
|
__description__ = 'LevSeq nanopore sequencing'
|
|
20
20
|
__url__ = 'https://github.com/fhalab/levseq/'
|
|
21
|
-
__version__ = '1.2.
|
|
21
|
+
__version__ = '1.2.7'
|
|
22
22
|
__author__ = 'Yueming Long, Emreay Gursoy, Ariane Mora, Francesca-Zhoufan Li'
|
|
23
23
|
__author_email__ = 'ylong@caltech.edu'
|
|
24
24
|
__license__ = 'GPL3'
|
|
@@ -275,11 +275,11 @@ def create_df_v(variants_df):
|
|
|
275
275
|
)
|
|
276
276
|
# Fill in 'Deletion' in 'aa_variant' column
|
|
277
277
|
df_variants_.loc[
|
|
278
|
-
df_variants_["nc_variant"] == "
|
|
279
|
-
] = "
|
|
278
|
+
df_variants_["nc_variant"] == "#DEL#", "aa_variant"
|
|
279
|
+
] = "#DEL#"
|
|
280
280
|
df_variants_.loc[
|
|
281
|
-
df_variants_["nc_variant"] == "
|
|
282
|
-
] = "
|
|
281
|
+
df_variants_["nc_variant"] == "#INS#", "aa_variant"
|
|
282
|
+
] = "#INS#"
|
|
283
283
|
|
|
284
284
|
# Compare aa_variant with translated refseq and generate Substitutions column
|
|
285
285
|
df_variants_["Substitutions"] = df_variants_.apply(get_mutations, axis=1)
|
|
@@ -291,7 +291,7 @@ def create_df_v(variants_df):
|
|
|
291
291
|
# Fill in Deletion into Substitutions Column, keep #N.A.# unchanged
|
|
292
292
|
for i in df_variants_.index:
|
|
293
293
|
if df_variants_["nc_variant"].iloc[i] == "Deletion":
|
|
294
|
-
df_variants_.Substitutions.iat[i] = df_variants_.Substitutions.iat[i].replace("", "
|
|
294
|
+
df_variants_.Substitutions.iat[i] = df_variants_.Substitutions.iat[i].replace("", "#DEL#")
|
|
295
295
|
elif df_variants_["nc_variant"].iloc[i] == "#N.A.#":
|
|
296
296
|
df_variants_.Substitutions.iat[i] = "#N.A.#"
|
|
297
297
|
|
|
@@ -363,9 +363,9 @@ def create_nc_variant(variant, refseq):
|
|
|
363
363
|
elif variant == "#PARENT#":
|
|
364
364
|
return refseq
|
|
365
365
|
elif "DEL" in variant:
|
|
366
|
-
return "
|
|
366
|
+
return "#DEL#"
|
|
367
367
|
elif variant == '+':
|
|
368
|
-
return "
|
|
368
|
+
return "#INS#"
|
|
369
369
|
else:
|
|
370
370
|
mutations = variant.split("_")
|
|
371
371
|
nc_variant = list(refseq)
|
|
@@ -465,7 +465,7 @@ def process_ref_csv(cl_args, tqdm_fn=tqdm.tqdm):
|
|
|
465
465
|
logging.info(f"Fasta file for {name} already exists. Skipping write.")
|
|
466
466
|
|
|
467
467
|
barcode_path = filter_bc(cl_args, name_folder, i)
|
|
468
|
-
output_dir = Path(result_folder) / "
|
|
468
|
+
output_dir = Path(result_folder) / f"{cl_args['name']}_fastq"
|
|
469
469
|
output_dir.mkdir(parents=True, exist_ok=True)
|
|
470
470
|
|
|
471
471
|
if not cl_args["skip_demultiplexing"]:
|
|
@@ -491,17 +491,25 @@ def process_ref_csv(cl_args, tqdm_fn=tqdm.tqdm):
|
|
|
491
491
|
continue
|
|
492
492
|
|
|
493
493
|
variant_df.to_csv(variant_csv_path, index=False)
|
|
494
|
-
return variant_df
|
|
494
|
+
return variant_df, ref_df
|
|
495
495
|
|
|
496
496
|
# Main function to run LevSeq and ensure saving of intermediate results if an error occurs
|
|
497
497
|
def run_LevSeq(cl_args, tqdm_fn=tqdm.tqdm):
|
|
498
498
|
result_folder = create_result_folder(cl_args)
|
|
499
|
+
# Ref folder for saving ref csv file
|
|
500
|
+
ref_folder = os.path.join(result_folder, "ref")
|
|
501
|
+
os.makedirs(ref_folder, exist_ok=True)
|
|
502
|
+
|
|
499
503
|
configure_logging(result_folder)
|
|
504
|
+
logging.info("Logging configured. Starting program.")
|
|
500
505
|
|
|
501
506
|
variant_df = pd.DataFrame(columns=["barcode_plate", "name", "refseq", "variant"])
|
|
502
507
|
|
|
503
508
|
try:
|
|
504
|
-
variant_df = process_ref_csv(cl_args, tqdm_fn)
|
|
509
|
+
variant_df, ref_df = process_ref_csv(cl_args, tqdm_fn)
|
|
510
|
+
ref_df_path = os.path.join(ref_folder, cl_args["name"]+".csv")
|
|
511
|
+
ref_df.to_csv(ref_df_path, index=False)
|
|
512
|
+
|
|
505
513
|
if variant_df.empty:
|
|
506
514
|
logging.warning("No data found during CSV processing. The CSV is empty.")
|
|
507
515
|
except Exception as e:
|
|
@@ -37,11 +37,12 @@ The variant caller starts from demultiplexed fastq files.
|
|
|
37
37
|
3) Call variant with soft alignment
|
|
38
38
|
|
|
39
39
|
'''
|
|
40
|
-
|
|
41
|
-
logging.basicConfig(level=logging.WARNING, format='%(asctime)s - %(levelname)s - %(message)s')
|
|
40
|
+
|
|
42
41
|
logger = logging.getLogger(__name__)
|
|
43
|
-
#
|
|
44
|
-
|
|
42
|
+
logger.setLevel(logging.WARNING) # Set default level for this module
|
|
43
|
+
# Use the logger in this file
|
|
44
|
+
logger.warning("This is a warning message.")
|
|
45
|
+
logger.info("This won't show unless logging is configured to INFO elsewhere.")
|
|
45
46
|
|
|
46
47
|
class VariantCaller:
|
|
47
48
|
"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: levseq
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.7
|
|
4
4
|
Home-page: https://github.com/fhalab/levseq/
|
|
5
5
|
Author: Yueming Long, Emreay Gursoy, Ariane Mora, Francesca-Zhoufan Li
|
|
6
6
|
Author-email: ylong@caltech.edu
|
|
@@ -54,7 +54,7 @@ Figure 1: Overview of the LevSeq variant sequencing workflow using Nanopore tech
|
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
- Data to reproduce the results and to test are available on zenodo [](https://doi.org/10.5281/zenodo.13694463)
|
|
57
|
-
- A dockerized website and database for labs to locally host and visualize their data: website is available [here](https://
|
|
57
|
+
- A dockerized website and database for labs to locally host and visualize their data: website is available [here](https://levseqdb.streamlit.app/) and code to host locally [here](https://github.com/fhalab/LevSeq_db)
|
|
58
58
|
|
|
59
59
|
## Setup
|
|
60
60
|
|
|
@@ -172,3 +172,7 @@ For more details or trouble shooting please look at our [computational_protocols
|
|
|
172
172
|
#### Citing
|
|
173
173
|
|
|
174
174
|
If you have found LevSeq useful, please cite out [paper](https://doi.org/10.1101/2024.09.04.611255).
|
|
175
|
+
|
|
176
|
+
#### Contact
|
|
177
|
+
|
|
178
|
+
Leave a feature request in the issues or reach us via [email](mailto:levseqdb@gmail.com).
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|