diff --git a/main.py b/main.py new file mode 100644 index 0000000000000000000000000000000000000000..8c8a1dc68ef380c8a34c609db02c3f95668e744c --- /dev/null +++ b/main.py @@ -0,0 +1,47 @@ +import argparse +from alignement import Alignement # Import de ta classe Alignement +from reads import * +from Sequence import * +from concat import * + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("-g", "--genome", help="FASTA genome file", default="/home/m1miso/pacome.riobe.etu" + "/PycharmProjects" + "/pythonProject_petitebete/petitgenome" + ".fna.gz") + parser.add_argument("-q", "--query", help="FASTQ.gz file", default="/home/m1miso/pacome.riobe.etu" + "/PycharmProjects/pythonProject_petitebete" + "/petitquery.fastq.gz") + parser.add_argument("-o", "--out", help="Output file", default="/home/m1miso/pacome.riobe.etu/PycharmProjects" + "/pythonProject_petitebete/output.txt") + parser.add_argument("-k", "--taille_kmers", type=int, help="Size of k-mers", default=11) + args = parser.parse_args() + + G = "/home/m1miso/pacome.riobe.etu/PycharmProjects/pythonProject_petitebete/petitgenome.fna.gz" + Q = "/home/m1miso/pacome.riobe.etu/PycharmProjects/pythonProject_petitebete/petitquery.fastq.gz" + + genome = Read_file(G) + query = Read_file(Q) + output = "/home/m1miso/pacome.riobe.etu/PycharmProjects/pythonProject_petitebete/queryconcat.txt" + query.concat_fasta(output) + + qc_object = Concat(output) + qc_sequence = Sequence(qc_object.get_sequence()) + + with open(args.out, "w") as output_file: + output_file.write("Read_ID\tScore\tQuery_Align\tGenome_Align\n") # En-tête du fichier TSV + + kmers = qc_sequence.kmers(args.taille_kmers) + for n in range(genome.__len__()): + read = genome.get_read(n) + alignement = Alignement(Sequence(qc_object.get_sequence()), Sequence(read), args.taille_kmers) + result = alignement.align_sequences() + + if result is not None: + score, aligned_query, aligned_genome = result + output_file.write(f"{score}\t{aligned_query}\t{aligned_genome}\n") + + print(f"Alignment done ! Results saved at {args.out}") +