Generalized ESD outlier report for potatoes.tsv


In [1]:
%matplotlib inline

In [2]:
import numpy as np
import matplotlib.pylab as plt

# sudo pip install quantities
# sudo pip install git+https://github.com/sczesla/PyAstronomy.git
from PyAstronomy import pyasl # implements generalizedESD
import pandas as pd

from IPython.html import widgets # Widget definitions
from IPython.display import display # Used to display widgets in the notebook
from IPython.html.widgets.interaction import interact

In [10]:
from IPython.html.widgets.interaction import fixed

In [4]:
MPI_MATRIX = pd.read_csv('potatoes.tsv', sep='\t')

column_names = list(MPI_MATRIX.columns)
columns_dropdown = widgets.DropdownWidget(values=column_names)

In [5]:
def apply_generalizedESD(dataframe, column_name, max_num_outliers=10,
                         significance=0.05):
    array = dataframe[column_name]
    r = pyasl.generalizedESD(array, max_num_outliers,
                             significance, fullOutput=True)

    # Plot the "data"
    plt.plot(array, 'b.')
    # and mark the outliers.
    num_of_outliers = r[0]
    outlier_ids = r[1]
    for i in range(num_of_outliers):
      plt.plot(outlier_ids[i], array[outlier_ids[i]], 'rp')
    plt.show()
    
    print "Number of outliers: ", num_of_outliers
    print "Indices of outliers: ", outlier_ids
    print "        R      Lambda"
    for i in range(len(r[2])): # for each outlier candidate ...
      # index, "R statistics", lambda
      # NOTE: the lambda value determines which point
      #       is regarded as an outlier
      print "%2d  %8.5f  %8.5f" % ((i+1), r[2][i], r[3][i])

In [6]:
def cv(x):
    """calculates the coefficient of variation of x"""
    return np.std(x, ddof=1) / np.mean(x)

In [7]:
def esd_for_replicant_groups(dataframe, column_name, num_of_replicants=3):
    column = dataframe[column_name]

    results = []
    start = 0
    for i in range(len(column) / num_of_replicants):
        replicant_group = column[start:start+num_of_replicants]
        group_id = dataframe['group'][start]
        group_cv = cv(replicant_group)

        r = pyasl.generalizedESD(replicant_group, 1, alpha=0.05)
        num_of_outliers = r[0]
        outlier_ids_in_replicant_group = r[1]
        if outlier_ids_in_replicant_group: # if there is an outlier
            outlier_id = range(start, start+num_of_replicants)[outlier_ids_in_replicant_group[0]]
            results.append( (group_id, replicant_group, group_cv, outlier_id) )

        start += num_of_replicants
    return column, results

In [8]:
def esd_cv_replicant_groups(dataframe, column_name, cv_threshold=0.1):
    column, results = esd_for_replicant_groups(dataframe, column_name)
    if any(group_cv > cv_threshold for (group_id, group_values, group_cv, outlier_row) in results):
        print "Analyte: ", column_name
        plt.plot(column, 'b.')
        for (group_id, group_values, group_cv, outlier_row) in results:
            if group_cv > cv_threshold:
                print "outlier: {}, sample ID: {}".format(column[outlier_row], dataframe['id'][outlier_row])
                print "\tgroup ID: {}, values: {}, CV: {}".format(group_id, [round(v, 2) for v in group_values], round(group_cv, 2))
                plt.plot(outlier_row, column[outlier_row], 'rp')
    plt.show()

In [9]:
@interact(dataframe=fixed(MPI_MATRIX), cv_threshold=widgets.FloatSliderWidget(min=0.00, max=0.30, value=0.1, step=0.01))
def esd_cv_report(dataframe, cv_threshold):
    analyte_colnames = dataframe.columns[2:] # ignore group and id column
    for colname in analyte_colnames: 
        esd_cv_replicant_groups(dataframe, colname, cv_threshold=cv_threshold)
        print "\n\n"







Analyte:  05AEE292-E223-48B5-B0B6-DA88D117139D
outlier: 3.427924908, sample ID: 65FC5998-2ABA-4C2C-9CA1-3D2C47B8EEF7
	group ID: 11, values: [2.6, 2.64, 3.43], CV: 0.16
outlier: 2.663157757, sample ID: 293ADFE5-381F-4FC0-A215-D2723D867ABC
	group ID: 12, values: [3.08, 2.66, 2.96], CV: 0.07
outlier: 2.537996304, sample ID: D80F9CBC-093D-47B2-AA0D-F09F697858BA
	group ID: 16, values: [3.65, 2.54, 3.28], CV: 0.18
outlier: 2.919804626, sample ID: 01B3EE9F-C625-4CD0-9752-D129DA78A0BD
	group ID: 20, values: [2.92, 1.83, 1.89], CV: 0.28
outlier: 2.565507239, sample ID: 87CBC725-72B5-406E-8F04-894E2F6B825F
	group ID: 28, values: [2.23, 2.57, 2.27], CV: 0.08


Analyte:  05BC1ED4-187E-41DB-AFA6-C4529B8FCFA3
outlier: 3.266715775, sample ID: C7E74F94-B57A-4B33-A5AF-3B0EC07EB777
	group ID: 3, values: [2.76, 2.74, 3.27], CV: 0.1
outlier: 2.621831941, sample ID: 6585957A-6D6E-49EF-92E7-D8956D471B68
	group ID: 11, values: [2.92, 2.62, 3.13], CV: 0.09
outlier: 3.01043905, sample ID: 9CACE4C8-5331-49A9-B016-213461AAA87B
	group ID: 15, values: [3.44, 3.01, 3.42], CV: 0.07








Analyte:  0AE47E69-3FA6-471B-BFDF-AF84E4D3201F
outlier: 2.619705494, sample ID: C1CD1677-2F20-4C74-8FAA-798036D3AC48
	group ID: 1, values: [2.41, 2.2, 2.62], CV: 0.09
outlier: 2.199903559, sample ID: B15076C3-4F7B-4D52-88C1-7D741C784F08
	group ID: 5, values: [2.5, 2.59, 2.2], CV: 0.08
outlier: 2.092267289, sample ID: CB004AB1-4D9F-48DD-83E3-AB2877E29A79
	group ID: 13, values: [2.54, 2.46, 2.09], CV: 0.1
outlier: 2.794659616, sample ID: 812E7223-5C39-4177-A8F9-83AD9EF662F0
	group ID: 15, values: [2.79, 2.48, 2.46], CV: 0.07
outlier: 2.152530728, sample ID: 51243DDF-5689-4588-AD44-9E5AC0DC2D89
	group ID: 17, values: [2.58, 2.52, 2.15], CV: 0.1
outlier: 1.966062448, sample ID: D0A743D8-FF79-4DAF-BBD9-6700EFCB0F91
	group ID: 21, values: [2.52, 2.58, 1.97], CV: 0.14
outlier: 2.094597381, sample ID: 03303E03-496E-489F-A675-6E5D3F21A620
	group ID: 22, values: [2.09, 2.58, 2.56], CV: 0.11
outlier: 1.940430584, sample ID: 574FF197-EF99-4D90-94D7-952B7D51C24C
	group ID: 32, values: [2.76, 1.94, 2.63], CV: 0.18


Analyte:  0AECCB48-4FB5-4C79-8E80-2BFDC2703B65
outlier: 3.296935372, sample ID: 812E7223-5C39-4177-A8F9-83AD9EF662F0
	group ID: 15, values: [3.3, 3.94, 3.66], CV: 0.09


Analyte:  0F3D1985-DBA7-4525-92F5-CEF822A2A08F
outlier: 5.52077222, sample ID: B1AD4F42-AC59-432E-B186-E93A62DA16B1
	group ID: 8, values: [4.86, 4.72, 5.52], CV: 0.09
outlier: 4.355216284, sample ID: 217D4AB1-62B5-4927-B142-C85B6A2ABB6E
	group ID: 12, values: [4.36, 5.58, 5.96], CV: 0.16
outlier: 4.759096532, sample ID: 07E92A32-B8F5-4524-A684-09797C6F5EA2
	group ID: 31, values: [4.76, 5.52, 5.63], CV: 0.09


Analyte:  1045C80F-7C97-4B11-9675-318064A3F56B
outlier: 4.695834175, sample ID: C7E74F94-B57A-4B33-A5AF-3B0EC07EB777
	group ID: 3, values: [4.06, 4.21, 4.7], CV: 0.08
outlier: 4.361448004, sample ID: E49012F5-D18C-4FB4-A671-A9AA5E415D9F
	group ID: 7, values: [5.01, 4.96, 4.36], CV: 0.08
outlier: 4.476175963, sample ID: B5C1DF43-655D-4D54-8750-3EDABC0B3C1C
	group ID: 18, values: [4.48, 3.87, 3.88], CV: 0.09
outlier: 4.602964203, sample ID: E2CA8503-1715-4A6B-9C55-49A837397019
	group ID: 27, values: [4.0, 4.26, 4.6], CV: 0.07





Analyte:  12D39077-7A6C-4BA8-9EBB-CFFF87CD9770
outlier: 2.534615552, sample ID: 4E5CBDEA-C9AE-4BC2-8612-2E0DD144C849
	group ID: 1, values: [4.04, 2.53, 4.1], CV: 0.25





Analyte:  176F3289-5E77-4E1B-8695-FA71478F18F9
outlier: 4.232460162, sample ID: C7E74F94-B57A-4B33-A5AF-3B0EC07EB777
	group ID: 3, values: [3.63, 3.63, 4.23], CV: 0.09
outlier: 3.718382999, sample ID: 65FC5998-2ABA-4C2C-9CA1-3D2C47B8EEF7
	group ID: 11, values: [3.29, 3.12, 3.72], CV: 0.09
outlier: 3.373933951, sample ID: 293ADFE5-381F-4FC0-A215-D2723D867ABC
	group ID: 12, values: [3.91, 3.37, 3.79], CV: 0.08
outlier: 3.815708746, sample ID: 9CACE4C8-5331-49A9-B016-213461AAA87B
	group ID: 15, values: [4.48, 3.82, 4.36], CV: 0.08





Analyte:  190602A3-5AC5-405A-9328-8BD78D23B174
outlier: 3.78687876, sample ID: 48470EB5-795D-4DD5-809B-6268F0414A9E
	group ID: 10, values: [3.79, 3.38, 3.28], CV: 0.08
outlier: 3.934219805, sample ID: B5C1DF43-655D-4D54-8750-3EDABC0B3C1C
	group ID: 18, values: [3.93, 3.54, 3.38], CV: 0.08
outlier: 3.224904515, sample ID: B6875EAB-4AAB-4D71-9517-D2D871980F2B
	group ID: 26, values: [3.62, 3.22, 3.83], CV: 0.09


Analyte:  1982CFBF-461A-4256-AEAA-DD89D18F28FE
outlier: 3.04746413, sample ID: 514CDE73-476B-4902-A740-A3672C9B1A1C
	group ID: 2, values: [3.05, 2.67, 2.52], CV: 0.1
outlier: 1.846686382, sample ID: 66CEFE9E-F6E2-43DA-B1C7-E541779C147C
	group ID: 7, values: [1.85, 2.36, 2.43], CV: 0.14
outlier: 2.102287738, sample ID: E89302B1-F772-46FB-BBDD-D463BAAF7C6F
	group ID: 9, values: [2.29, 2.46, 2.1], CV: 0.08
outlier: 1.953455047, sample ID: 48470EB5-795D-4DD5-809B-6268F0414A9E
	group ID: 10, values: [1.95, 2.39, 2.69], CV: 0.16
outlier: 2.003417908, sample ID: 65FC5998-2ABA-4C2C-9CA1-3D2C47B8EEF7
	group ID: 11, values: [2.67, 2.64, 2.0], CV: 0.16
outlier: 2.643260209, sample ID: D9C58A9A-B385-4572-BD67-3674396241F3
	group ID: 19, values: [2.27, 2.44, 2.64], CV: 0.08
outlier: 1.844452163, sample ID: 167FB251-31AB-4F3E-95A3-17BC3B62FC45
	group ID: 28, values: [1.84, 2.57, 2.4], CV: 0.17





Analyte:  1CFD4B4B-DB79-44CC-A47E-7806308FDDA9
outlier: 3.685953849, sample ID: E49012F5-D18C-4FB4-A671-A9AA5E415D9F
	group ID: 7, values: [3.0, 3.34, 3.69], CV: 0.1
outlier: 3.047381629, sample ID: FC1BB9CB-F037-41CE-AF41-38B407533843
	group ID: 29, values: [3.6, 3.36, 3.05], CV: 0.08


Analyte:  1E0DFE20-FCD1-43DF-8DE2-901E95A51523
outlier: 5.052382391, sample ID: 167FB251-31AB-4F3E-95A3-17BC3B62FC45
	group ID: 28, values: [5.05, 2.84, 2.99], CV: 0.34



































Analyte:  3AEA26F8-8B7D-4864-AB5E-F1CACB05D741
outlier: 2.79281053, sample ID: 4E5CBDEA-C9AE-4BC2-8612-2E0DD144C849
	group ID: 1, values: [3.2, 2.79, 3.11], CV: 0.07
outlier: 3.988306287, sample ID: E49012F5-D18C-4FB4-A671-A9AA5E415D9F
	group ID: 7, values: [4.66, 4.68, 3.99], CV: 0.09
outlier: 4.294590255, sample ID: B5C1DF43-655D-4D54-8750-3EDABC0B3C1C
	group ID: 18, values: [4.29, 3.77, 3.77], CV: 0.08








Analyte:  4485ADB0-AF5F-4A51-BF60-702F4C975DE2
outlier: 4.027731352, sample ID: 9457664E-DEB6-4F6F-9F9B-4446A9DF36E1
	group ID: 2, values: [4.45, 4.65, 4.03], CV: 0.07
outlier: 4.566868187, sample ID: CF272A46-0CF8-48F2-B191-51EFEBAE6503
	group ID: 4, values: [4.12, 4.0, 4.57], CV: 0.07
outlier: 4.506650639, sample ID: 42E5D201-7D6E-4CE2-8E3B-945BE2CD5565
	group ID: 17, values: [3.89, 4.51, 4.04], CV: 0.08

















Analyte:  556EA0EF-8989-41AE-8023-7703DAC7160C
outlier: 3.319842602, sample ID: CB375D18-8883-4F4D-B509-EA4C29B1B179
	group ID: 21, values: [4.23, 3.32, 4.15], CV: 0.13














Analyte:  5DD39B17-CA54-4C20-BD84-FA7F88DA5B69
outlier: 4.597400739, sample ID: 6FCCD59F-D7D4-4EEC-9512-02D961792DDA
	group ID: 20, values: [4.11, 4.6, 4.0], CV: 0.07
outlier: 4.360696362, sample ID: 30EFB6B2-ECCE-48A4-8BC0-B729C9B4240F
	group ID: 32, values: [4.36, 4.82, 5.03], CV: 0.07











Analyte:  665AC2DC-49CB-4284-A05C-1B1CDEFE2A0B
outlier: 4.029408547, sample ID: 572EDE11-EC65-4996-B15E-64F9AEE8B64F
	group ID: 14, values: [3.46, 3.32, 4.03], CV: 0.1
outlier: 3.472027976, sample ID: BD90AB5D-74F2-41BA-8A28-A58B28F9DC74
	group ID: 15, values: [3.97, 3.97, 3.47], CV: 0.08
outlier: 4.225837726, sample ID: 534FFBA0-992E-4235-85B4-7CDB0D88A7EC
	group ID: 22, values: [3.7, 4.23, 3.77], CV: 0.07


Analyte:  6689E110-85D0-445C-8056-108724435D89
outlier: 3.615974979, sample ID: CB375D18-8883-4F4D-B509-EA4C29B1B179
	group ID: 21, values: [6.3, 3.62, 6.0], CV: 0.28





Analyte:  696B8E8A-DD8D-440A-853E-5878B584288D
outlier: 2.068330187, sample ID: 969DBA98-FB91-4CCB-BA66-A66022CD7F3A
	group ID: 8, values: [2.07, 2.65, 2.64], CV: 0.14
outlier: 1.682105252, sample ID: 7F288F6E-3329-4C6D-A30C-29217D2D186E
	group ID: 12, values: [1.97, 1.97, 1.68], CV: 0.09
outlier: 2.341763662, sample ID: E6C81A41-CBFC-43BF-BD1B-8A78CF85BFF4
	group ID: 16, values: [1.99, 2.12, 2.34], CV: 0.08
outlier: 1.897028159, sample ID: 9912C224-C772-4E4D-B1B9-A2952355902C
	group ID: 20, values: [2.45, 2.3, 1.9], CV: 0.13
outlier: 2.292381803, sample ID: 87E711F2-E724-4E11-BD29-6E26EECB5A72
	group ID: 24, values: [2.61, 2.29, 2.66], CV: 0.08


Analyte:  6B2C9674-5F06-436A-8FF6-DC15BAAADD80
outlier: 2.382683843, sample ID: 9457664E-DEB6-4F6F-9F9B-4446A9DF36E1
	group ID: 2, values: [2.73, 2.68, 2.38], CV: 0.07
outlier: 3.189713454, sample ID: C7E74F94-B57A-4B33-A5AF-3B0EC07EB777
	group ID: 3, values: [2.22, 2.14, 3.19], CV: 0.23
outlier: 3.532362232, sample ID: 2774CFBA-5186-4DC9-9A50-49004B6F4815
	group ID: 6, values: [3.53, 2.39, 1.92], CV: 0.32
outlier: 2.59885854, sample ID: E49012F5-D18C-4FB4-A671-A9AA5E415D9F
	group ID: 7, values: [2.03, 2.31, 2.6], CV: 0.12
outlier: 3.832150436, sample ID: A9AC4E79-0AEB-46FC-9EF4-13FF2F67E974
	group ID: 8, values: [2.57, 3.83, 2.69], CV: 0.23
outlier: 3.342308227, sample ID: 4B0FBD67-5BC6-46F8-8D7D-45771CF89004
	group ID: 9, values: [3.34, 2.68, 2.45], CV: 0.16
outlier: 3.526655629, sample ID: 48470EB5-795D-4DD5-809B-6268F0414A9E
	group ID: 10, values: [3.53, 2.54, 2.81], CV: 0.17
outlier: 2.762288322, sample ID: 217D4AB1-62B5-4927-B142-C85B6A2ABB6E
	group ID: 12, values: [2.76, 2.46, 2.25], CV: 0.1
outlier: 3.072864529, sample ID: 2C51C8B8-7DDC-4E3E-B49A-2FB959C42AA5
	group ID: 13, values: [3.07, 2.51, 2.46], CV: 0.13
outlier: 3.633290295, sample ID: 9FC80056-0862-4EFD-A309-2511B32C05B2
	group ID: 16, values: [3.63, 2.38, 2.62], CV: 0.23
outlier: 2.155130258, sample ID: 42E5D201-7D6E-4CE2-8E3B-945BE2CD5565
	group ID: 17, values: [2.71, 2.16, 2.48], CV: 0.11
outlier: 1.998224118, sample ID: B5C1DF43-655D-4D54-8750-3EDABC0B3C1C
	group ID: 18, values: [2.0, 2.47, 2.33], CV: 0.11
outlier: 2.389720058, sample ID: 9912C224-C772-4E4D-B1B9-A2952355902C
	group ID: 20, values: [2.06, 1.95, 2.39], CV: 0.11
outlier: 5.109459322, sample ID: 534FFBA0-992E-4235-85B4-7CDB0D88A7EC
	group ID: 22, values: [2.53, 5.11, 2.44], CV: 0.45
outlier: 1.836009936, sample ID: 5965D4C8-CED7-43B1-B41D-73F5F62E6519
	group ID: 23, values: [1.84, 2.22, 2.35], CV: 0.12
outlier: 2.132597237, sample ID: E08A1ABB-9ADA-41AD-9FA0-ABA916DA6551
	group ID: 24, values: [2.56, 2.81, 2.13], CV: 0.14
outlier: 2.677923782, sample ID: C952EB0E-7130-4DA6-A5BB-2A89E0A3706F
	group ID: 25, values: [2.36, 2.68, 2.27], CV: 0.09
outlier: 2.944456258, sample ID: A93FD060-3D1A-45E6-87CC-7B3BFCB78CF1
	group ID: 26, values: [2.94, 2.67, 2.49], CV: 0.08
outlier: 3.796871651, sample ID: B7E1C045-0F99-408B-9960-705737A01DB7
	group ID: 27, values: [2.53, 3.8, 2.55], CV: 0.24
outlier: 2.020010094, sample ID: DE16EB7A-221D-407F-8A61-2F8E494701AA
	group ID: 28, values: [3.12, 3.43, 2.02], CV: 0.26
outlier: 2.484947927, sample ID: 84B6107F-2EA8-4904-96EC-752179619F52
	group ID: 31, values: [1.81, 2.48, 1.81], CV: 0.19








Analyte:  741D97D6-E08F-45A8-A2A4-35E151FE3EFA
outlier: 2.775081761, sample ID: 4E5CBDEA-C9AE-4BC2-8612-2E0DD144C849
	group ID: 1, values: [3.41, 2.78, 3.16], CV: 0.1
outlier: 2.796298579, sample ID: B8D7B297-56B3-4698-8611-593452812545
	group ID: 3, values: [3.13, 2.8, 3.43], CV: 0.1
outlier: 2.947827536, sample ID: 761901A1-6FC6-4B0E-B5D2-368B555E53A9
	group ID: 4, values: [2.95, 3.36, 3.5], CV: 0.09
outlier: 2.858370475, sample ID: E05F132D-9EEA-4E07-9104-999AA7B93D84
	group ID: 6, values: [3.36, 3.43, 2.86], CV: 0.1
outlier: 3.010776745, sample ID: E89302B1-F772-46FB-BBDD-D463BAAF7C6F
	group ID: 9, values: [3.51, 3.4, 3.01], CV: 0.08
outlier: 2.904918859, sample ID: B988AE0D-E130-4DDE-AF09-950B348615DE
	group ID: 10, values: [3.46, 3.3, 2.9], CV: 0.09
outlier: 3.447629979, sample ID: 65FC5998-2ABA-4C2C-9CA1-3D2C47B8EEF7
	group ID: 11, values: [3.1, 3.0, 3.45], CV: 0.07
outlier: 3.663057728, sample ID: 42E5D201-7D6E-4CE2-8E3B-945BE2CD5565
	group ID: 17, values: [3.15, 3.66, 3.08], CV: 0.1
outlier: 3.691204618, sample ID: 42BBBA81-FEAD-4F4C-B162-39F9C8080F76
	group ID: 19, values: [3.69, 3.16, 3.1], CV: 0.1
outlier: 3.102873586, sample ID: E08A1ABB-9ADA-41AD-9FA0-ABA916DA6551
	group ID: 24, values: [3.49, 3.73, 3.1], CV: 0.09
outlier: 2.981472647, sample ID: A8E128B6-CCF5-46CA-AFF9-70E14463DB3C
	group ID: 27, values: [2.98, 3.67, 3.67], CV: 0.12











Analyte:  7CEFBF18-5BCD-4687-885E-A4B058111B1A
outlier: 3.570018991, sample ID: E6C81A41-CBFC-43BF-BD1B-8A78CF85BFF4
	group ID: 16, values: [4.31, 4.21, 3.57], CV: 0.1
outlier: 4.123985046, sample ID: C952EB0E-7130-4DA6-A5BB-2A89E0A3706F
	group ID: 25, values: [3.58, 4.12, 3.64], CV: 0.08
outlier: 3.841570719, sample ID: F2B28762-E16B-45DC-A50D-3A21C2D777DF
	group ID: 30, values: [4.24, 4.43, 3.84], CV: 0.07
outlier: 3.870237428, sample ID: 30EFB6B2-ECCE-48A4-8BC0-B729C9B4240F
	group ID: 32, values: [3.87, 4.49, 4.19], CV: 0.07











Analyte:  91B710F2-5869-4818-A56C-AA4F85F06AC3
outlier: 2.829191903, sample ID: 514CDE73-476B-4902-A740-A3672C9B1A1C
	group ID: 2, values: [2.83, 3.18, 3.23], CV: 0.07
outlier: 3.604818764, sample ID: 6585957A-6D6E-49EF-92E7-D8956D471B68
	group ID: 11, values: [3.09, 3.6, 3.33], CV: 0.08
outlier: 2.77478641, sample ID: 217D4AB1-62B5-4927-B142-C85B6A2ABB6E
	group ID: 12, values: [2.77, 3.2, 3.29], CV: 0.09
outlier: 3.457453977, sample ID: 84B6107F-2EA8-4904-96EC-752179619F52
	group ID: 31, values: [3.76, 3.46, 4.06], CV: 0.08























Analyte:  A1449440-5579-4BBC-AC5A-76A10657FCB2
outlier: 4.987554441, sample ID: C7E74F94-B57A-4B33-A5AF-3B0EC07EB777
	group ID: 3, values: [4.45, 4.38, 4.99], CV: 0.07
outlier: 5.044371334, sample ID: 65FC5998-2ABA-4C2C-9CA1-3D2C47B8EEF7
	group ID: 11, values: [4.39, 4.48, 5.04], CV: 0.08
outlier: 4.354792173, sample ID: 30EFB6B2-ECCE-48A4-8BC0-B729C9B4240F
	group ID: 32, values: [4.35, 4.88, 5.06], CV: 0.08