diff --git a/HISTORY.md b/HISTORY.md index 46c57cb..a9ba7d0 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,26 @@ # History +1.8.1 (2025-09-27) +------------------ + +* Fixes minor issues with `--skip_qc` (#73) and `--no_chromosome` (#74) + +1.8.0 (2025-06-12) +------------------ + +* Fixes issues with `--skip_qc` when using non gzipped FASTQ reads (#60) +* Fixes issue with fastp versions #64 +* Add skip_mash to run Plassembler without the database mash search #61 + +1.8.0 (2025-06-23) +------------------ + +* Relaxes Python version dependency to >=3.8,<3.14 from >=3.8,<3.10 +* Minor change to log file error behaviour #69 +* Thanks @rrwick for both changes + +* Bug fix with `--force` for `plassembler download`, which will only remove the output directory if `--force` is specified (#49). + 1.6.2 (2024-03-08) ------------------ diff --git a/pyproject.toml b/pyproject.toml index 79e163d..5f9153b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "plassembler" -version = "1.8.0" # change VERSION too +version = "1.8.1" # change VERSION too description = "Quickly and accurately assemble plasmids in hybrid sequenced bacterial isolates" authors = ["George Bouras "] license = "MIT" diff --git a/src/plassembler/__init__.py b/src/plassembler/__init__.py index cdcac8b..74decf9 100644 --- a/src/plassembler/__init__.py +++ b/src/plassembler/__init__.py @@ -72,6 +72,9 @@ def begin_plassembler(outdir, force): # get start time start_time = time.time() + # ensure sys exit if error + logger.add(lambda _: sys.exit(1), level="ERROR") + # instantiate the outdir # remove outdir on force if force is True: @@ -94,8 +97,6 @@ def begin_plassembler(outdir, force): log_file = os.path.join(outdir, f"plassembler_{start_time}.log") # adds log file logger.add(log_file) - # ensure sys exit if error - logger.add(lambda _: sys.exit(1), level="ERROR") logger.info(f"You are using Plassembler version {get_version()}") logger.info("Repository homepage is https://github.com/gbouras13/plassembler") @@ -1276,6 +1277,11 @@ def long_options(func): help="Use --nano-raw for Flye. \nDesigned for Guppy fast configuration reads. \nBy default, Flye will assume SUP or HAC reads and use --nano-hq.", is_flag=True, ), + click.option( + "--keep_fastqs", + help="Whether you want to keep FASTQ files containing putative plasmid reads \nand long reads that map to multiple contigs (plasmid and chromosome).", + is_flag=True, + ), click.option( "--keep_chromosome", help="If you want to keep the chromosome assembly.", @@ -1341,6 +1347,7 @@ def long( pacbio_model, skip_qc, raw_flag, + keep_fastqs, keep_chromosome, flye_directory, flye_assembly, @@ -1371,6 +1378,7 @@ def long( logger.info(f"--force is {force}") logger.info(f"--skip_qc is {skip_qc}") logger.info(f"--raw_flag is {raw_flag}") + logger.info(f"--keep_fastqs is {keep_fastqs}") logger.info(f"--pacbio_model is {pacbio_model}") logger.info(f"--keep_chromosome is {keep_chromosome}") logger.info(f"--flye_directory is {flye_directory}") @@ -1518,7 +1526,7 @@ def long( outdir, prefix, False, # unicycler success - False, # keep fastqs + False, # keep fastqs will be false here as no chromosome False, # assembled mode True, # long only False, # raven false @@ -1730,7 +1738,7 @@ def long( outdir, prefix, unicycler_success, # unicycler success - False, # keep fastqs + keep_fastqs, # keep fastqs False, # assembled mode True, # long only False, # no raven diff --git a/src/plassembler/utils/VERSION b/src/plassembler/utils/VERSION index 27f9cd3..a8fdfda 100644 --- a/src/plassembler/utils/VERSION +++ b/src/plassembler/utils/VERSION @@ -1 +1 @@ -1.8.0 +1.8.1 diff --git a/src/plassembler/utils/cleanup.py b/src/plassembler/utils/cleanup.py index 2bb4fd4..82ac743 100644 --- a/src/plassembler/utils/cleanup.py +++ b/src/plassembler/utils/cleanup.py @@ -81,6 +81,7 @@ def move_and_copy_files( :param out_dir: Output Directory :param prefix: prefix :param unicycler_success_flag: whether or not unicycler worked + :param keep_fastqs: whether to keep FASTQs :param assembled_mode: whether or not unicycler worked :param long_only: whether or not unicycler worked :param use_raven: whether or not unicycler worked diff --git a/src/plassembler/utils/no_assembly.py b/src/plassembler/utils/no_assembly.py index 4c6e4bc..09a0280 100644 --- a/src/plassembler/utils/no_assembly.py +++ b/src/plassembler/utils/no_assembly.py @@ -39,4 +39,4 @@ def create_fake_flye_chromosome_info(assembly_info_file: Path) -> None: } flye_info_df = pd.DataFrame(data) - flye_info_df.to_csv(assembly_info_file, index=False) + flye_info_df.to_csv(assembly_info_file, sep="\t", index=False) diff --git a/tests/test_end_to_end.py b/tests/test_end_to_end.py index 4d88550..f85e73a 100644 --- a/tests/test_end_to_end.py +++ b/tests/test_end_to_end.py @@ -287,6 +287,15 @@ def test_plassembler_long(self): exec_command(cmd) remove_directory(outdir) + def test_plassembler_long_keep_fastqs(self): + """test plassembler long""" + longreads: Path = f"{end_to_end}/input_fastq.gz" + chromosome = 50000 + outdir: Path = f"{end_to_end}/test_out_keep_fastqs" + cmd = f"plassembler long -l {longreads} -c {chromosome} -d {plassembler_db_dir} -o {outdir} -t 8 -f --keep_fastqs" + exec_command(cmd) + remove_directory(outdir) + def test_plassembler_long_skipmash(self): """test plassembler long --skip_mash - no need for -d""" longreads: Path = f"{end_to_end}/input_fastq.gz"