#!/usr/bin/env ruby #1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & Measured & MP2D & CDK & LR-sgd & LR-scikit & NN & RF \\\\ puts ' \definecolor{red}{rgb}{1,0,0} \definecolor{darkred}{rgb}{0.5,0,0} \definecolor{green}{rgb}{0,1,0} \definecolor{darkgreen}{rgb}{0,0.5,0} \definecolor{grey}{rgb}{0.5,0.5,0.5} \definecolor{black}{rgb}{0,0,0} \definecolor{white}{rgb}{1,1,1} \tiny \begin{longtable}{rrrrrrrrrccccccccccccccc} \caption{Summary of pyrrolizidine alkaloid predictions: red: mutagen, green: non-mutagen, grey: no prediction, dark red/green: low confidence; 1: Retronecine, 2: Otonecine, 3: Platynecine, 4: N-oxide, 5: Dehydropyrrolizidine, 6:Tertiary PA, 7: Macrocyclic-diester, 8: Monoester, 9: Diester} \\\\ \label{tab:pa} % 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & Measured & MP2D & CDK & DL & SVM & LR-sgd & LR-scikit & NN & RF \\kill % needed as guide for multicolumn % \multicolumn{9}{c}{PA Group} & & \multicolumn{2}{c}{lazar} & \multicolumn{4}{c}{Tensorflow}\\\\ 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & Exp. & MP2D & CDK & LR1 & LR2 & NN & RF & SVM & LR1 & LR2 & NN & RF & SVM \\kill % needed as guide for multicolumn \multicolumn{9}{c}{PA Group} & & \multicolumn{2}{c}{lazar} & \multicolumn{5}{c}{MP2D} & \multicolumn{5}{c}{CDK}\\\\ 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & Exp. & MP2D & CDK & LR1 & LR2 & NN & RF & SVM & LR1 & LR2 & NN & RF & SVM \\\\ % 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & Measured & MP2D & CDK & LR-sgd & LR-scikit & NN & RF \\\\ \hline \renewcommand{\arraystretch}{0.075} ' File.read(ARGV[0]).each_line do |l| unless l.match("SMILES") #ID,Retronecine,Otonecine,Platynecine,N-oxide,Dehydropyrrolizidine,Tertiary PA,Macrocyclic-diester,Monoester,Diester,CID,SMILES,Canonical SMILES,Measured,lazar-MP2D,lazar-high-confidence-MP2D,lazar-CDK,lazar-high-confidence-CDK,LR-sgd-MP2D,LR-scikit-MP2D,NN-MP2D,RF-MP2D,SVM-MP2D,LR-sgd-CDK,LR-scikit-CDK,NN-CDK,RF-CDK,SVM-CDK id,r,o,p,n,de,t,ma,mo,di,cid,smi,cansmi,exp,lazar_MP2D,lazar_MP2D_high_confidence,lazar_CDK,lazar_CDK_high_confidence,lr_sgd_mp2d,lr_scikit_mp2d,nn_mp2d,rf_mp2d,svm_mp2d,lr_sgd_cdk,lr_scikit_cdk,nn_cdk,rf_cdk,svm_cdk = l.chomp.split(",") #id,r,o,p,n,de,t,ma,mo,di,cid,smi,cansmi,exp,lazar_MP2D,lazar_MP2D_high_confidence,lazar_CDK,lazar_CDK_high_confidence,tf_lr_sgd,tf_lr_scikit,tf_NN,tf_RF = l.chomp.split(",") row = [r,o,p,n,de,t,ma,mo,di].collect{|group| group == "1" ? '\cellcolor{black}' : '\cellcolor{white}'}.join(' & ') if exp == "1" row += ' & \cellcolor{red}' elsif exp == "0" row += ' & \cellcolor{green}' else row += ' & \cellcolor{grey}' end if lazar_MP2D == "1" and lazar_MP2D_high_confidence == "F" row += ' & \cellcolor{darkred}' elsif lazar_MP2D == "1" and lazar_MP2D_high_confidence == "T" row += ' & \cellcolor{red}' elsif lazar_MP2D == "0" and lazar_MP2D_high_confidence == "F" row += ' & \cellcolor{darkgreen}' elsif lazar_MP2D == "0" and lazar_MP2D_high_confidence == "T" row += ' & \cellcolor{green}' else row += ' & \cellcolor{grey}' end if lazar_CDK == "1" lazar_CDK_high_confidence == "F" ? row += ' & \cellcolor{darkred}' : row += ' & \cellcolor{red}' elsif lazar_CDK == "0" lazar_CDK_high_confidence == "F" ? row += ' & \cellcolor{darkgreen}' : row += ' & \cellcolor{green}' else row += ' & \cellcolor{grey}' end [lr_sgd_mp2d,lr_scikit_mp2d,nn_mp2d,rf_mp2d,svm_mp2d,lr_sgd_cdk,lr_scikit_cdk,nn_cdk,rf_cdk,svm_cdk].each do |mut| #[tf_lr_sgd,tf_lr_scikit,tf_NN,tf_RF].each do |mut| mut == "1" ? row += ' & \cellcolor{red}' : row += ' & \cellcolor{green}' end puts row + ' \\\\' end end puts ' \end{longtable} \normalsize '