add test for csv_table and compares

This commit is contained in:
manudiv16 2020-05-20 23:38:42 +02:00
commit 0a2584bd3a
5 changed files with 114 additions and 5 deletions

View file

@ -0,0 +1,35 @@
Accession,Release_Date,Species,Length,Geo_Location,Host,Isolation_Source,Collection_Date
MT292569,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29780,Spain,Homo sapiens,,2020-03-09
MT292570,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29781,Spain,Homo sapiens,,2020-03-10
MT292571,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29782,Spain,Homo sapiens,,2020-03-09
MT292572,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29783,Spain,Homo sapiens,,2020-03-10
MT292574,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29784,Spain,Homo sapiens,oronasopharynx,2020-03-02
MT292575,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29785,Spain,Homo sapiens,,2020-03-10
MT292576,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29786,Spain,Homo sapiens,,2020-03-10
MT292573,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29787,Spain,Homo sapiens,,2020-03-09
MT292577,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29788,Spain,Homo sapiens,,2020-03-08
MT292578,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29789,Spain,Homo sapiens,,2020-03-09
MT292579,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29790,Spain,Homo sapiens,,2020-03-09
MT292580,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29791,Spain,Homo sapiens,,2020-02-27
MT292581,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29792,Spain,Homo sapiens,,2020-02-27
MT292582,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29792,Spain,Homo sapiens,,2020-03-06
MT256917,2020-03-30T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29792,Spain: Valencia,Homo sapiens,,2020-03-02
MT256918,2020-03-30T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29792,Spain: Valencia,Homo sapiens,,2020-03-06
MT281577,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29903,"China: Anhui, Fuyang",Homo sapiens,feces,2020-03-10
MT291826,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29807,China: Wuhan,Homo sapiens,lung,2019-12-30
MT291827,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29858,China: Wuhan,Homo sapiens,lung,2019-12-30
MT291828,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29858,China: Wuhan,Homo sapiens,lung,2019-12-30
MT291829,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29774,China: Wuhan,Homo sapiens,lung,2019-12-30
MT291830,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29807,China: Wuhan,Homo sapiens,lung,2019-12-30
MT291831,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29872,China: Beijing,Homo sapiens,oronasopharynx,2020-01-24
MT291832,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29828,China: Beijing,Homo sapiens,oronasopharynx,2020-01-25
MT291833,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29821,China: Beijing,Homo sapiens,oronasopharynx,2020-01-28
MT291834,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29865,China: Beijing,Homo sapiens,oronasopharynx,2020-01-28
MT291835,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29834,China: Beijing,Homo sapiens,oronasopharynx,2020-01-27
MT291836,2020-04-06T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29860,China: Beijing,Homo sapiens,oronasopharynx,2020-01-29
MT259226,2020-03-30T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29868,"China: Hubei, Wuhan",Homo sapiens,oronasopharynx,2020-01-10
MT259227,2020-03-30T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29863,"China: Hubei, Wuhan",Homo sapiens,oronasopharynx,2020-01-26
MT259228,2020-03-30T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29861,"China: Hubei, Wuhan",Homo sapiens,oronasopharynx,2020-01-26
MT259229,2020-03-30T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29864,"China: Hubei, Wuhan",Homo sapiens,oronasopharynx,2020-01-26
MT259230,2020-03-30T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29866,"China: Hubei, Wuhan",Homo sapiens,oronasopharynx,2020-01-25
MT259231,2020-03-30T00:00:00Z,Severe acute respiratory syndrome-related coronavirus,29865,"China: Hubei, Wuhan",Homo sapiens,oronasopharynx,2020-01-25
1 Accession Release_Date Species Length Geo_Location Host Isolation_Source Collection_Date
2 MT292569 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29780 Spain Homo sapiens 2020-03-09
3 MT292570 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29781 Spain Homo sapiens 2020-03-10
4 MT292571 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29782 Spain Homo sapiens 2020-03-09
5 MT292572 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29783 Spain Homo sapiens 2020-03-10
6 MT292574 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29784 Spain Homo sapiens oronasopharynx 2020-03-02
7 MT292575 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29785 Spain Homo sapiens 2020-03-10
8 MT292576 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29786 Spain Homo sapiens 2020-03-10
9 MT292573 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29787 Spain Homo sapiens 2020-03-09
10 MT292577 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29788 Spain Homo sapiens 2020-03-08
11 MT292578 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29789 Spain Homo sapiens 2020-03-09
12 MT292579 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29790 Spain Homo sapiens 2020-03-09
13 MT292580 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29791 Spain Homo sapiens 2020-02-27
14 MT292581 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29792 Spain Homo sapiens 2020-02-27
15 MT292582 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29792 Spain Homo sapiens 2020-03-06
16 MT256917 2020-03-30T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29792 Spain: Valencia Homo sapiens 2020-03-02
17 MT256918 2020-03-30T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29792 Spain: Valencia Homo sapiens 2020-03-06
18 MT281577 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29903 China: Anhui, Fuyang Homo sapiens feces 2020-03-10
19 MT291826 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29807 China: Wuhan Homo sapiens lung 2019-12-30
20 MT291827 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29858 China: Wuhan Homo sapiens lung 2019-12-30
21 MT291828 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29858 China: Wuhan Homo sapiens lung 2019-12-30
22 MT291829 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29774 China: Wuhan Homo sapiens lung 2019-12-30
23 MT291830 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29807 China: Wuhan Homo sapiens lung 2019-12-30
24 MT291831 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29872 China: Beijing Homo sapiens oronasopharynx 2020-01-24
25 MT291832 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29828 China: Beijing Homo sapiens oronasopharynx 2020-01-25
26 MT291833 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29821 China: Beijing Homo sapiens oronasopharynx 2020-01-28
27 MT291834 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29865 China: Beijing Homo sapiens oronasopharynx 2020-01-28
28 MT291835 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29834 China: Beijing Homo sapiens oronasopharynx 2020-01-27
29 MT291836 2020-04-06T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29860 China: Beijing Homo sapiens oronasopharynx 2020-01-29
30 MT259226 2020-03-30T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29868 China: Hubei, Wuhan Homo sapiens oronasopharynx 2020-01-10
31 MT259227 2020-03-30T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29863 China: Hubei, Wuhan Homo sapiens oronasopharynx 2020-01-26
32 MT259228 2020-03-30T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29861 China: Hubei, Wuhan Homo sapiens oronasopharynx 2020-01-26
33 MT259229 2020-03-30T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29864 China: Hubei, Wuhan Homo sapiens oronasopharynx 2020-01-26
34 MT259230 2020-03-30T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29866 China: Hubei, Wuhan Homo sapiens oronasopharynx 2020-01-25
35 MT259231 2020-03-30T00:00:00Z Severe acute respiratory syndrome-related coronavirus 29865 China: Hubei, Wuhan Homo sapiens oronasopharynx 2020-01-25

View file

@ -3,7 +3,9 @@
"""
from csv import DictReader
from typing import List, Union, Dict
from prettytable import PrettyTable
import utils.select
@ -34,21 +36,22 @@ class CsvTable:
for row in self.__table:
yield row
@property
def table(self):
return self.__table
def __str__(self):
pretty_table = PrettyTable(list(self.__table[0].keys()))
for row in self:
pretty_table.add_row(row.values())
return str(pretty_table)
def values(self, column: int) -> List:
def values(self, column: str) -> List[str]:
"""
:param column:
:return List of values for this column:
"""
list_values = list()
for row in self:
list_values.append(row[column])
return list_values
return [row[column] for row in self]
def group_countries_by_median_length(self):
"""

0
test/__init__.py Normal file
View file

42
test/test_csv_table.py Normal file
View file

@ -0,0 +1,42 @@
from unittest import TestCase
from src.python.utils.csv_table import CsvTable
class TestCsvTable(TestCase):
def test_values(self):
path = "../data/data_test/sequences.csv"
accession = ["MT292569", "MT292570", "MT292571", "MT292572", "MT292574",
"MT292575", "MT292576", "MT292573", "MT292577", "MT292578",
"MT292579", "MT292580", "MT292581", "MT292582", "MT256917",
"MT256918", "MT281577", "MT291826", "MT291827", "MT291828",
"MT291829", "MT291830", "MT291831", "MT291832", "MT291833",
"MT291834", "MT291835", "MT291836", "MT259226", "MT259227",
"MT259228", "MT259229", "MT259230", "MT259231"]
csv_table = CsvTable(path)
self.assertTrue(all([x in accession for x in csv_table.values("Accession")]))
def test_group_countries_by_median_length(self):
path = "../data/data_test/sequences.csv"
row_china = {"Accession": "MT259228",
"Release_Date": "2020-03-30T00:00:00Z",
"Species": "Severe acute respiratory syndrome-related coronavirus",
"Length": "29861",
"Geo_Location": "China",
"Host": "Homo sapiens",
"Isolation_Source": "oronasopharynx",
"Collection_Date": "2020-01-26"}
row_spain = {"Accession": "MT292577",
"Release_Date": "2020-04-06T00:00:00Z",
"Species": "Severe acute respiratory syndrome-related coronavirus",
"Length": "29788",
"Geo_Location": "Spain",
"Host": "Homo sapiens",
"Isolation_Source": "",
"Collection_Date": "2020-03-08"}
list_cases = [row_spain, row_china]
list_cases_test = CsvTable(list_cases)
csv_table = CsvTable(path)
list_csv = csv_table.group_countries_by_median_length()
self.assertTrue(all(x in list_csv.table for x in list_cases_test.table))

29
test/test_fasta_map.py Normal file
View file

@ -0,0 +1,29 @@
from unittest import TestCase
import src.python.libs.seqalign as sq
class TestFastaMap(TestCase):
def test_sequence_align(self):
"""
Use https://n9.cl/2qcq to
check the distance.
"""
seq1 = "AATCG"
seq2 = "AACG"
expected = 2
self.assertEqual(expected, sq.compare_samples(seq1, seq2))
seq1 = "JDSLFA"
seq2 = "JALFDSA"
expected = 6
self.assertEqual(expected, sq.compare_samples(seq1, seq2))
seq1 = "DSAJKJFHJAKHDIOUZVJCXMVCZIOIUOWUQRIEUWQIPIDSFSDKZXV"
seq2 = "FKSJAFKJIOTIGHLKJVMCXXZCMVLJASIRUWQOIUTPQWURIIPOQ"
expected = 46
self.assertEqual(expected, sq.compare_samples(seq1, seq2))
seq1 = "KFDSKAJFJPOTIPWQUIMXZMVMZXBVM"
seq2 = "FKDSPOIQTUITYSKZMV"
expected = 31
self.assertEqual(expected, sq.compare_samples(seq1, seq2))