Skip to content
Snippets Groups Projects
Commit 456b1149 authored by UMEC Mathieu's avatar UMEC Mathieu
Browse files

add .gitignore and test of code Complete_processing_mapping_results

parent 564cd4e9
No related branches found
No related tags found
No related merge requests found
/__pycache__
.cpython-310
\ No newline at end of file
inosine;17596
L-glutamic acid;16015
pyruvic acid;32816
inosine;chebi:17596
L-glutamic acid;chebi:16015
pyruvic acid;chebi:32816
import unittest
import pandas as pd
import os
import tempfile
import sys
import openpyxl
from unittest.mock import patch
sys.path.append('C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données')
from complete_processing_of_mapping_results import *
class Test_treatment_result_smapping(unittest.TestCase):
def test_pathways_selection (self):
result_list=pathways_selection([['alphabet','a','b'],['num','1','2'],['false_num','32','27']],['False_alphabet','false_num'])
self.assertIsInstance(result_list, list)
self.assertListEqual(result_list,[['alphabet','a','b'],['num','1','2']])
def test_similarity_matrix (self):
np_table,path_whith_only_1_metabolite, Metabo_path_whith_only_1_metabolite, All_metabo, f_of_metabolite, pathways_of_metabo,Names_of_pathways, all_recovery, average_recov=similarity_matrix([['Biochemical Pathways Part I', 'taurine'],['SLC-mediated transmembrane transport', 'taurine', 'succinic acid']])
self.assertIsInstance(np_table, np.ndarray)
self.assertListEqual(path_whith_only_1_metabolite,['Biochemical Pathways Part I'])
self.assertListEqual(Metabo_path_whith_only_1_metabolite,['taurine'] )
self.assertEqual(len(All_metabo),2)
self.assertListEqual(f_of_metabolite,[2,1])
self.assertEqual(len(pathways_of_metabo),2)
self.assertListEqual(Names_of_pathways,['Biochemical Pathways Part I','SLC-mediated transmembrane transport'])
self.assertEqual(len(all_recovery),2)
self.assertEqual(len(average_recov),2)
def test_list_frequency_1 (self):
metabo_f1,path_metabo_f1=list_frequency_1([2,1],['taurine', 'succinic acid'],[['Biochemical Pathways Part I','SLC-mediated transmembrane transport'],['SLC-mediated transmembrane transport']],['Biochemical Pathways Part I','SLC-mediated transmembrane transport'],[['Biochemical Pathways Part I', 'taurine'],['SLC-mediated transmembrane transport', 'taurine', 'succinic acid']])
self.assertListEqual(metabo_f1,['succinic acid'])
self.assertListEqual(path_metabo_f1,['SLC-mediated transmembrane transport(2)'])
def test_pathways_of_metabolite (self):
path_of_meta=pathways_of_metabolite(['taurine', 'succinic acid'],[['Biochemical Pathways Part I','SLC-mediated transmembrane transport'],['SLC-mediated transmembrane transport']])
self.assertIsInstance(path_of_meta, pd.DataFrame)
def test_order_frequency (self):
morph=order_frequency(['a biosynthesis'], ['a'], ['b degradation'], ['b'], ['a','b','c'], [5,1,2])
self.assertIsInstance(morph, list)
def test_recovery_position_and_pathways_name (self):
L_of_L=recovery_position_and_pathways_name([6,2,1],[3,1,0.5],['Biochemical Path','SLC-mediated','biosynthesis'])
self.assertIsInstance(L_of_L, list)
def test_df_matrix_r (self):
l_like=df_matrix_r(np.array([[1, 2], [2, 1]], dtype=object))
self.assertIsInstance(l_like, pd.DataFrame)
class Test_import_function(unittest.TestCase):
def test_column_recovery(self):
self.temp_file = tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.csv')
self.temp_file.write("1;it;Doe\n")
self.temp_file.write("2;is;Smith\n")
self.temp_file.write("3;good;Johnson\n")
self.temp_file.close()
result = column_recovery(self.temp_file.name, 1)
expected_result = ['it', 'is', 'good']
os.remove(self.temp_file.name)
self.assertEqual(result, expected_result)
def test_recup_RAMP_pathways_list(self):
self.temp_RAMP = tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.csv')
self.temp_RAMP.write("pathwayName;pathwaySource;pathwayId;inputId;commonName\n")
self.temp_RAMP.write("ADME;;;chebi:17596;\n")
self.temp_RAMP.write("al metabo;;;chebi:16015;\n")
self.temp_RAMP.write("al metabo;;;chebi:32816;\n")
self.temp_RAMP.close()
self.temp_CORS = tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.csv')
self.temp_CORS.write("inosine;chebi:17596;\n")
self.temp_CORS.write("L-glutamic acid;chebi:16015;\n")
self.temp_CORS.write("pyruvic acid;chebi:32816;\n")
self.temp_CORS.close()
result_recup_RAMP=recup_RAMP_pathways_list(self.temp_RAMP.name,self.temp_CORS.name)
self.assertEqual(result_recup_RAMP, [['ADME','inosine'],['al metabo','L-glutamic acid','pyruvic acid']])
os.remove(self.temp_RAMP.name)
os.remove(self.temp_CORS.name)
def test_recup_CPDB_pathways_list (self):
self.temp_CPDB = tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.csv')
self.temp_CPDB.write("p-value;q-value;pathway;source;external_id;members_input_overlap;members_input_overlap_geneids;size;effective_size\n")
self.temp_CPDB.write("1;0;ADME;wiki;exte;17596;kc20;21;21\n")
self.temp_CPDB.write("1;0;al metabo;wiki;exte;16015;kc20;21;21\n")
self.temp_CPDB.close()
self.temp_CORS2 = tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.csv')
self.temp_CORS2.write("inosine;17596\n")
self.temp_CORS2.write("L-glutamic acid;16015\n")
self.temp_CORS2.close()
result_recup_CPDB=recup_CPDB_pathways_list(self.temp_CPDB.name, self.temp_CORS2.name)
self.assertEqual(result_recup_CPDB, [['ADME', 'inosine'], ['al metabo', 'L-glutamic acid']])
os.remove(self.temp_CORS2.name)
os.remove(self.temp_CPDB.name)
def test_recup_MA_pathways_list (self):
self.temp_MA = tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.csv')
self.temp_MA.write("al metabo;ADME\n")
self.temp_MA.write("L-glutamic acid;inosine\n")
self.temp_MA.write("pyruvic acid;\n")
self.temp_MA.close()
L_result=recup_MA_pathways_list(self.temp_MA.name,2)
self.assertEqual(L_result, [['al metabo', 'L-glutamic acid','pyruvic acid'],['ADME', 'inosine']])
os.remove(self.temp_MA.name)
def test_recup_ME_pathways_list (self):
Me_temp_file_1= tempfile.NamedTemporaryFile(delete=False, suffix='.xlsx')
workbook_1 = openpyxl.Workbook()
sheet_names_1 = ["Compartments (1|19)", "Pathways (1|364)", "Reactions (2|3968)", "Metabolites (1|3831)"]
for sheet_name in sheet_names_1:
workbook_1.create_sheet(sheet_name)
default_sheet_1 = workbook_1["Sheet"]
workbook_1.remove(default_sheet_1)
sheet_path_1=workbook_1["Pathways (1|364)"]
sheet_meta_1=workbook_1["Metabolites (1|3831)"]
sheet_path_1.cell(row=2, column=1, value='spermidine biosynthesis')
sheet_meta_1.cell(row=2, column=1, value='CO2')
sheet_meta_1.cell(row=2, column=6, value='true')
workbook_1.save(Me_temp_file_1.name)
Me_temp_file_1.close()
name_Me_temp_file_1 = "Me_temp (1).xlsx"
os.rename(Me_temp_file_1.name, name_Me_temp_file_1)
Me_temp_file_2= tempfile.NamedTemporaryFile(delete=False, suffix='.xlsx')
workbook_2 = openpyxl.Workbook()
sheet_names_2 = ["Compartments (1|19)", "Pathways (1|364)", "Reactions (2|3968)", "Metabolites (3|3831)"]
for sheet_name in sheet_names_2:
workbook_2.create_sheet(sheet_name)
default_sheet_2 = workbook_2["Sheet"]
workbook_2.remove(default_sheet_2)
sheet_path_2=workbook_2["Pathways (1|364)"]
sheet_meta_2=workbook_2["Metabolites (3|3831)"]
sheet_path_2.cell(row=2, column=1, value='biosynthesis')
sheet_meta_2.cell(row=2, column=1, value='H+')
sheet_meta_2.cell(row=2, column=6, value='true')
sheet_meta_2.cell(row=3, column=1, value='CO2')
sheet_meta_2.cell(row=3, column=6, value='false')
sheet_meta_2.cell(row=4, column=1, value='spermine')
sheet_meta_2.cell(row=4, column=6, value='true')
workbook_2.save(Me_temp_file_2.name)
Me_temp_file_2.close()
name_Me_temp_file_2 = "Me_temp (2).xlsx"
os.rename(Me_temp_file_2.name, name_Me_temp_file_2)
ME_result=recup_ME_pathways_list('Me_temp','C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\', 2,6)
self.assertListEqual(ME_result,[['spermidine biosynthesis','CO2'],['biosynthesis','H+','spermine']])
os.remove("C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\Me_temp (1).xlsx")
os.remove("C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\Me_temp (2).xlsx")
class Testcomplete_processing_of_mapping_results_MA(unittest.TestCase):
def setUp(self):
self.temp_MA = tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.csv')
self.temp_MA.write("al metabo;ADME\n")
self.temp_MA.write("L-glutamic acid;inosine\n")
self.temp_MA.write("pyruvic acid;\n")
self.temp_MA.close()
def tearDown(self):
os.remove(self.temp_MA.name)
@patch('builtins.input', side_effect=[2])
def test_complete_processing_of_mapping_results_mid_file (self, mock_input):
outfile="C:\\Users\\mumec\\Desktop\\fichier_mis_en_forme_programme_total\\unittest.xlsx"
midfile_n="C:\\Users\\mumec\\Desktop\\fichier_mis_en_forme_programme_total\\mid_file.xlsx"
complete_processing_of_mapping_results (self.temp_MA.name, outfile,'MA',type_of_view="None",midfile_name=midfile_n)
self.assertTrue
self.assertTrue(os.path.exists(outfile))
self.assertTrue(os.path.exists(midfile_n))
os.remove(outfile)
os.remove(midfile_n)
@patch('builtins.input', side_effect=[2])
def test_complete_processing_of_mapping_results_end_file_MA (self,mock_input):
outfile="C:\\Users\\mumec\\Desktop\\fichier_mis_en_forme_programme_total\\unittest.xlsx"
complete_processing_of_mapping_results (self.temp_MA.name, outfile,'MA',type_of_view="None",midfile='non')
self.assertTrue(os.path.exists(outfile))
os.remove(outfile)
@patch('builtins.input', side_effect=[2])
def test_complete_processing_of_mapping_results_filter_MA (self,mock_input):
outfile="C:\\Users\\mumec\\Desktop\\fichier_mis_en_forme_programme_total\\unittest.xlsx"
complete_processing_of_mapping_results (self.temp_MA.name, outfile,'MA',type_of_view="None",midfile='non',name_of_pathways_to_filter=['al metabo'])
self.assertTrue(os.path.exists(outfile))
os.remove(outfile)
@patch('builtins.input', side_effect=[2])
@patch('complete_processing_of_mapping_results.plt.show')
def test_complete_processing_of_mapping_results_visu (self,mock_input,mock_show):
outfile="C:\\Users\\mumec\\Desktop\\fichier_mis_en_forme_programme_total\\unittest.xlsx"
complete_processing_of_mapping_results (self.temp_MA.name, outfile,'MA',type_of_view="all",folder_of_visu_saving="C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\",midfile='non',)
self.assertTrue(os.path.exists("C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\bar_plot_of_metabolites.png"))
self.assertTrue(os.path.exists("C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\bar_plot_of_recovery.png"))
self.assertTrue(os.path.exists("C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\metabolites_bo_of_frequency.png"))
self.assertTrue(os.path.exists(outfile))
os.remove("C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\bar_plot_of_metabolites.png")
os.remove("C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\bar_plot_of_recovery.png")
os.remove("C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\metabolites_bo_of_frequency.png")
os.remove(outfile)
class Testcomplete_processing_of_mapping_results_mappeurs(unittest.TestCase):
@patch('builtins.input', side_effect=['C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\',2,6])
def test_complete_processing_of_mapping_results_end_file_ME (self,mock_input):
outfile="C:\\Users\\mumec\\Desktop\\fichier_mis_en_forme_programme_total\\unittest.xlsx"
Me_temp_file_1= tempfile.NamedTemporaryFile(delete=False, suffix='.xlsx')
workbook_1 = openpyxl.Workbook()
sheet_names_1 = ["Compartments (1|19)", "Pathways (1|364)", "Reactions (2|3968)", "Metabolites (1|3831)"]
for sheet_name in sheet_names_1:
workbook_1.create_sheet(sheet_name)
default_sheet_1 = workbook_1["Sheet"]
workbook_1.remove(default_sheet_1)
sheet_path_1=workbook_1["Pathways (1|364)"]
sheet_meta_1=workbook_1["Metabolites (1|3831)"]
sheet_path_1.cell(row=2, column=1, value='spermidine biosynthesis')
sheet_meta_1.cell(row=2, column=1, value='CO2')
sheet_meta_1.cell(row=2, column=6, value='true')
workbook_1.save(Me_temp_file_1.name)
Me_temp_file_1.close()
name_Me_temp_file_1 = "Me_temp (1).xlsx"
os.rename(Me_temp_file_1.name, name_Me_temp_file_1)
Me_temp_file_2= tempfile.NamedTemporaryFile(delete=False, suffix='.xlsx')
workbook_2 = openpyxl.Workbook()
sheet_names_2 = ["Compartments (1|19)", "Pathways (1|364)", "Reactions (2|3968)", "Metabolites (3|3831)"]
for sheet_name in sheet_names_2:
workbook_2.create_sheet(sheet_name)
default_sheet_2 = workbook_2["Sheet"]
workbook_2.remove(default_sheet_2)
sheet_path_2=workbook_2["Pathways (1|364)"]
sheet_meta_2=workbook_2["Metabolites (3|3831)"]
sheet_path_2.cell(row=2, column=1, value='biosynthesis')
sheet_meta_2.cell(row=2, column=1, value='H+')
sheet_meta_2.cell(row=2, column=6, value='true')
sheet_meta_2.cell(row=3, column=1, value='CO2')
sheet_meta_2.cell(row=3, column=6, value='false')
sheet_meta_2.cell(row=4, column=1, value='spermine')
sheet_meta_2.cell(row=4, column=6, value='true')
workbook_2.save(Me_temp_file_2.name)
Me_temp_file_2.close()
name_Me_temp_file_2 = "Me_temp (2).xlsx"
os.rename(Me_temp_file_2.name, name_Me_temp_file_2)
complete_processing_of_mapping_results ('Me_temp', outfile,'ME',type_of_view="None",midfile='non')
self.assertTrue(os.path.exists(outfile))
os.remove(outfile)
os.remove("C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\Me_temp (1).xlsx")
os.remove("C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\Me_temp (2).xlsx")
@patch('builtins.input', side_effect=["C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\Cors_file_for_test\\Corres_file_for_RAMP_unittest.csv"])
def test_complete_processing_of_mapping_results_end_file_RAMP (self,mock_input):
outfile="C:\\Users\\mumec\\Desktop\\fichier_mis_en_forme_programme_total\\unittest.xlsx"
self.temp_RAMP = tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.csv')
self.temp_RAMP.write("pathwayName;pathwaySource;pathwayId;inputId;commonName\n")
self.temp_RAMP.write("ADME;;;chebi:17596;\n")
self.temp_RAMP.write("al metabo;;;chebi:16015;\n")
self.temp_RAMP.write("al metabo;;;chebi:32816;\n")
self.temp_RAMP.close()
complete_processing_of_mapping_results (self.temp_RAMP.name, outfile,'RAMP',type_of_view="None",midfile='non')
self.assertTrue(os.path.exists(outfile))
os.remove(self.temp_RAMP.name)
@patch('builtins.input', side_effect=["C:\\Users\\mumec\\Desktop\\Dossier_gitlab_local\\traitement_des_données\\Tests_unitaires\\Cors_file_for_test\\Corres_file_for_CPDB_unittest.csv"])
def test_complete_processing_of_mapping_results_end_file_CPDB (self,mock_input):
outfile="C:\\Users\\mumec\\Desktop\\fichier_mis_en_forme_programme_total\\unittest.xlsx"
self.temp_CPDB = tempfile.NamedTemporaryFile(delete=False, mode='w', suffix='.csv')
self.temp_CPDB.write("p-value;q-value;pathway;source;external_id;members_input_overlap;members_input_overlap_geneids;size;effective_size\n")
self.temp_CPDB.write("1;0;ADME;wiki;exte;17596;kc20;21;21\n")
self.temp_CPDB.write("1;0;al metabo;wiki;exte;16015;kc20;21;21\n")
self.temp_CPDB.close()
complete_processing_of_mapping_results (self.temp_CPDB.name, outfile,'CPDB',type_of_view="None",midfile='non')
self.assertTrue(os.path.exists(outfile))
os.remove(outfile)
os.remove(self.temp_CPDB.name)
class Test_functiosnutils(unittest.TestCase):
def test_correspondence_with_index (self):
result_corres=correspondence_with_index(['t','x','a'],['a','b','c','t','x'],['1','2','3','20','24'])
self.assertIsInstance(result_corres, list)
self.assertListEqual(result_corres,['20','24','1'])
def test_comma_cleaning (self):
str_clean=comma_cleaning ('this, str , have, four, comma')
self.assertIsInstance(str_clean, str)
self.assertMultiLineEqual(str_clean,'this_ str _ have_ four_ comma')
def test_excel_file_writer (self):
dataframe = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
name_out_file='test_default_sheetname.xlsx'
excel_file_writer(dataframe, name_out_file,sheetname="test_1")
self.assertTrue(os.path.exists(name_out_file))
os.remove(name_out_file)
def test_excel_multi_file_writer (self):
list_of_dataframe = [pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}), pd.DataFrame({'X': ['a', 'b', 'c'], 'Y': ['d', 'e', 'f']})]
name_outfile = 'test_output.xlsx'
excel_multi_file_writer(list_of_dataframe, name_outfile, ['Sheet1', 'Sheet2'])
self.assertTrue(os.path.exists(name_outfile))
excel_file = pd.ExcelFile(name_outfile)
sheet_names = excel_file.sheet_names
self.assertEqual(len(sheet_names),2)
excel_file.close()
os.remove(name_outfile)
def test_strip_list (self):
result_clean=strip_list(['a ',' b', ' c ','d'])
self.assertIsInstance(result_clean, list)
self.assertEqual(result_clean,['a','b','c','d'])
class TestVisu (unittest.TestCase):
def setUp(self):
self.df_data = pd.DataFrame({'column_x': ['A', 'B', 'C'],'column_y': [10, 20, 30]})
def test_barplot(self):
fig = barplot('column_x', 'column_y', self.df_data)
self.assertIsInstance(fig, plt.Figure)
def test_barplot_with_custom(self):
fig = barplot('column_x', 'column_y', self.df_data, title="Plot title", figure_size=(20, 4),ax_x_label="Pathwayss", ax_y_label='R_m',colors='Spectral',decimal='%.3f',size_of_labels=8)
self.assertIsInstance(fig, plt.Figure)
def test_mustache_box (self) :
box=mustache_box(self.df_data,'column_y') #ax_y_label="f_metabolites",title='box_1',figure_size=(5,8)
self.assertIsInstance(box, plt.Axes)
if __name__=='__main__':
unittest.main()
\ No newline at end of file
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