## Materials and Methods
### Machine Learning Models  
We use supervised Machine Learning classifiers to predict the genetic disease of the patient (KRAS+ or KRAS-) from the CT sequence, represented as a texture feature vector for each slice. The classifier learns a function from examples (diagnosed patients using biopsy) that predicts the diagnosis of the patient from the CT sequence. The trained classifier can generalize its prediction to new patients that have not been seen during training. In the current study, we selected some of the classifiers identified as best-performing in our exhaustive comparison [25]. These classifiers are:  
* Support Vector Machine (SVM), a state-of-the-art classifier that simultaneously minimizes the training error and the classification margin of a hyperplane (related to the ability of generalization) on a hidden space projected from the input space using a non-linear kernel. We used the _LibSVM_ library ([[https://www.cse.ntu.edu.tw/](https://www.cse.ntu.edu.tw/)]([https://www.cse.ntu.edu.tw/](https://www.cse.ntu.edu.tw/))\(\sim\)cjlin/libsvm) under the Octave interface. The hyper-parameters of the SVM are the inverse spread \(\gamma\) of the Radial Basis Function kernel, tuned with values \(2^{-10}\), \(2^{-8}\), \(2^{-6}\),..., \(2^{10}\), and the regularization parameter \(C\), tuned with values \(2^{-5}\), \(2^{-3}\), \(2^{-1}\),..., \(2^{10}\).
* Gradient Boosting Machine (GBM) is an ensemble of classification trees trained using the functional gradient descent variant of the Boosting algorithm. We used the _gbm_ package of the R statistical computing language ([[http://www.r-project.org](http://www.r-project.org)]([http://www.r-project.org](http://www.r-project.org))), tuning the maximum depth of each tree (from 1 to 10) and the number of trees in the ensemble (from 50 to 500). The specific values of each parameter are generated using the utilities of the _caret_ R package, being in general different for each combination of features.
* Multi-Layer Perceptron Neural Network (NNET) is the classical neural network, trained using the Back-Propagation algorithm implemented by the _nnet_ package in R. The hyper-parameters, defined by the _caret_ package, are the number of hidden neurons (tuned with values from 1 to 19) and the weight decay (10 values from 0.1 to 0.001).
* Random Forest (RF) is a bagging ensemble of random classification trees which is also considered a state-of-the-art classifier. Each node in the tree splits one input in two intervals, and each tree learns a different view of the classification problem. A datum is classified using a voting among all the trees in the forest. We used an RF of 500 trees, implemented by the _randomForest_ R package, tuning the hyper-parameter _mtry_ (number of variables that are randomly sampled as candidates in each split), with values between 2 and the number of inputs.
* Linear Discriminant Analysis (LDA), is a classical approach that performs a linear classification oriented to simultaneously maximize the inter-class variance and minimize the within-class variance. This linear mapping is defined by the eigenvectors associated to the largest eigenvalues of the inter-class and within-class covariance matrices. Usually, LDA is used for dimensionality reduction prior to classification with more powerful classifiers. We included it in our study to provide a baseline performance for the remaining classifiers. We used the _lda_ function in the _MASS_ R package.