diff --git a/reads.py b/reads.py
index 3916fc69a9a7c87382585acaaa9ccf8288cc85bf..bd8719aa5f7d4d52e75063aa3e322908ab3c967b 100644
--- a/reads.py
+++ b/reads.py
@@ -11,6 +11,7 @@ class Read_file:
         constructeur d'un objet Read
         :param file: str, le chemin vers un fichier compressé fastq ou fasta
         """
+        self.nb_bases = None
         self.it = None
         self.file = file
         self.extension = "rt"
@@ -19,6 +20,7 @@ class Read_file:
         if '.fna.gz' in self.file or '.fasta' in self.file:
             self.method = "fasta"
 
+
     def __len__(self) -> int:
         """
         permet de compter le nombre de reads dans un objet Read
@@ -28,8 +30,34 @@ class Read_file:
         with gzip.open(self.file, self.extension) as fichier:
             for _ in SeqIO.parse(fichier, self.method):
                 count += 1
+        self.len = count
         return count
 
+    def nombre_bases(self):
+        """
+
+        :return:
+        """
+        n = 0
+        while self.lecture(n) is not None:
+            self.lecture(n)
+            n += 1
+        self.nb_bases = n
+        return n
+
+    def sous_sequence(self, position, taille):
+        """
+        Renvoie la sous sequence démarrant à la position donnee, et de taille donnee.
+        Sert a recuperer les kmers et les seeds
+        :param position: int, position de depart
+        :param taille: int, taille de la sous-sequence
+        :return: str, la sous sequence
+        """
+        sous_sequence = ""
+        for n in range(position, taille):
+            sous_sequence += self.lecture(n)
+        return sous_sequence
+
     def next(self):
         """
         appelle l'itérateur
@@ -56,6 +84,19 @@ class Read_file:
             seq = self.next()
             kmer = seq.kmers()
 
+    def kmers(self, k: int):
+        """
+        Renvoie la liste des kmers, sans trop de redondance. chaque position est couverte par deux kmers
+        :param k: int, taille des kmers
+        :return: list, les positions des kmers dans la sequence
+        """
+        print("kmers")
+        list_kmers = []
+        for n in range(0, self.nombre_bases() - k, int(k/2)):
+            list_kmers.append(n)
+        return list_kmers
+
+
     def concat_fasta(self, output):
         """
 
@@ -66,18 +107,43 @@ class Read_file:
             with gzip.open(self.file, self.extension) as fichier:
                 record = SeqIO.parse(fichier, self.method)
                 for n in range(0, self.__len__()):
-                    out_fasta.write(str(record.__next__().seq))
+                    out_fasta.write(str(record.__next__().seq) + "\n")
         print(f"fin, resultat dans {output}")
 
+    def lecture(self, pos):
+        """
+        permet de parcourir la serie de reads de query comme une sequence unique
+        :return: str, la base à la position donnée
+        """
+        total_bases = 0  # Compteur global de bases
+
+        with gzip.open(self.file, self.extension) as f:
+            for i, line in enumerate(f):
+                if i % 4 == 1:  # Ligne de séquence (FASTQ format)
+                    line = line.strip()
+                    seq_length = len(line)
+
+                    if total_bases <= pos < total_bases + seq_length:
+                        return line[pos - total_bases]  # Trouvé
+
+                    total_bases += seq_length  # Mise à jour du compteur global
+
+        return None
+
 
 if __name__ == "__main__":
-    G = "/home/m1miso/pacome.riobe.etu/PycharmProjects/pythonProject_petitebete/petitgenome.fna.gz"
-    Q = "/home/m1miso/pacome.riobe.etu/PycharmProjects/pythonProject_petitebete/petitquery.fastq.gz"
+    G = "C:/Users/pacom/PycharmProjects/PythonProject_petitebete/genome.fastq.gz"
+    Q = "C:/Users/pacom/PycharmProjects/PythonProject_petitebete/query.fna.gz"
     genome = Read_file(G)
     query = Read_file(Q)
 
     print("___")
     print("len")
     print("___")
-    print(query.__len__())
+    k = 11
+    kmers = query.kmers(k)
+    print(kmers)
+    #for n in kmers:
+     #   print(query.sous_sequence(n, k))
 
+    print(query.sous_sequence(0,30))
\ No newline at end of file