added baseline config files for running v2 ml analysis
This commit is contained in:
parent
05dd9698c4
commit
96d4e61dca
6 changed files with 989 additions and 13 deletions
194
scripts/ml/rpob_config.py
Executable file
194
scripts/ml/rpob_config.py
Executable file
|
@ -0,0 +1,194 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Created on Sat May 28 05:25:30 2022
|
||||
|
||||
@author: tanu
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
gene = 'rpoB'
|
||||
drug = 'rifampicin'
|
||||
#total_mtblineage_uc = 8
|
||||
|
||||
homedir = os.path.expanduser("~")
|
||||
os.chdir( homedir + '/git/ML_AI_training/')
|
||||
|
||||
#---------------------------
|
||||
# Version 1: no AAindex
|
||||
#from UQ_ML_data import *
|
||||
#setvars(gene,drug)
|
||||
#from UQ_ML_data import *
|
||||
#---------------------------
|
||||
|
||||
from ml_data import *
|
||||
setvars(gene,drug)
|
||||
from ml_data import *
|
||||
|
||||
# from YC run_all_ML: run locally
|
||||
#from UQ_yc_RunAllClfs import run_all_ML
|
||||
|
||||
# TT run all ML clfs: baseline mode
|
||||
from UQ_MultModelsCl import MultModelsCl
|
||||
|
||||
#%%###########################################################################
|
||||
|
||||
print('\n#####################################################################\n')
|
||||
|
||||
print('TESTING cmd:'
|
||||
, '\nGene name:', gene
|
||||
, '\nDrug name:', drug
|
||||
, '\nTotal input features:', X.shape
|
||||
, '\n', Counter(y))
|
||||
|
||||
print('Strucutral features (n):'
|
||||
, len(X_ssFN)
|
||||
, '\nThese are:'
|
||||
, '\nCommon stablity features:', X_stabilityN
|
||||
, '\nFoldX columns:', X_foldX_cols
|
||||
, '\nOther struc columns:', X_str
|
||||
, '\n================================================================\n')
|
||||
|
||||
print('AAindex features (n):'
|
||||
, len(X_aaindexFN)
|
||||
, '\nThese are:\n'
|
||||
, X_aaindexFN
|
||||
, '\n================================================================\n')
|
||||
|
||||
print('Evolutionary features (n):'
|
||||
, len(X_evolFN)
|
||||
, '\nThese are:\n'
|
||||
, X_evolFN
|
||||
, '\n================================================================\n')
|
||||
|
||||
print('Genomic features (n):'
|
||||
, len(X_genomicFN)
|
||||
, '\nThese are:\n'
|
||||
, X_genomic_mafor, '\n'
|
||||
, X_genomic_linegae
|
||||
, '\n================================================================\n')
|
||||
|
||||
print('Categorical features (n):'
|
||||
, len(categorical_FN)
|
||||
, '\nThese are:\n'
|
||||
, categorical_FN
|
||||
, '\n================================================================\n')
|
||||
|
||||
if ( len(X.columns) == len(X_ssFN) + len(X_aaindexFN) + len(X_evolFN) + len(X_genomicFN) + len(categorical_FN) ):
|
||||
print('\nPass: No. of features match')
|
||||
else:
|
||||
sys.exit('\nFail: Count of feature mismatch')
|
||||
|
||||
print('\n#####################################################################\n')
|
||||
################################################################################
|
||||
#==================
|
||||
# Specify outdir
|
||||
#==================
|
||||
|
||||
outdir_ml = outdir + 'ml/v2/'
|
||||
|
||||
################################################################################
|
||||
#==================
|
||||
# Baseline models
|
||||
#==================
|
||||
mm_skf_scoresD = MultModelsCl(input_df = X
|
||||
, target = y
|
||||
, var_type = 'mixed'
|
||||
, skf_cv = skf_cv
|
||||
, blind_test_input_df = X_bts
|
||||
, blind_test_target = y_bts)
|
||||
|
||||
baseline_all = pd.DataFrame(mm_skf_scoresD)
|
||||
baseline_all = baseline_all.T
|
||||
#baseline_train = baseline_all.filter(like='train_', axis=1)
|
||||
baseline_CT = baseline_all.filter(like='test_', axis=1)
|
||||
baseline_CT.sort_values(by = ['test_mcc'], ascending = False, inplace = True)
|
||||
|
||||
baseline_BT = baseline_all.filter(like='bts_', axis=1)
|
||||
baseline_BT.sort_values(by = ['bts_mcc'], ascending = False, inplace = True)
|
||||
|
||||
# Write csv
|
||||
baseline_CT.to_csv(outdir_ml + gene.lower() + '_baseline_CT_allF.csv')
|
||||
baseline_BT.to_csv(outdir_ml + gene.lower() + '_baseline_BT_allF.csv')
|
||||
|
||||
|
||||
#%% SMOTE NC: Oversampling [Numerical + categorical]
|
||||
mm_skf_scoresD7 = MultModelsCl(input_df = X_smnc
|
||||
, target = y_smnc
|
||||
, var_type = 'mixed'
|
||||
, skf_cv = skf_cv
|
||||
, blind_test_input_df = X_bts
|
||||
, blind_test_target = y_bts)
|
||||
smnc_all = pd.DataFrame(mm_skf_scoresD7)
|
||||
smnc_all = smnc_all.T
|
||||
|
||||
smnc_CT = smnc_all.filter(like='test_', axis=1)
|
||||
smnc_CT.sort_values(by = ['test_mcc'], ascending = False, inplace = True)
|
||||
|
||||
smnc_BT = smnc_all.filter(like='bts_', axis=1)
|
||||
smnc_BT.sort_values(by = ['bts_mcc'], ascending = False, inplace = True)
|
||||
|
||||
# Write csv
|
||||
smnc_CT.to_csv(outdir_ml + gene.lower() + '_smnc_CT_allF.csv')
|
||||
smnc_BT.to_csv(outdir_ml + gene.lower() + '_smnc_BT_allF.csv')
|
||||
|
||||
#%% ROS: Numerical + categorical
|
||||
mm_skf_scoresD3 = MultModelsCl(input_df = X_ros
|
||||
, target = y_ros
|
||||
, var_type = 'mixed'
|
||||
, skf_cv = skf_cv
|
||||
, blind_test_input_df = X_bts
|
||||
, blind_test_target = y_bts)
|
||||
ros_all = pd.DataFrame(mm_skf_scoresD3)
|
||||
ros_all = ros_all.T
|
||||
|
||||
ros_CT = ros_all.filter(like='test_', axis=1)
|
||||
ros_CT.sort_values(by = ['test_mcc'], ascending = False, inplace = True)
|
||||
|
||||
ros_BT = ros_all.filter(like='bts_', axis=1)
|
||||
ros_BT.sort_values(by = ['bts_mcc'], ascending = False, inplace = True)
|
||||
|
||||
# Write csv
|
||||
ros_CT.to_csv(outdir_ml + gene.lower() + '_ros_CT_allF.csv')
|
||||
ros_BT.to_csv(outdir_ml + gene.lower() + '_ros_BT_allF.csv')
|
||||
|
||||
#%% RUS: Numerical + categorical
|
||||
mm_skf_scoresD4 = MultModelsCl(input_df = X_rus
|
||||
, target = y_rus
|
||||
, var_type = 'mixed'
|
||||
, skf_cv = skf_cv
|
||||
, blind_test_input_df = X_bts
|
||||
, blind_test_target = y_bts)
|
||||
rus_all = pd.DataFrame(mm_skf_scoresD4)
|
||||
rus_all = rus_all.T
|
||||
|
||||
rus_CT = rus_all.filter(like='test_', axis=1)
|
||||
rus_CT.sort_values(by = ['test_mcc'], ascending = False, inplace = True)
|
||||
|
||||
rus_BT = rus_all.filter(like='bts_' , axis=1)
|
||||
rus_BT.sort_values(by = ['bts_mcc'], ascending = False, inplace = True)
|
||||
|
||||
# Write csv
|
||||
rus_CT.to_csv(outdir_ml + gene.lower() + '_rus_CT_allF.csv')
|
||||
rus_BT.to_csv(outdir_ml + gene.lower() + '_rus_BT_allF.csv')
|
||||
|
||||
#%% ROS + RUS Combined: Numerical + categorical
|
||||
mm_skf_scoresD8 = MultModelsCl(input_df = X_rouC
|
||||
, target = y_rouC
|
||||
, var_type = 'mixed'
|
||||
, skf_cv = skf_cv
|
||||
, blind_test_input_df = X_bts
|
||||
, blind_test_target = y_bts)
|
||||
rouC_all = pd.DataFrame(mm_skf_scoresD8)
|
||||
rouC_all = rouC_all.T
|
||||
|
||||
rouC_CT = rouC_all.filter(like='test_', axis=1)
|
||||
rouC_CT.sort_values(by = ['test_mcc'], ascending = False, inplace = True)
|
||||
|
||||
rouC_BT = rouC_all.filter(like='bts_', axis=1)
|
||||
rouC_BT.sort_values(by = ['bts_mcc'], ascending = False, inplace = True)
|
||||
|
||||
# Write csv
|
||||
rouC_CT.to_csv(outdir_ml + gene.lower() + '_rouC_CT_allF.csv')
|
||||
rouC_BT.to_csv(outdir_ml + gene.lower() + '_rouC_BT_allF.csv')
|
Loading…
Add table
Add a link
Reference in a new issue