diff --git a/src/dgenies/lib/functions.py b/src/dgenies/lib/functions.py
index e3bd5a7997568b033d2bad73698882c17ba58bba..a33cc25e98024ddb9bfb9d80b34e7245170c1f3a 100644
--- a/src/dgenies/lib/functions.py
+++ b/src/dgenies/lib/functions.py
@@ -166,8 +166,8 @@ class Functions:
         is_compressed = fasta_file.endswith(".gz")
         if is_compressed:
             fasta_file = Functions.uncompress(fasta_file)
-        seq = SeqIO.index(fasta_file, "fasta")
         fasta_file_o = fasta_file + ".sorted"
+        seq = SeqIO.index(fasta_file, "fasta")
         with open(fasta_file_o, "w") as fasta_out:
             for name, props in index.items():
                 sequence = seq[name]
@@ -180,6 +180,7 @@ class Functions:
                     sequence.name = s_name
                     sequence.description = s_description
                 SeqIO.write(sequence, fasta_out, "fasta")
+        seq.close()
         if is_compressed:
             os.remove(fasta_file)
         if compress:
diff --git a/src/dgenies/lib/paf.py b/src/dgenies/lib/paf.py
index c8ca29ba51c1128c1b4616d615a66370dc26f6f3..9a8c6fa25167699c1aed5d9b7d6a432349ee6e4d 100644
--- a/src/dgenies/lib/paf.py
+++ b/src/dgenies/lib/paf.py
@@ -758,6 +758,7 @@ class Paf:
                             seq = query_f[contig]
                             seq.id += "_unaligned"
                             SeqIO.write(seq, out, "fasta")
+                query_f.close()
                 if uncompressed:
                     os.remove(query_fasta)
             status = "success"