First commit

master
Amine GHOZLANE 2019-10-17 21:47:21 +02:00
commit 069e99e46b
9 changed files with 3059 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
__py_cache__
*.pyc

151
data/eva71.fna Normal file
View File

@ -0,0 +1,151 @@
>EVA71_BrCr_U22521 EVA71
TTAAAACAGCTGTGGGTTGTCACCCACCCACAGGGTCCACTGGGCGCT
AGTACACTGGTATCTCGGTACCTTTGTACGCCTGTTTTATACCCCCTCCC
TGATTTGCAACTTAGAAGCAACGCAAACCAGATCAATAGTAGGT
GTGACATACCAGTCGCATCTTGATCAAGCACTTCTGTATCCCCGGACCGA
GTATCAATAGACTGTGCACACGGTTGAAGGAGAAAACGTCCGTTACCCGG
CTAACTACTTCGAGAAGCCTAGTAACGCCATTGAAGTTGCAGAGTGTTTC
GCTCAGCACTCCCCCCGTGTAGATCAGGTCGATGAGTCACCGCATTC
CCCACGGGCGACCGTGGCGGTGGCTGCGTTGGCGGCCTGCCTATGGGGTA
ACCCATAGGACGCTCTAATACGGACATGGCGTGAAGAGTCTATTGAGCTA
GTTAGTAGTCCTCCGGCCCCTGAATGCGGCTAATCCTAACTGCGGAGCAC
ATACCCTTAATCCAAAGGGCAGTGTGTCGTAACGGGCAACTCTGCAGCGG
AACCGACTACTTTGGGTGTCCGTGTTTCTTTTTATTCTTGTATTGGCTGC
TTATGGTGACAATTAAAGAATTGTTACCATATAGCTATTGGATTGGCCAT
CCAGTGTCAAACAGAGCTATTGTATATCTCTTTGTTGGATTCACACCTCT
CACTCTTGAAACGTTACACACCCTCAATTACATTATACTGCTGAACAC
GAAGCGATGGGCTCCCAGGTCTCCACACAGCGATCCGGCTCGCAT
GAGAATTCCAACTCAGCCACGGAAGGCTCCACTATAAATTACACAACCAT
TAATTACTACAAAGACTCGTATGCTGCCACTGCTGGAAAGCAAAGTCTCA
AACAAGATCCTGACAAGTTTGCGAACCCTGTGAAGGACATCTTTACTGAA
ATGGCAGCGCCCTTAAAGTCTCCCTCTGCTGAAGCATGTGGCTATAGCGA
CCGAGTGGCACAGCTTACCATTGGAAATTCCACCATTACTACACAAGAAG
CAGCAAACATAATAGTTGGGTATGGTGAGTGGCCTTCATACTGCTCTGAT
AATGATGCAACAGCGGTAGACAAACCTACACGGCCTGATGTCTCAGTAAA
TAGATTTTACACGCTAGACACTAAGCTATGGGAGAAATCATCCAAGGGGT
GGTACTGGAAGTTCCCAGATGTACTGACTGAAACCGGAGTTTTTGGTCCA
AATGCACAATTTCACTACTTATACCGTTCAGGGTTCTGCATCCACGTTCA
ATGTAACGCTAGCAAATTTCACCAAGGGGCGCTACTCGTTGCGGTATTGC
CCGAGTATGTCATTGGAACAGTGGCAGGCGGCACAGGCACAGA
GAACAGTCACCCTCCTTATAAACAAACCCAACCCGGCGCTGATGG
ATTTGAATTACAACATCCATATGTTCTTGATGCTGGAATTCCAATATCTC
AGTTGACAGTGTGCCCTCACCAGTGGATCAATTTACGAACCAACAATTGT
GCCACCATAATAGTGCCATACATGAACACACTACCTTTTGATTCCGCATT
GAACCACTGTAATTTCGGACTATTGGTGGTGCCTATCAGCCCGCTGGAT
TTCGACCAAGGGGCGACACCGGTAATTCCTATCACTATCACGTTGGCTCC
GATGTGTTCTGAGTTTGCGGGTCTCAGGCAGGCAGTTACGCAGGGTTTTC
CCACTGAATTGAAACCTGGCACTAATCAGTTCTTAACCACGGATGATGGT
GTGTCAGCACCTATATTGCCAAATTTCCACCCCACCCCGTGCATTCACAT
ACCTGGCGAGGTTAGAAACTTACTAGAACTGTGCCAGGTAGAAACCATTT
TAGAAGTCAACAATGTGCCCACCAACGCAACCAGTTTGATGGAAAGGCTA
CGGTTTCCAGTGTCAGCCCAAGCAGGGAAAGGTGAGTTGTGTGCAGTGTT
CAGGGCCGACCCTGGGAGGGATGGTCCTTGGCAATCCACCATGCTAGGCC
AGTTGTGTGGATATTACACCCAATGGTCAGGGTCTTTGGAAGTCACTTTT
ATGTTCACCGGATCCTTTATGGCAACTGGTAAAATGCTTATAGCTTACAC
ACCCCCAGGGGGCCCTTTGCCTAAAGATAGAGCCACAGCTATGCTGGGGA
CGCACGTCATCTGGGACTTTGGCTTGCAATCGTCCGTCACCCTCGTCATA
CCATGGATCAGTAACACTCACTATAGGGCGCATGCTCGAGATGGGGTGTT
TGATTACTACACCACAGGTTTGGTTAGTATATGGTACCAAACAAATTATG
TAGTCCCTATTGGAGCACCTAATACTGCCTATATAATAGCGTTGGCAGCA
GCCCAAAAGAATTTCACTATGAAATTGTGCAAGGACACCAGTGACATTTT
GGAAACGGCCACTATTCAAGGGGACAGAGTGGCAGATGTGATTGAGAGCT
CTATAGGAGATAGTGTGAGTAAGGCCCTCACCCCAGCTTTACCTGCACC
CACAGGCCCAGACACCCAAGTGAGCAGTCATCGCTTAGACACTGGAAA
AGTACCAGCACTTCAAGCCGCCGAAATCGGAGCTTCGTCGAATGCTAGTG
ATGAGAGTATGATTGAGACTCGGTGTGTTCTTAACTCACATAGCACAGCT
GAAACCACCCTTGATAGTTTCTTCAGCAGAGCAGGCTTAGTTGGGGAGAT
AGATCTTCCTCTAAAGGGCACCACCAATCCGAACGGGTATGCCAACTGGG
ACATAGACATAACCGGTTATGCGCAGATGCGCAGAAAAGTGGAACTATTC
ACCTATATGCGCTTTGACGCAGAGTTCACTTTTGTCGCGTGCACACCTAC
CGGAAGGGTCGTTCCACAGCTGCTTCAATACATGTTTGTTCCACCCGGGG
CCCCCAAACCAGACTCCAGAGACTCTTTGGCTTGGCCAACGGCCACGAAC
CCCTCAGTTTTTGTCAAATCATCCGACCCACCAGCACAAGTCTCAGTGCC
ATTTATGTCACCTGCAAGCGCATACCAATGGTTTTATGACGGATACCCTA
CATTTGGAGAGCACAAGCAAGAGAAGGATCTCGAGTATGGGGCATGCCCG
AATAACATGATGGGCACATTCTCAGTGCGGACTGTGGGATCGTCAAAGTC
AGAATATTCCTTAGTCATCAGAATATACATGAGAATGAAGCACGTCAGAG
CGTGGATACCTCGGCCGATGCGCAATCAGAACTATTTGTTCAAATCCAAC
CCAAACTATGCTGGTGATTCCATTAAACCAACTGGTACCAGCCGAA
CGGCAATCACTA
CGCTCGGGAAATTCGGTCAGCAGTCTGGGGCTATTTATGTGGGCAACTTT
AGGGTAGTAAACAGACACCTAGCCACCCATACTGACTGGGCCAACTTGGT
GTGGGAAGACAGCTCTAGAGACCTCCTAGTTTCTTCAACTACCGCTCAAG
GGTGTGACACCATTGCTCGATGTAACTGCCAAACCGGAGTGTATTACTGT
AACTCTCGCAGAAAACACTATCCAGTCAGTTTTTCGAAACCTAGTTTGGT
GTTTGTAGAAGCTAGTGAGTATTATCCAGCTAGATATCAGTCCCATCTTA
TGCTTGCTGAGGGCCATTCAGAACCTGGTGATTGTGGCGGTATTCTTAGA
TGCCAACACGGTGTGGTGGGAATTGTCTCCACTGGCGGAAGTGGCCTTGT
GGGATTTGCTGACGTTAGAGATCTTCTGTGGCTAGATGAGGAAGCGATGG
AGCAGGGGGTATCTGATTACATCAAAGGTCTCGGTCGAGCCTTCGGCACA
GGTTTCACTGACGCAGTGTCTAGGGAAGTGGAAGCGTTGAAGAACCACTT
AATCGGCTCCGAAGGGGCTGTTGAGAAGATCTTGAAGAACTTGGTGAAGC
TAATTTCAGCCTTAGTTATAGTCATCAGAAGTGATTATGATATGGTCACC
CTCACAGCCACACTAGCTCTGATCGGGTGCCACGGGAGTCCTTGGGCGTG
GATCAAATCAAAGACAGCTTCCATACTGGGCATTCCCATGGCACAAAAAC
AGAGTGCCTCATGGCTAAAGAAGTTCAATGACATGGCAAATGCTGCAAAA
GGGCTTGAGTGGATTTTCAACAAGATCAGTAAGTTCATTGACTGGCTTAA
AGAGAAGATCATTCCAGCTGCCAAAGAGAAAGTTGAGTTTTTGAACAACC
TAAAACAGCTCCCCTTGTTGGAGAACCAAGTCTCCAATCTTGAACAGTCT
GCTGCCTCACAAGAAGACTTAGAAGCTATGTTTGGTAATGTGATATATCT
GGCTCACTTTTGCCGCAAATTCCAACCACTCTACGCAACTGAGGCCAAGA
GAGTCTACGCTTTAGAGAAAAGGATGAATAACTACATGCAGTTCAAGAGC
AAACACCGTATTGAACCTGTATGCTTGATCATCAGAGGTTCCCCCGGAAC
GGGCAAATCGCTCGCCACAGGCATTATAGCTAGAGCCATTGCTGACAAGT
ATCGCTCTAGTGTATACTCACTCCCCCCAGACCCAGATCACTTTGATGGG
TATAAGCAACAGGTGGTCGCGGTCATGGATGATCTCTGCCAGAACCCGGA
CGGAAAAGACATGTCCCTATTTTGTCAAATGGTTTCTACAGTAGATTTTG
TACCACCCATGGCATCACTAGAGGAGAAAGGAGTGTCCTTCACCTCTAAG
TTTGTCATTGCATCGACCAATGCTAGTAACATCATAGTCCCCACAGTTTC
AGATTCAGATGCAATTCGCAGGCGATTCTATATGGACTGCGATATAGAAG
TGACAGATTCTTACAAGACAGACCTCGGTCGGCTGGACGCAGGTAGAGCT
GCCAAGCTTTGTACAGAAAATAACACTGCTAATTTTAAGAGATGCAGCCC
ACTGGTGTGTGGTAAGGCTATTCAGCTGAGAGACAGGAAGTCCAAAGTGA
GATATAGCGTCGACACCGTGGTATCGGAACTGATCAGAGAGTACAACAAT
AGATCTGCTATTGGGAATACTATAGAAGCACTCTTTCAAGGACCCCCTAA
ATTCAGGCCTATAAGAATTAGTCTCGAAGAAAAGCCAGCCCCAGATGCCA
TTAGCGATCTCCTCGCTAGTGTAGATAGCGAGGAGGTGCGTCAGTACTGC
AGGGAACAAGGCTGGATCATCCCTGAAACTCCCACCAATGTTGAGCGTCA
CCTCAATAGAGCAGTATTGGTAATGCAGTCCATCGCCACTGTGGTTGCAG
TTGTGTCTCTTGTTTATGTCATTTATAAGCTGTTTGCCGGGTTCCAGGGT
GCTTACTCTGGAGCGCCCAAGCCCATTCTCAAGAAGCCCGTGTTAAGAAC
AGCCACGGTCCAAGGGCCCAGCTTAGACTTCGCCTTGTCTCTTTTGAGGC
GCAACATTAGACAAGCGCAAACTGACCAAGGACACTTCACCATGCTAGGA
GTGCGAGATCGCCTAGCCATCCTGCCGCGCCACTCGCAACCAGGGAAGAC
CATCTGGGTAGAGCATAAATTAATCAATGTACTAGATGCAGTTGAGTTGG
TGGATGAGCAAGGTGTAAACTTGGAACTCACACTGGTAACTTTGGACACC
AATGAAAAATTTAGGGATATCACCAAGTGTATCCCAGAAGTGATCACCGG
GGCGAGTGACGCAACTCTAGTCATCAACACTGAGCACATTCCCTCAATGT
TTGTGCCGGTGGGTGACGTTGTGCAGTACGGTTTCTTGAACCTTAGTGGT
AAACCCACACACAGAACCATGATGTATAACTTCCCCACGAAGCCAGGACA
GTGTGGGGGGGTGGTTACCTCAGTTGGTAAGATCATTGGAATCCACATTG
GCGGGAATGGACGCCAGGCCTTTTGCGCTGGCCTAAAGAGGAGTTATTTT
GCCAGCGAGCAAGGAGAGATCCAGTGGATGAAGCCTAACAGAGAAACCGG
GAGGTTGAATATTAATGGTCCAACCCGAACTAAGCTGGAACCCAGTGTAT
TCCATGATGTGTTCGAGGGCAACAAGGAACCAGCGGTCCTGACTAGTAAG
GACCCCAGACTTGAGGTTGATTTTGAGCAAGCTTTGTTCTCCAAGTATGT
GGGTAACACCCTGCATGAACCTGATGAGTACGTGACACAGGCTGCTCTCC
ACTACGCAAATCAGCTGAAGCAACTGGACATCAACACCAGCAAGATGAGC
ATGGAAGAAGCGTGCTATGGCACAGAATATTTAGAAGCTATAGACTTGCA
CACCAGTGCTGGATACCCTTATAGTGCTTTGGGCATCAAGAAAAGAGACA
TCCTCGACCCAGTTACCAGAGACACCTCCAGGATGAAGTTATATATGGAT
AAGTATGGGTTGGACTTGCCTAATTCCACTTATGTAAAGGATGAGCTTAG
TTCTCTAGATAAGATCAGAAAAGGGGAGTCTCGCCTGATTGAGGCTAGCA
GCTTAAATGATCCTGTCTACCCTAGATTGACTTTTGGACACCTTTATGAA
GTGTTTCACGCCAACCCAGGGACTGTAACAGGATCTGCAGTTGGGTGCAA
CCCTGATGTATTTTGGAGCAAGTTACCAATTTTGTTACCGGGTTCACTCT
TTGCATTTGACTACTCAGGATATGATGCAAGCCTTAGTCCTGTGTGGTTC
AGAGCTCTAGAGTTGGTTCTGAGAGAGATCGGTTACTCGGAGGAGGCTGT
GTCACTCATAGAAGGGATCAATCACACCCACCACGTGTACCGAAACAAGA
CATATTGTGTACTTGGTGGAATGCCCTCAGGCTGCTCCGGTACTTCCATT
TTCAATTCCATGATTAACAACATAATCATCAGAACCCTCCTGATTAAAAC
ATTCAAAGGTATAGACTTAGATGAGCTGAAAATGGTAGCTTATGGAGATG
ACGTGTTGGCCAGCTACCCGTTTCCTATTGATTGCTTGGAATGGGGTAAA
ACAGGCAAAGAATATGGGCTGACTATGACTCCTGCTGATAAATCACCTTG
TTTCAATGAGGTTACCTGGGAGAATGCAACCTTCTTAAAACGGGGTTTTC
TACCGGACCATCAGTTCCCTTTTCTGATCCATCCCACTATGCCCATGAGG
GAAATCCATGAGTCCATCCGCTGGACCAAGGACGCGCGCAATACTCAAGA
TCATGTGCGCTCCCTTTGTCTCCTGGCATGGCATAATGGAAAAGAGGAGT
ATGAGAAATTTGTGAGTACAATTAGATCAGTCCCCATTGGAAGGGCTTTA
GCAATTCCAAATTTGGAGAACTTGAGAAGAAATTGGCTCGAGTTATTTTA
AACTTACAGCTCAATGCTGAACCCCACCAGAAATCTGGTCGTGTCAAT
GACTGGTGGGGGTAAATTTGTTATAACCAGAATAGC

2820
data/eva71_plus_perfect.fq Executable file

File diff suppressed because it is too large Load Diff

0
tests/__init__.py Normal file
View File

9
tests/context.py Normal file
View File

@ -0,0 +1,9 @@
import os
import sys
# Path of debruijn package
#sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__),
# '..')))
# Path for core
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__),
'../debruijn')))
import debruijn

14
tests/kmer.pck Normal file
View File

@ -0,0 +1,14 @@
(dp0
S'GAG'
p1
I1
sS'CAG'
p2
I1
sS'AGA'
p3
I2
sS'TCA'
p4
I1
s.

4
tests/test_build.fq Normal file
View File

@ -0,0 +1,4 @@
@EVA71_BrCr_U22521-1480
TCAGAGA
+
JJJJJJJ

View File

@ -0,0 +1,51 @@
"""Tests for graph build"""
import pytest
import os
import networkx as nx
import pickle
from .context import debruijn
from debruijn import read_fastq
from debruijn import cut_kmer
from debruijn import build_kmer_dict
from debruijn import build_graph
def test_read_fastq():
"""Test fastq reading"""
fastq_reader = read_fastq(os.path.abspath(os.path.join(os.path.dirname(__file__), "test_two_reads.fq")))
assert next(fastq_reader) == "TCAGAGCTCTAGAGTTGGTTCTGAGAGAGATCGGTTACTCGGAGGAGGCTGTGTCACTCATAGAAGGGATCAATCACACCCACCACGTGTACCGAAACAA"
assert next(fastq_reader) == "TTTGAATTACAACATCCATATGTTCTTGATGCTGGAATTCCAATATCTCAGTTGACAGTGTGCCCTCACCAGTGGATCAATTTACGAACCAACAATTGTG"
def test_cut_kmer():
"""test Kmer cut"""
kmer_reader = cut_kmer("TCAGA", 3)
assert next(kmer_reader) == "TCA"
assert next(kmer_reader) == "CAG"
assert next(kmer_reader) == "AGA"
def test_build_kmer_dict():
kmer_dict = build_kmer_dict(os.path.abspath(os.path.join(os.path.dirname(__file__), "test_build.fq")), 3)
assert(len(kmer_dict.keys()) == 4)
assert "TCA" in kmer_dict
assert "CAG" in kmer_dict
assert "AGA" in kmer_dict
assert "GAG" in kmer_dict
assert kmer_dict["AGA"] == 2
def test_build_graph():
file = open(os.path.abspath(os.path.join(os.path.dirname(__file__), "kmer.pck")),'rb')
kmer_dict = pickle.load(file)
graph = build_graph(kmer_dict)
#TCAGAGA
#TCA TC CA
#CAG CA AG
#AGA AG GA
#GAG GA AG
#AGA AG GA
assert graph.number_of_nodes() == 4
assert graph.number_of_edges() == 4
assert "AG" in graph
assert "GA" in graph
assert graph.edges["AG", "GA"]['weight'] == 2

8
tests/test_two_reads.fq Normal file
View File

@ -0,0 +1,8 @@
@EVA71_BrCr_U22521-1480
TCAGAGCTCTAGAGTTGGTTCTGAGAGAGATCGGTTACTCGGAGGAGGCTGTGTCACTCATAGAAGGGATCAATCACACCCACCACGTGTACCGAAACAA
+
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
@EVA71_BrCr_U22521-1478
TTTGAATTACAACATCCATATGTTCTTGATGCTGGAATTCCAATATCTCAGTTGACAGTGTGCCCTCACCAGTGGATCAATTTACGAACCAACAATTGTG
+
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ