mirror of
https://codeberg.org/JasterV/sarscov-hierarchy.git
synced 2026-04-27 02:15:45 +00:00
add test for csv_table and compares
This commit is contained in:
parent
313b1daf49
commit
0a2584bd3a
5 changed files with 114 additions and 5 deletions
35
data/data_test/sequences.csv
Normal file
35
data/data_test/sequences.csv
Normal 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
|
||||||
|
|
|
@ -3,7 +3,9 @@
|
||||||
"""
|
"""
|
||||||
from csv import DictReader
|
from csv import DictReader
|
||||||
from typing import List, Union, Dict
|
from typing import List, Union, Dict
|
||||||
|
|
||||||
from prettytable import PrettyTable
|
from prettytable import PrettyTable
|
||||||
|
|
||||||
import utils.select
|
import utils.select
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -34,21 +36,22 @@ class CsvTable:
|
||||||
for row in self.__table:
|
for row in self.__table:
|
||||||
yield row
|
yield row
|
||||||
|
|
||||||
|
@property
|
||||||
|
def table(self):
|
||||||
|
return self.__table
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
pretty_table = PrettyTable(list(self.__table[0].keys()))
|
pretty_table = PrettyTable(list(self.__table[0].keys()))
|
||||||
for row in self:
|
for row in self:
|
||||||
pretty_table.add_row(row.values())
|
pretty_table.add_row(row.values())
|
||||||
return str(pretty_table)
|
return str(pretty_table)
|
||||||
|
|
||||||
def values(self, column: int) -> List:
|
def values(self, column: str) -> List[str]:
|
||||||
"""
|
"""
|
||||||
:param column:
|
:param column:
|
||||||
:return List of values for this column:
|
:return List of values for this column:
|
||||||
"""
|
"""
|
||||||
list_values = list()
|
return [row[column] for row in self]
|
||||||
for row in self:
|
|
||||||
list_values.append(row[column])
|
|
||||||
return list_values
|
|
||||||
|
|
||||||
def group_countries_by_median_length(self):
|
def group_countries_by_median_length(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
0
test/__init__.py
Normal file
0
test/__init__.py
Normal file
42
test/test_csv_table.py
Normal file
42
test/test_csv_table.py
Normal 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
29
test/test_fasta_map.py
Normal 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))
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue