Esempio n. 1
0
def test_lipid_grid_surface_area():
    name_dict = {'DOPE': ['P'], 'POPC': ['P'], 'TLCL2': ['P1', 'P3']}
    analyzer = BilayerAnalyzer(
        structure='../pybilt/sample_bilayer/sample_bilayer.psf',
        trajectory='../pybilt/sample_bilayer/sample_bilayer_10frames.dcd',
        selection="resname POPC DOPE TLCL2")
    analyzer.remove_analysis('msd_1')
    analyzer.rep_settings['com_frame']['name_dict'] = name_dict
    analyzer._analysis_protocol.use_objects['lipid_grid'] = True
    # adjust the number of bins for gridding
    nbins = 100
    analyzer.rep_settings['lipid_grid']['n_xbins'] = nbins
    analyzer.rep_settings['lipid_grid']['n_ybins'] = nbins
    analyzer.set_frame_range(0, 1, 1)
    for _frame in analyzer:
        sa_upper, sa_lower = analyzer.reps['lipid_grid'].surface_area(
            filter_sigma=5.0)
        print(("surface for upper leaflet: {} lower leaflet {}".format(
            sa_upper, sa_lower)))
        box_area = analyzer.reps['current_mda_frame'].dimensions[0:2].prod()
        print(("box area: {}".format(box_area)))
        area_diff = (sa_upper + sa_lower) - (2.0 * box_area)
        print(area_diff)
        area_ratio = (sa_upper + sa_lower) / (2.0 * box_area)
        print(area_ratio)
        kc = (scicon.k * 303.15 * np.log(300.0)) / (8.0 * np.pi *
                                                    (area_ratio - 1.0))
        print(kc)
    return
Esempio n. 2
0
def test_analysis_iterator():
    print("testing the analysis iterator...")
    # initialize analyzer with keyword options--and default analysis
    sel_string = "segid MEMB"
    ba = BilayerAnalyzer(
        structure='../pybilt/sample_bilayer/sample_bilayer.psf',
        trajectory='../pybilt/sample_bilayer/sample_bilayer_10frames.dcd',
        selection=sel_string,
    )
    # add analysis by string input
    ba.add_analysis('msd msd_2 leaflet upper resname POPC')
    print('Doing analysis iteration...')
    for _frame in ba:
        print(ba.reps['com_frame'])
        print(" ")
Esempio n. 3
0
def test_analysis_defaults():
    print("testing the default settings of all analysis protocols...")
    sel_string = "segid MEMB"
    ba = BilayerAnalyzer(
        structure='../pybilt/sample_bilayer/sample_bilayer.psf',
        trajectory='../pybilt/sample_bilayer/sample_bilayer_10frames.dcd',
        selection=sel_string,
    )
    for key in valid_analysis:
        analysis_in = [key, key+"_t", dict()]
        ba.add_analysis(analysis_in)
    ba.settings['print_interval'] = 1
    ba.print_analysis_protocol()
    ba.run_analysis()
    print("outputs:")
    for key in valid_analysis:
        a_id = key+"_t"
        print(a_id+":")
        print(ba.get_analysis_data(a_id))
Esempio n. 4
0
def test_lipid_grid_pdb_writer():
    sel_string = "resname POPC DOPE TLCL2"
    name_dict = {'DOPE': ['P'], 'POPC': ['P'], 'TLCL2': ['P1', 'P3']}
    analyzer = BilayerAnalyzer(
        structure='../pybilt/sample_bilayer/sample_bilayer.psf',
        trajectory='../pybilt/sample_bilayer/sample_bilayer_10frames.dcd',
        selection="resname POPC DOPE TLCL2")
    analyzer.remove_analysis('msd_1')
    analyzer.rep_settings['com_frame']['name_dict'] = name_dict
    analyzer._analysis_protocol.use_objects['lipid_grid'] = True
    # adjust the number of bins for gridding
    nbins = 75
    analyzer.rep_settings['lipid_grid']['n_xbins'] = nbins
    analyzer.rep_settings['lipid_grid']['n_ybins'] = nbins
    analyzer.set_frame_range(0, 5, 1)
    i = 0
    zgrid = None
    for _frame in analyzer:
        if i == 0:
            zgrid = analyzer.reps['lipid_grid'].leaf_grid['upper'].lipid_grid_z
        else:
            zgrid += analyzer.reps['lipid_grid'].leaf_grid[
                'upper'].lipid_grid_z
        i += 1
    zgrid /= i
    analyzer.reps['lipid_grid'].write_pdb('lipid_grid_t0.pdb',
                                          leaflet='both',
                                          beta_grid_upper=zgrid)

    analyzer.reps['lipid_grid'].write_pdb('lipid_grid_t1.pdb',
                                          leaflet='upper',
                                          z_grid_upper=zgrid)
    analyzer.reps['lipid_grid'].write_pdb('lipid_grid_t2.pdb',
                                          leaflet='both',
                                          use_gaussian_filter=True,
                                          filter_sigma=5.0)

    return
def test_lipid_grid_curvature():
    sel_string = "resname POPC DOPE TLCL2"
    name_dict = {'DOPE': ['P'], 'POPC': ['P'], 'TLCL2': ['P1', 'P3']}
    analyzer = BilayerAnalyzer(
        structure='../pybilt/sample_bilayer/sample_bilayer.psf',
        trajectory='../pybilt/sample_bilayer/sample_bilayer_10frames.dcd',
        selection="resname POPC DOPE TLCL2")
    analyzer.remove_analysis('msd_1')
    analyzer.rep_settings['com_frame']['name_dict'] = name_dict
    analyzer._analysis_protocol.use_objects['lipid_grid'] = True
    # adjust the number of bins for gridding
    nbins = 75
    analyzer.rep_settings['lipid_grid']['n_xbins'] = nbins
    analyzer.rep_settings['lipid_grid']['n_ybins'] = nbins
    analyzer.set_frame_range(0, 1, 1)
    i = 0
    zgrid = None
    for _frame in analyzer:
        if i == 0:
            zgrid = analyzer.reps['lipid_grid'].leaf_grid['upper'].lipid_grid_z
        else:
            zgrid += analyzer.reps['lipid_grid'].leaf_grid[
                'upper'].lipid_grid_z
        i += 1
    zgrid_i = zgrid / float(i)
    zgrid_i_f = gaussian_filter(zgrid_i, 5.0, mode="nearest")
    x_vals = analyzer.reps['lipid_grid'].leaf_grid['upper'].x_centers
    y_vals = analyzer.reps['lipid_grid'].leaf_grid['upper'].y_centers
    curvature_grids_i = grid_curvature(x_vals, y_vals, zgrid_i_f)
    xyzc_mean = analyzer.reps['lipid_grid'].get_xyzc(
        leaflet='upper', color_grid=curvature_grids_i[0])['upper']
    #xyzc_u_mean_i = (x_vals, y_vals, x_vals, curvature_grids_i[0].flatten())
    pgf.plot_grid_as_scatter(xyzc_mean, save=False, show=False, colorbar=True)
    analyzer.reps['lipid_grid'].curvature()

    return
Esempio n. 6
0
def test_lipid_grid_opt():
    sel_string = "resname POPC DOPE TLCL2"
    name_dict = {'DOPE': ['P'], 'POPC': ['P'], 'TLCL2': ['P1', 'P3']}
    analyzer = BilayerAnalyzer(
        structure='../pybilt/sample_bilayer/sample_bilayer.psf',
        trajectory='../pybilt/sample_bilayer/sample_bilayer_10frames.dcd',
        selection="resname POPC DOPE TLCL2")
    analyzer.remove_analysis('msd_1')
    analyzer.rep_settings['com_frame']['name_dict'] = name_dict
    #analyzer._analysis_protocol.use_objects['lipid_grid'] = True
    # adjust the number of bins for gridding
    nbins = 100
    #analyzer.rep_settings['lipid_grid']['n_xbins'] = nbins
    #analyzer.rep_settings['lipid_grid']['n_ybins'] = nbins
    analyzer.set_frame_range(0, 1, 1)
    i = 0
    zgrid = None
    for _frame in analyzer:
        lipid_grid = lg.LipidGrids(analyzer.reps['com_frame'],
                                   analyzer.reps['leaflets'], [0, 1],
                                   nxbins=nbins,
                                   nybins=nbins)
        lipid_grid_opt = lgo.LipidGrids(analyzer.reps['com_frame'],
                                        analyzer.reps['leaflets'], [0, 1],
                                        nxbins=nbins,
                                        nybins=nbins)

        lg_u = lipid_grid.leaf_grid['upper'].lipid_grid
        lgo_u = lipid_grid_opt.leaf_grid['upper'].lipid_grid
        lg_l = lipid_grid.leaf_grid['lower'].lipid_grid
        lgo_l = lipid_grid_opt.leaf_grid['lower'].lipid_grid
        print((np.array_equal(lg_u, lgo_u)))
        print((np.array_equal(lg_l, lgo_l)))
        comp_l = lg_l == lgo_l
        wh = np.where(comp_l == False)
        print(wh)
        print((lg_l[wh]))
        print((lgo_l[wh]))
        # break
    return
Esempio n. 7
0
def test_leaflet_builder():
    sel_string = "resname POPC DOPE TLCL2"
    name_dict = {'DOPE': ['P'], 'POPC': ['P'], 'TLCL2': ['P1', 'P3']}
    analyzer = BilayerAnalyzer(
        structure='../pybilt/sample_bilayer/sample_bilayer.psf',
        trajectory='../pybilt/sample_bilayer/sample_bilayer_10frames.dcd',
        selection="resname POPC DOPE TLCL2")

    analyzer.rep_settings['com_frame']['name_dict'] = name_dict
    # Assign the leaflets using the 'avg_norm' method. (This is actually the
    # default).
    analyzer.adjust_rep_setting('leaflets', 'assign_method', 'avg_norm')
    analyzer.run_analysis()
    analyzer.reset()
    # Now redo it using the 'orientation' mehtod to assign leaflets.""
    analyzer.adjust_rep_setting('leaflets', 'assign_method', 'orientation')
    analyzer.adjust_rep_setting('leaflets', 'orientation_atoms', {
        'DOPE': ['C218', 'P'],
        'POPC': ['C218', 'P'],
        'TLCL2': ['CA18', 'P1']
    })
    analyzer.run_analysis()

    return
Esempio n. 8
0
def test_input_options():
    print("testing various input options...")
    #initialize analyzer with keyword options--and default analysis
    print("Initialize using keyword options:")
    sel_string = "segid MEMB"
    ba = BilayerAnalyzer(
        structure='../pybilt/sample_bilayer/sample_bilayer.psf',
        trajectory='../pybilt/sample_bilayer/sample_bilayer_10frames.dcd',
        selection=sel_string,
    )
    #add analysis by string input
    ba.add_analysis('msd msd_2 leaflet upper resname POPC')
    #add plot by string -- currenlty only available
    ba.add_plot('msd msd_p msd_1 DOPE-U msd_2 POPC-U')
    #add analysis by list/tuple input
    ba.add_analysis(['msd', 'msd_3', {'resname': 'POPC', 'leaflet': 'lower'}])
    #add analysis by dictionary input
    analysis_in_dict = dict()
    analysis_in_dict['analysis_key'] = 'msd'
    analysis_in_dict['analysis_id'] = 'msd_4'
    analysis_in_dict['analysis_settings'] = {'resname': 'DOPE', 'leaflet': 'lower'}
    ba.add_analysis(analysis_in_dict)
    # run the analyses
    ba.run_analysis()
    #initialize analyzer using input script
    print("Initialize with an input script:")
    ba = BilayerAnalyzer(input_file='sample_1.in')
    #run analysis
    ba.run_analysis()

    #now initialize with an input dictionary
    # define the input dictionary
    input_dict = {'structure' : '../pybilt/sample_bilayer/sample_bilayer.psf',
                 'trajectory' : '../pybilt/sample_bilayer/sample_bilayer_10frames.dcd',
                  'selection' : 'segid MEMB'
                 }

    #now initialize the analyzer
    print("Initializing using input dictionary:")
    ba = BilayerAnalyzer(input_dict=input_dict)

    ba.add_analysis('msd msd_b resname DOPE leaflet upper')
    ba.run_analysis()

    return
from tqdm import tqdm  # tqdm
import seaborn as sns

# pybilt modules

from pybilt.bilayer_analyzer import BilayerAnalyzer
from pybilt.bilayer_analyzer import print_valid_analyses
from pybilt.com_trajectory import COMTraj
from pybilt.lipid_grid.lipid_grid import grid_curvature
from pybilt.lipid_grid.lipid_grid import LipidGrid2d
from pybilt.lipid_grid.lipid_grid_opt import LipidGrids

sel_string = "resname DPPC or resname DUPC"
ba = BilayerAnalyzer(
    structure='../replicate.gro',
    trajectory='../md.xtc',
    selection=sel_string,
)

ba.add_analysis('ndcorr ndcorr_1')
#ba.run_analysis()

#ndcorr_1Dat = ba.get_analysis_data('ndcorr_1')

# Separate Curvature analysis

u = mda.Universe('../replicate.gro', '../md.xtc')
lipids = u.select_atoms("resname DPPC DUPC")
lipidindices = lipids.indices
#G = [u.select_atoms("resid {}".format(index)) for index in lipidindices]
#COM = [i.center_of_mass() for i in G]