def test_nonprotein_residues_analysisbase(tmpdir): """Test for Issue #24 - remove once PDBWriter is fixed""" u = mda.Universe(GRO, XTC) with tmpdir.as_cwd(): wmsg = "Non protein atoms passed" with pytest.warns(UserWarning, match=wmsg): pkatraj = propkatraj.PropkaTraj(u, select="not protein")
def test_single_frame_regression_analysisbase(tmpdir, u, selection): """Single frame PropkaTraj regression test""" with tmpdir.as_cwd(): if selection == 'ag': pkatraj = propkatraj.PropkaTraj(u.select_atoms('protein'), select=None) elif selection == 'array': selection = u.select_atoms('protein').ix pkatraj = propkatraj.PropkaTraj(u, select=selection) else: pkatraj = propkatraj.PropkaTraj(u) pkatraj.run(stop=1) # load reference data ref_resnums, ref_pkas = pka_from_file(PSF_FRAME_ZERO_PKA) # test residue numbers resnums = pkatraj.pkas.columns.to_numpy() assert_equal(resnums, ref_resnums) # test pka values assert_almost_equal(pkatraj.pkas.values[0], ref_pkas, decimal=2)
def test_skipframe_pass_analysisbase(tmpdir, caplog, top, traj, framenum): """Test for Issue #10 - passes, logging raise""" u = mda.Universe(top, traj) with tmpdir.as_cwd(): wmsg = "failure on frame: {0}".format(framenum) with pytest.warns(UserWarning, match=wmsg): pkatraj = propkatraj.PropkaTraj(u, skip_failure=True) pkatraj.run() perc = 1 / u.trajectory.n_frames * 100 msg = ("number of failed frames = 1\n" "percentage failure = {0}\n" "failed frames: {1}".format(perc, [framenum])) assert msg in caplog.records[0].message # times should have been modified in-place assert len(pkatraj.times) == (len(u.trajectory) - 1) assert u.trajectory[framenum].time not in pkatraj.times
def test_start_stop_step_analysisbase(tmpdir, u, start, stop, step): """Basic test to make sure the dataframe gets populated with the right dimensions""" with tmpdir.as_cwd(): pkatraj = propkatraj.PropkaTraj(u) pkatraj.run(start=start, stop=stop, step=step) start, stop, step = u.trajectory.check_slice_indices(start, stop, step) nframes = len(range(start, stop, step)) # There should be nframes rows and 75 columns assert len(pkatraj.pkas) == nframes assert len(pkatraj.pkas.columns) == 75 # index should be time assert pkatraj.pkas.index.name == 'time' times = np.array(range(start, stop, step), dtype=np.float32) + 1 assert_almost_equal(pkatraj.pkas.index.values, times, decimal=5)
def test_multi_frame_regression_analysisbase(tmpdir, u, glu_ref): """Multiframe propkatraj call basic regression test Note: slow test """ with tmpdir.as_cwd(): pkatraj = propkatraj.PropkaTraj(u) pkatraj.run(step=10) # load reference data for resnum and the last frame pka ref_resnums, ref_pkas = pka_from_file(PSF_FRAME_NINETY_PKA) # test residue numbers resnums = pkatraj.pkas.columns.to_numpy() assert_equal(resnums, ref_resnums) # test final frame pka values assert_almost_equal(pkatraj.pkas.values[-1], ref_pkas, decimal=2) # test one data series: glu 162 assert_almost_equal(pkatraj.pkas[162].values, glu_ref, decimal=2)
#write file with python propka_run.py xxx.pdb xxx.xtc import MDAnalysis as mda import sys from MDAnalysisTests.datafiles import PDB, XTC u = mda.Universe(sys.argv[1], sys.argv[2]) #import file here import propkatraj #import module protein = u.select_atoms('protein') #defining your protein pkatraj = propkatraj.PropkaTraj(protein) pkatraj.run(verbose=True) pkatraj.pkas pkatraj.pkas.describe() data = pkatraj.pkas data.to_csv("pka-trajctory-full.csv") #save file data2 = pkatraj.pkas.describe() data2.to_csv("pka-trajctory-summary.csv")
def test_skipframe_error_analysisbase(tmpdir, u_badframe): """Test for Issue #10 - Error raised""" with tmpdir.as_cwd(): with pytest.raises(RuntimeError, match="failure on frame"): pkatraj = propkatraj.PropkaTraj(u_badframe) pkatraj.run()