示例#1
0
def test_phi_table(pheno_phi):
    phi_table_file = table.NONMEMTableFile(pheno_phi)
    phi_table = phi_table_file.table
    assert phi_table.problem == 1
    assert phi_table.subproblem == 0
    assert phi_table.iteration2 == 0
    assert phi_table.method == "First Order Conditional Estimation with Interaction"
    assert phi_table.goal_function is None
示例#2
0
def test_cov_table(pheno_cov):
    cov_table_file = table.NONMEMTableFile(pheno_cov)
    cov_table = cov_table_file.table
    df = cov_table.data_frame
    paramnames = ['THETA(1)', 'THETA(2)', 'THETA(3)', 'OMEGA(1,1)', 'OMEGA(2,2)', 'SIGMA(1,1)']
    assert list(df.columns) == paramnames
    assert list(df.index) == paramnames
    assert df.values[0][0] == 4.41151e-8
    assert df.values[0][3] == -1.09343e-6
示例#3
0
def test_nonmem_table(pheno_ext):
    ext_table_file = table.NONMEMTableFile(pheno_ext)
    assert list(ext_table_file.table.data_frame.columns) == [
        'ITERATION',
        'THETA(1)',
        'THETA(2)',
        'THETA(3)',
        'OMEGA(1,1)',
        'OMEGA(2,1)',
        'OMEGA(2,2)',
        'SIGMA(1,1)',
        'OBJ',
    ]
示例#4
0
def test_ext_table(pheno_ext):
    ext_table_file = table.NONMEMTableFile(pheno_ext)
    ext_table = ext_table_file.table
    assert ext_table.problem == 1
    assert ext_table.subproblem == 0
    assert ext_table.iteration2 == 0
    assert ext_table.method == "First Order Conditional Estimation with Interaction"
    assert ext_table.goal_function == "MINIMUM VALUE OF OBJECTIVE FUNCTION"
    assert ext_table.final_parameter_estimates['THETA(1)'] == 0.00469555
    assert list(
        ext_table.fixed) == [False, False, False, False, True, False, False]
    assert ext_table.final_ofv == 586.27605628188053
    assert ext_table.initial_ofv == 587.36644134661617
示例#5
0
def test_create_phi_table(fs):
    df = pd.DataFrame({'ETA(1)': [1, 2], 'ETA(2)': [5, 6]}, index=[1, 2])
    df.index.name = 'ID'
    phi = table.PhiTable(df=df)
    phi.create_content()
    correct = ''' SUBJECT_NO   ID           ETA(1)       ETA(2)      
            1            1  1.00000E+00  5.00000E+00
            2            2  2.00000E+00  6.00000E+00
'''  # noqa W291
    assert phi.content == correct

    table_file = table.NONMEMTableFile(tables=[phi])
    table_file.write('my.phi')
    with open('my.phi', 'r') as fp:
        cont = fp.read()
    correct = 'TABLE NO.     1\n' + correct
    assert cont == correct
示例#6
0
def test_ofv_table_gap(testdata):
    p = Path(testdata / 'nonmem' / 'modelfit_results' / 'multPROB' /
             'multEST' / 'withSIM')
    rfile = rf.NONMEMResultsFile(p / 'multprobmix_nm730.lst')

    assert rfile.estimation_status(2) == {
        'minimization_successful': False,
        'estimate_near_boundary': False,
        'rounding_errors': False,
        'maxevals_exceeded': True,
        'significant_digits': nan,
        'function_evaluations': 16,
        'warning': False,
    }

    table_numbers = (1, 2, 3, 4, 6, 8, 10, 11, 12, 13)
    ext_table_file = table.NONMEMTableFile(p / 'multprobmix_nm730.ext')

    for n in table_numbers:
        assert rfile.ofv(n) == pytest.approx(
            ext_table_file.table_no(n).final_ofv)