Skip to content
Snippets Groups Projects
Commit a134e725 authored by Amaury LEROY's avatar Amaury LEROY
Browse files

Create tree_generator.py

parent 9fad68fe
No related branches found
No related tags found
No related merge requests found
# -*- coding: utf-8 -*-
"""
Created on Tue Jan 29 14:59:19 2019
@author: Amaury Leroy
"""
import numpy as np
from Bio.SeqRecord import SeqRecord
from Bio.Cluster import treecluster
import alignementseq
from scipy.cluster.hierarchy import average, dendrogram
seqs = [SeqRecord('TAACCCCAAAAGAACCAGA'), SeqRecord('TTCTGTAGTAGAGATGGAATTAAGAAAAAACCATCAACTATAACCCCAAAAGAACCAGA'), SeqRecord('TTCTGTAGTAGAGATGGAATTAAGAAAAAACCATCAACTATAACCCCAAAAGAACCAGA'),SeqRecord('GTAGTAGAGATGGAATTAAGAAAAAACCATCAACTATAACCCCAAGAGAACCAGA'), SeqRecord('GAGCCGGATGAGAAGAAACTCTCATGTCCGGTTCTGTAGTAGAGATGGAATTAAGAAAAAACCATCAACTATAACCCCAAGAGAACCAGA'), SeqRecord('TTTTCATTCGCGAGGAGCCGGATGAGAAGAAACTCTCATGTCCGGTTCTGTAGTAGAGATGGAATTAAGAAAAAACCATCAACTATAACCCCAAGAGAACCAGA')]
#Arguments : une liste de séquences, une fonction d'alignement
score_gap = -8
def tree_build(seqs, align):
len_seqs= [len(seq) for seq in seqs]
M = np.zeros((len(seqs),len(seqs)))
for i in range (len(seqs)):
for j in range (i):
M[i][j], a, b = align(seqs[i], seqs[j])
M[i][j] = 1-abs(M[i][j]/(max(len_seqs)*(11-score_gap)))
print(type(M), M)
# tree = treecluster(None, distancematrix=M, method = 'a', dist = 'e',)
tree= average(M)
return tree
tree = tree_build(seqs, alignementseq.align2steps)
print(tree)
dn = dendrogram(tree)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment