Skip to content
Snippets Groups Projects
Commit 245c894d authored by Amandine  PERRIN's avatar Amandine PERRIN
Browse files

Merge branch 'dev' of gitlab.pasteur.fr:aperrin/pipeline_annotation into dev

parents 38488d6f 0a27bde9
No related branches found
No related tags found
No related merge requests found
Pipeline #34072 passed
...@@ -226,8 +226,7 @@ def write_genome_file(listdir, aldir, dname, strain, member, several): ...@@ -226,8 +226,7 @@ def write_genome_file(listdir, aldir, dname, strain, member, several):
"option -F (or --force).".format(strain, geprtfile, gegenfile)) "option -F (or --force).".format(strain, geprtfile, gegenfile))
return return
# If one of the 2 files already exists, overwrite both files (same behaviour # If at least one of the 2 files already exists, overwrite both files
# as if no file exists)
with open(gegenfile, "w") as gegf, open(geprtfile, "w") as gepf: with open(gegenfile, "w") as gegf, open(geprtfile, "w") as gepf:
for mem, fam in member.items(): for mem, fam in member.items():
if strain not in several[fam]: if strain not in several[fam]:
...@@ -256,8 +255,12 @@ def write_missing_genomes(fam_genomes, several, all_genomes, aldir, dname): ...@@ -256,8 +255,12 @@ def write_missing_genomes(fam_genomes, several, all_genomes, aldir, dname):
name of dataset name of dataset
""" """
for fam, genomes in fam_genomes.items(): for fam, genomes in fam_genomes.items():
missfile = os.path.join(aldir, dname + "-current." + fam + ".miss.lst") # File where missing genomes will be written
missfile = os.path.join(aldir, f"{dname}-current.{fam}.miss.lst")
with open(missfile, "w") as mff: with open(missfile, "w") as mff:
# missing = missing or several members:
# miss: all genomes - genomes in the family
# several: add to 'miss' genomes with several members in the family
missing = (set(all_genomes) - set(genomes)).union(set(several[fam])) missing = (set(all_genomes) - set(genomes)).union(set(several[fam]))
if missing: if missing:
mff.write("\n".join(missing) + "\n") mff.write("\n".join(missing) + "\n")
ESCO4_00001 Aldir/TEST6-current.1.gen ESCO4_00001 test/data/align/generated_by_unit-tests/Aldir/test_write_genome-current.1.gen
ESCO4_00003 Aldir/TEST6-current.3.gen ESCO4_00003 test/data/align/generated_by_unit-tests/Aldir/test_write_genome-current.3.gen
ESCO4_00004 Aldir/TEST6-current.2.gen ESCO4_00004 test/data/align/generated_by_unit-tests/Aldir/test_write_genome-current.2.gen
ESCO4_00001 Aldir/TEST6-current.1.prt ESCO4_00001 test/data/align/generated_by_unit-tests/Aldir/test_write_genome-current.1.prt
ESCO4_00003 Aldir/TEST6-current.3.prt ESCO4_00003 test/data/align/generated_by_unit-tests/Aldir/test_write_genome-current.3.prt
ESCO4_00004 Aldir/TEST6-current.2.prt ESCO4_00004 test/data/align/generated_by_unit-tests/Aldir/test_write_genome-current.2.prt
This diff is collapsed.
...@@ -71,3 +71,20 @@ def compare_order_content(file1, file2): ...@@ -71,3 +71,20 @@ def compare_order_content(file1, file2):
print(f"'{line1}' vs {line2} do not correspond.") print(f"'{line1}' vs {line2} do not correspond.")
return False return False
return True return True
def compare_file_to_list(file1, exp):
"""
Check that the file contains the same lines as the list 'exp', in any order
"""
missing = []
with open(file1, "r") as outf:
for line in outf:
missing.append(line.strip())
if len(missing) != len(exp):
print(f"{len(missing)} lines in {file1}, {len(exp)} lines expected")
return False
if set(missing) != set(exp):
print("Not same lines")
return False
return True
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment