def dropNaNs(df, ClassVar='none'):

    """
    Given the omics data passed as a dataframe, and (optionally) the name of a
    class variable, it
    
    i) prints the total number of samples in the dataset.
    ii) if none of the samples have any missing values, it returns the same dataframe, else:
        a) number of samples having missing values are reported
        b) these samples are removed from the dataset
        c) number of samples remained in the dataset after removing with missing values, are reported
        d) returns the updated dataframe
    """   
    print("\n*********************************************")
    print("Number of samples in the dataset: {0}".format(df.shape[0]))
    print("*********************************************")

    if ClassVar == 'none':
        dfdna = df.dropna()
    else:
        dfdna = df.dropna(subset=[ClassVar])

    if df.shape[0] > dfdna.shape[0]:
        print("Number of samples having missing values: {0}".format(df.shape[0]- dfdna.shape[0]))
        print("Number of samples remained after dropping samples with missing data: {0}".format(dfdna.shape[0]))
    else:
        print("There are no samples with missing values!")
        
    return dfdna