COLAB
https://colab.research.google.com/

Instalation of Biopython on colab
!pip install Bio


Files can be loaded by:
- left side menu, section files and upload
- by importing 'from google.colab import files'

Function kmers:
all_kmers('CTACGTCACACACAGT', 3)
['CTA',
 'TAC',
 'ACG',
 'CGT',
 'GTC',
 'TCA',
 'CAC',
 'ACA',
 'CAC',
 'ACA',
 'CAC',
 'ACA',
 'CAG',
 'AGT']

For instance: all_kmers could be as short as "[s[i:i+k] for i in range(len(s) - k + 1)]"

kmers = all_kmers('ATGGCGTGCA', 3)
['ATG', 'TGG', 'GGC', 'GCG', 'CGT', 'GTG', 'TGC', 'GCA']

hamilton_graph(kmers)
{'ATG': {'TGC', 'TGG'},
 'TGG': {'GGC'},
 'GGC': {'GCA', 'GCG'},
 'GCG': {'CGT'},
 'CGT': {'GTG'},
 'GTG': {'TGC', 'TGG'},
 'TGC': {'GCA', 'GCG'},
 'GCA': set()}
 
hamilton_paths(hamilton_graph(kmers))
{('ATG', 'TGC', 'GCG', 'CGT', 'GTG', 'TGG', 'GGC', 'GCA'),
 ('ATG', 'TGG', 'GGC', 'GCG', 'CGT', 'GTG', 'TGC', 'GCA')}

euler_graph(kmers)
{'AT': ['TG'],
 'TG': ['GG', 'GC'],
 'GG': ['GC'],
 'GC': ['CG', 'CA'],
 'CG': ['GT'],
 'GT': ['TG']}
 
graph = euler_graph(kmers)
find_start_end_vertex(graph)
('AT', None)

euler_path(graph, 'AT')
['AT', 'TG', 'GC', 'CG', 'GT', 'TG', 'GG', 'GC', 'CA']