Skip to content
Snippets Groups Projects
Commit 41decfab authored by Soltane Maxime's avatar Soltane Maxime
Browse files

create_hash_table

parent 4e27840b
No related branches found
No related tags found
No related merge requests found
...@@ -106,7 +106,10 @@ def construction_mphf(set_kmer, n, gamma=2, nb_niveaux=3): ...@@ -106,7 +106,10 @@ def construction_mphf(set_kmer, n, gamma=2, nb_niveaux=3):
h = abs(hash(kmer)) h = abs(hash(kmer))
# On l'ajoute à la fin du tableau final # On l'ajoute à la fin du tableau final
mphf.append([h, max_rang]) mphf.append([h, max_rang])
# On trie la mphf par rang
mphf = sorted(mphf, key = lambda x:x[1])
return mphf return mphf
...@@ -138,8 +141,9 @@ def get_hash_mphf(mphf, kmer): ...@@ -138,8 +141,9 @@ def get_hash_mphf(mphf, kmer):
return -1 return -1
def create_hash_table(set_kmer, n): def create_hash_table(set_kmer, n):
""" for _ in range(len(index)): """
c = grand_tableau.count(-1)chage. for _ in range(len(index)):
c = grand_tableau.count(-1)chage.
Returns: Returns:
list: Table de hachage créée à partir des k-mers list: Table de hachage créée à partir des k-mers
...@@ -154,12 +158,18 @@ def create_hash_table(set_kmer, n): ...@@ -154,12 +158,18 @@ def create_hash_table(set_kmer, n):
#>>> all(kmer in tableau for kmer in set_kmer) #>>> all(kmer in tableau for kmer in set_kmer)
#True #True
""" """
pass # TODO modifier
# créer la mphf pour les kmers # créer la mphf pour les kmers
mphf = construction_mphf(set_kmer, n)
# initialiser un tableau de taille n (une liste) # initialiser un tableau de taille n (une liste)
# écrire les kmers aux adresses du tableau données par la mphf tableau = [None]*n
# écrire les kmers aux adresses du tableau données par la mphf
for kmer in set_kmer:
h = abs(hash(kmer))
rang = get_hash_mphf(mphf, kmer)
tableau[rang] = kmer
# retourner le tableau et la mphf # retourner le tableau et la mphf
return tableau, mphf
...@@ -212,4 +222,6 @@ if __name__ == '__main__': ...@@ -212,4 +222,6 @@ if __name__ == '__main__':
kmer = '5' kmer = '5'
print(abs(hash(kmer))) print(abs(hash(kmer)))
h= get_hash_mphf(mphf, kmer) h= get_hash_mphf(mphf, kmer)
print(h) print(h)
\ No newline at end of file print("hello world")
print(create_hash_table(set_kmer, 10))
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment