Git Product home page Git Product logo

pylipid's Introduction

PyLipID - A Python Package For Lipid Interactions Analysis

https://travis-ci.com/wlsong/PyLipID.svg?branch=master https://img.shields.io/pypi/v/PyLipID

docs/static/pylipid_logo_smallsize.png

PyLipID is a python package for analyzing lipid interactions with membrane proteins from Molecular Dynamics Simulations. PyLipID has the following main features, please check out the tutorials for examples and the documentations for the API functionalities:

  • Detection of binding sites via calculating community structures in the interactions networks.
  • Calculation of lipid koff and residence time for interaction with binding sites and residues.
  • Analysis of lipid interactions with binding sites and residues using a couple of metrics.
  • Generation of representative bound poses for binding sites.
  • Analysis of bound poses for binding sites via automated clustering scheme.
  • Adoption of a dual-cutoff scheme to overcome the 'rattling in cage' effect of coarse-grained simulations.
  • Generation of manuscript-ready figures for analysis.

PyLipID can be used from Jupyter (former IPython, recommended), or by writing Python scripts. The documentaion and tutorials can be found at pylipid.readthedocs.io.

Installation

We recommend installing PyLipID using the package installer pip:

pip install pylipid

Alternatively, PyLipID can be installed from the source code. The package is available for download on Github via:

git clone https://github.com/wlsong/PyLipID

Once the source code is downloaded, enter the source code directory and install the package as follow:

python setup.py install

Citation DOI for Citing PyEMMA

If you use PyLipID in scientific research, please cite the following paper:

@article{song_pylipid_2022,
        author = {Song, Wanling. and Corey, Robin A. and Ansell, T. Bertie. and
                    Cassidy, C. Keith. and Horrell, Michael R. and Duncan, Anna L.
                    and Stansfeld, Phillip J. and Sansom, Mark S.P.},
        title = {PyLipID: A Python package for analysis of protein-lipid interactions from MD simulations},
        journal = {J. Chem. Theory Comput},
        year = {2022},
        url = {https://doi.org/10.1021/acs.jctc.1c00708},
        doi = {10.1021/acs.jctc.1c00708},
        urldate = {2022-02-18},
}

pylipid's People

Contributors

robincorey avatar tbgansell avatar wlsong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

pylipid's Issues

'NoneType' error

TypeError: object of type 'NoneType' has no len(). how can I resolve this issue for getting lipid interactions?

Thanks,
Arvin

Numpy deprecation of aliases cause some calculation to fail

Hello,

Due to a change/removal of some of Numpy's aliases in the latest version(1.24), some calculations fail to run.

For example, li.collect_residue_contacts() fails with the following error:
"AttributeError: module ‘numpy’ has no attribute ‘int’

This issue is resolved by installing numpy <1.24 or you can update your code to match their deprecation notes: https://numpy.org/doc/stable/release/1.20.0-notes.html#using-the-aliases-of-builtin-types-like-np-int-is-deprecated

Residue chain ID

I am working on the system with a heteromeric protein (two type a subunits, two type b subunits and one type c subunit). Is it somehow possible to get the chain id of the residues that are forming contacts with lipids? For example, lets say that there is a residue Ala200 that is a part of detected binding site 0, and this residue is present in subunit type a. Are the statistics (occupancy etc) for both Ala200 residues? Are they a sum or average values? Or are they for one of the two a subunits (if so, which one?). Also - what happens, if Ala200 residue is present in both type a and type b subunits, but those are two completely different residues (the same number and residue type is just a coincidence)?

Error

I am trying to run PyLipID for my membrane (POPC) trajectory containing 1500 snapshots:
I am getting following error:

python pylipid.py -f ../md.xtc -c ../md.gro -cutoffs 0.55 1.4 -lipids POPC -lipid_atoms C13 C14 C15 N C12 C11 O12 P O13 O14 O11 -nprot 1 -resi_offset 5 -save_dataset -pdb XXXX.pdb -chain A
Traceback (most recent call last):
File "pylipid.py", line 970, in
for item in args.resi_list:
TypeError: 'NoneType' object is not iterable

Posonlyargs

Dear Wanling,

Thanks for Pylipid!

I am trying to use Pylipid 1.4.8.

However, li.collect_residue_contacts() results in TypeError: required field "posonlyargs" missing from arguments

Here's the entire error:
TypeError Traceback (most recent call last)
in
----> 1 li.collect_residue_contacts()

~/anaconda3/lib/python3.8/site-packages/pylipid/api/api.py in collect_residue_contacts(self)
290 total=len(self._trajfile_list)):
291 traj = md.load(self._trajfile_list[traj_idx], top=self._topfile_list[traj_idx], stride=self._stride)
--> 292 traj_info, self._protein_ref, self._lipid_ref = get_traj_info(traj, self._lipid,
293 lipid_atoms=self._lipid_atoms,
294 resi_offset=self._resi_offset,

~/anaconda3/lib/python3.8/site-packages/pylipid/util/trajectory.py in get_traj_info(traj, lipid, lipid_atoms, resi_offset, nprot, protein_ref, lipid_ref)
58 """
59 lipid_index_dict = defaultdict(list)
---> 60 lipid_atom_indices = traj.top.select("resn {}".format(lipid))
61 if lipid_atoms is not None:
62 for atom_index in lipid_atom_indices:

~/anaconda3/lib/python3.8/site-packages/mdtraj/core/topology.py in select(self, selection_string)
1046 """
1047
-> 1048 filter_func = parse_selection(selection_string).expr
1049 indices = np.array([a.index for a in self.atoms if filter_func(a)])
1050 return indices

~/anaconda3/lib/python3.8/site-packages/mdtraj/core/selection.py in call(self, selection)
398
399 expr = eval(
--> 400 compile(ast.fix_missing_locations(func), '', mode='eval'),
401 SELECTION_GLOBALS)
402 return _ParsedSelection(expr, source, astnode)

I wonder what could be going wrong.

Thanks.

Edit - This issue is only python 3.7 or greater.

LogomakerError

Dear Wanling,

I am trying to analyze my coarse grained simulations using PyLipID tool. I get below logomaker error. Please can I know what may be going wrong. I have also included the command I am running.

###########################################################################################
Traceback (most recent call last):
File "pylipid.py", line 1333, in
li.plot_interactions(item="Duration", letter_map=letter_map)
File "pylipid.py", line 1214, in plot_interactions
logomaker.Logo(matrix[(idx-1)100+length:idx100+length], color_scheme="chemistry", ax=ax)
File "/home/users/chetan/anaconda3/envs/PyLipID/lib/python3.7/site-packages/logomaker/src/error_handling.py", line 134, in wrapped_func
raise e
File "/home/users/chetan/anaconda3/envs/PyLipID/lib/python3.7/site-packages/logomaker/src/error_handling.py", line 102, in wrapped_func
result = func(*args, **kwargs)
File "/home/users/chetan/anaconda3/envs/PyLipID/lib/python3.7/site-packages/logomaker/src/Logo.py", line 172, in init
self._input_checks()
File "/home/users/chetan/anaconda3/envs/PyLipID/lib/python3.7/site-packages/logomaker/src/Logo.py", line 224, in _input_checks
self.df = validate_matrix(self.df)
File "/home/users/chetan/anaconda3/envs/PyLipID/lib/python3.7/site-packages/logomaker/src/error_handling.py", line 134, in wrapped_func
raise e
File "/home/users/chetan/anaconda3/envs/PyLipID/lib/python3.7/site-packages/logomaker/src/error_handling.py", line 102, in wrapped_func
result = func(*args, **kwargs)
File "/home/users/chetan/anaconda3/envs/PyLipID/lib/python3.7/site-packages/logomaker/src/validate.py", line 58, in validate_matrix
check(out_df.shape[0] >= 1, 'df has zero rows. Needs multiple rows.')
File "/home/users/chetan/anaconda3/envs/PyLipID/lib/python3.7/site-packages/logomaker/src/error_handling.py", line 56, in check
raise LogomakerError(message)
logomaker.src.error_handling.LogomakerError: df has zero rows. Needs multiple rows.
###########################################################################################

python pylipid.py -f traj.xtc -c nowat.pdb -cutoffs 0.55 1.0 -lipids PIPC -nprot 1 -save_dataset -pdb nowat.pdb -pymol_gui False -lipid_atoms PO4 -radii BB:0.26 SC1:0.23 -gen_binding_poses 10 -save_pose_format pdb -score_weights PO4:10 -tu ns -resi_list 65-170 588-600 663-770 1187-1200 1263-1370 1786-1800 -stride 50

Kind Regards,
Chetan

Binding poses and lipid occupancy

Dear Wanling,

I have couple of questions on the PyLipID ouput.

  1. Binding poses:
    Inside the "Binding_Poses" folder I see that the tool writes out binding site PDB files and the number of binding sites corresponds to the "BindingSites_Info_PAPC.txt" file. Please find attached the "BindingSites_Info_PAPC.txt" file.

According to the "BindingSites_Info_PAPC.txt" file, Binding site 1 shows "BS Lipid Occupancy: 94.941 %". So I went inside
"Binding_Poses" folder and looked into the 10 poses under "BSid1_No*.pdb" using VMD and also marked all the residues listed in "# Binding site 1". But, I dont see any lipids bound at the binding site residues, the lipids from each of the 10 poses are away from the binding site 1.

Please can i know if this if the correct way to check for lipid bounds at the binding site listed in the "BindingSites_Info_PAPC.txt" file?

  1. Lipid Occupancy:
    For each binding site there is BS Lipid Occupancy printed in the header, followed by lipid occupancy per residue in the 6th column. I was expecting that the BS Lipid Occupancy printed in the header is the average value coming from the binding site residues. However, it does not seem so. For example in the attached "BindingSites_Info_PAPC.txt" file for "Binding Site 11" it shows BS Lipid Occupancy: 3.159 %, but the 3 residues have occupancy of 60.6%, 48.5% and 2.6%.

Please can you also clarify this.

BindingSites_Info_PAPC.txt

Kind Regards,
Chetan

ValueError: invalid literal for int() with base 10: ''

Hi there,

I saw someone using PyLipID at the Biophysical Society Conference 2023 and wanted to give it a try but unfortunately I'm getting the following error at the first stage of li.collect_residue_contacts() (see below). I've tried depreciating numpy to no avail, as that seems to have been the fix for other packages lately. I'm using the sample trajectories.

Many thanks!


ValueError Traceback (most recent call last)
Cell In[1], line 69
58 # i.e. None, the functions will use up all the cpus available. This can use up all the memory in
59 # some cases.
60
(...)
64
65 #### calculate lipid interactions
66 li = LipidInteraction(trajfile_list, topfile_list=topfile_list, cutoffs=cutoffs, lipid=lipid,
67 lipid_atoms=lipid_atoms, nprot=1, resi_offset=resi_offset,
68 timeunit=timeunit, save_dir=save_dir, stride=stride, dt_traj=dt_traj)
---> 69 li.collect_residue_contacts()
70 li.compute_residue_duration(residue_id=None)
71 li.compute_residue_occupancy(residue_id=None)

File ~/anaconda3/envs/membrane/lib/python3.11/site-packages/pylipid/api/api.py:333, in LipidInteraction.collect_residue_contacts(self)
330 # calculate interactions from trajectories
331 for traj_idx in trange(len(self._trajfile_list), desc="COLLECT INTERACTIONS FROM TRAJECTORIES",
332 total=len(self._trajfile_list)):
--> 333 traj = md.load(self._trajfile_list[traj_idx], top=self._topfile_list[traj_idx], stride=self._stride)
334 traj_info, self._protein_ref, self._lipid_ref = get_traj_info(traj, lipid=self._lipid,
335 lipid_atoms=self._lipid_atoms,
336 resi_offset=self._resi_offset,
337 nprot=self._nprot,
338 protein_ref=self._protein_ref,
339 lipid_ref=self._lipid_ref)
340 if self._dt_traj is None:

File ~/anaconda3/envs/membrane/lib/python3.11/site-packages/mdtraj/core/trajectory.py:396, in load(filename_or_filenames, discard_overlapping_frames, **kwargs)
394 topkwargs.pop("stride", None)
395 topkwargs.pop("start", None)
--> 396 kwargs["top"] = _parse_topology(kwargs.get("top", filename_or_filenames[0]), **topkwargs)
398 #get the right loader
399 try:
400 #loader = _LoaderRegistry[extension][0]

File ~/anaconda3/envs/membrane/lib/python3.11/site-packages/mdtraj/core/trajectory.py:183, in _parse_topology(top, **kwargs)
181 topology = load_mol2(top, **kwargs).topology
182 elif isinstance(top, (string_types, os.PathLike)) and (ext in ['.gro']):
--> 183 topology = load_gro(top, **kwargs).topology
184 elif isinstance(top, (string_types, os.PathLike)) and (ext in ['.arc']):
185 topology = load_arc(top, **kwargs).topology

File ~/anaconda3/envs/membrane/lib/python3.11/site-packages/mdtraj/formats/gro.py:94, in load_gro(filename, stride, atom_indices, frame, top)
73 """Load a GROMACS GRO file.
74
75 Parameters
(...)
90 it saves time if you have to parse a big number of files
91 """
92 from mdtraj.core.trajectory import _parse_topology, Trajectory
---> 94 with GroTrajectoryFile(filename, 'r', top=top) as f:
95 topology = f.topology
96 if frame is not None:

File ~/anaconda3/envs/membrane/lib/python3.11/site-packages/mdtraj/formats/gro.py:148, in GroTrajectoryFile.init(self, filename, mode, force_overwrite, top)
146 try:
147 if self.topology is None:
--> 148 self.n_atoms, self.topology = self._read_topology()
149 else:
150 self.n_atoms = self.topology.n_atoms

File ~/anaconda3/envs/membrane/lib/python3.11/site-packages/mdtraj/formats/gro.py:315, in GroTrajectoryFile._read_topology(self)
313 for ln, line in enumerate(self._file):
314 if ln == 1:
--> 315 n_atoms = int(line.strip())
316 elif ln > 1 and ln < n_atoms + 2:
317 (thisresnum, thisresname, thisatomname, thisatomnum) =
318 [line[i5:i5+5].strip() for i in range(4)]

ValueError: invalid literal for int() with base 10: ''

PyLipID tutorial

I am sorry but you closed the issue before I could solve it. Just remembering the issue:

Question: Could you please let me know how you installed pylipid? If you installed pylipid via 'pip install pylipid', it shouldn't have an issue.

Answer: I installed it using pip install pylipid and it worked at the first day I used. Then, in the following day, it stopped working in a very strange manner.

Question: Do you think this is relevant to the issue you reported here? https://stackoverflow.com/questions/53017174/attributeerror-module-networkx-algorithms-community-has-no-attribute-best-pa

I tried to install this module, but it did not work it. Could you help me, please?

Question: If you have install pylipid properly, you should be able to go through the tutorials step by step, or run all of the analysis once via the script provided in 'Demo' (https://pylipid.readthedocs.io/en/master/demo.html)

I also tried to use the script by google colab and by python console. I worked in the python console but not in google colab as well.

I got the error message in the command node_list, modularity = li.compute_binding_nodes(threshold=4, print_data=False)

86 # negative correlationsare are forced to separate to different binding sites.
87 graph = nx.Graph(corrcoef)
---> 88 partition = community.best_partition(graph, weight='weight')
89 values = [partition.get(node) for node in graph.nodes()]
90 node_list = []

AttributeError: module 'community' has no attribute 'best_partition'

Could you help me, please?

Need tests

Hi, I think it would be good to write some test functions for PyLipID as at the moment there aren't any.

(multiprocess) Error for high PODG concentrations

Hi everyone,

I used the demo script to analyze lipid interactions for varying concentrations of PODG (diaglycerol).
For performance, I have deleted all water molecules in the xtc file before starting the PyLipId analysis.
For low concentrations (1%, 5%, 10%), everything works fine.
For higher concentrations (20%, 40%), I get the following error when analyzing the bound poses:

^MANALYZE BOUND POSES: 0%| | 0/19 [00:00<?, ?it/s]^MANALYZE BOUND POSES: 5%|▌ | 1/19 [2:15:25<40:37:47, 8125.95s/it]^MANALYZE BOUND POSES: 5%|▌ | 1/19 [2:15:26<40:37:49, 8126.06s/$
Traceback (most recent call last):
File "pylipid_demo_customized.py", line 105, in
n_top_poses=n_top_poses, n_clusters=n_clusters,
File "/home/orie4254/.conda/envs/mdaenv/lib/python3.7/site-packages/pylipid/api/api.py", line 1365, in analyze_bound_poses
[pose_info[bs_id] for bs_id in selected_bs_id], num_cpus=num_cpus, desc="ANALYZE BOUND POSES")
File "/home/orie4254/.conda/envs/mdaenv/lib/python3.7/site-packages/p_tqdm/p_tqdm.py", line 60, in p_map
result = list(generator)
File "/home/orie4254/.conda/envs/mdaenv/lib/python3.7/site-packages/p_tqdm/p_tqdm.py", line 49, in _parallel
for item in tqdm(map_func(function, *iterables), total=length, **kwargs):
File "/home/orie4254/.conda/envs/mdaenv/lib/python3.7/site-packages/tqdm/std.py", line 1180, in iter
for obj in iterable:
File "/home/orie4254/.conda/envs/mdaenv/lib/python3.7/site-packages/multiprocess/pool.py", line 748, in next
raise value
File "/home/orie4254/.conda/envs/mdaenv/lib/python3.7/site-packages/multiprocess/pool.py", line 431, in _handle_tasks
put(task)
File "/home/orie4254/.conda/envs/mdaenv/lib/python3.7/site-packages/multiprocess/connection.py", line 209, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "/home/orie4254/.conda/envs/mdaenv/lib/python3.7/site-packages/multiprocess/connection.py", line 396, in _send_bytes
header = struct.pack("!i", n)
struct.error: 'i' format requires -2147483648 <= number <= 2147483647

Input file

Hi.
I'm new in molecular dynamics. May I ask several silly questions?

  1. How to generate the input file with MDtraj format like .xct and .gro?
  2. If the target protein does not have crystal structure (but two family members which have PDB data show similarity), how could I analyze the interaction between lipid and target protein?
    Thank you so much.

Memory issue when running on local workstation

Dear PyLipID developers,

I am recently having issues when running PyLipID on my local workstation.
My workstation has 12 CPUs, but with "num_cpus=None", PyLipID uses only 4 CPUs, and with "num_cpus=12", it uses only 5 CPUs, and it gets stuck at "ANALYZE BOUND POSES: 0%|" and does not finish the analysis.
Do you have any suggestions how to approach this problem?

Thanks and best regards,
Sophie

Performance issues

Thanks for a great package for protein-lipid analysis! I would really like to test the binding site identification and binding pose extraction functionality. Unfortunately, I found that the performance is way too slow for me to test this functionality. I have an atomistic system with 1555 residues and a couple 100 lipids, but running the first steps in this tutorial (https://pylipid.readthedocs.io/en/master/tutorials/0-application-walk-through.html, up to "interaction with residues") took 4 mins on my test data (11 frames of protein and lipids), which means this analysis would take 43 days on my whole dataset. For comparison, I previously ran a similar analysis with prolintpy (https://prolint.github.io/prolintpy/#/) which took me ~20 h for the big dataset. Would it be possible to investigate the performance, remove some bottlenecks and perhaps enable multithreading to reduce the runtime?

Trajectory load memory error

When loading a large trajectory I receive the error

---------------------------------------------------------------------------
MemoryError                               Traceback (most recent call last)
/tmp/ipykernel_1511828/2176272352.py in <module>
----> 1 li.collect_residue_contacts()

~/Library/miniconda3/envs/BALMP/lib/python3.9/site-packages/pylipid/api/api.py in collect_residue_contacts(self)
    331         for traj_idx in trange(len(self._trajfile_list), desc="COLLECT INTERACTIONS FROM TRAJECTORIES",
    332                                total=len(self._trajfile_list)):
--> 333             traj = md.load(self._trajfile_list[traj_idx], top=self._topfile_list[traj_idx], stride=self._stride)
    334             traj_info, self._protein_ref, self._lipid_ref = get_traj_info(traj, lipid=self._lipid,
    335                                                                           lipid_atoms=self._lipid_atoms,

~/Library/miniconda3/envs/BALMP/lib/python3.9/site-packages/mdtraj/core/trajectory.py in load(filename_or_filenames, discard_overlapping_frames, **kwargs)
    427         #TODO make all the loaders accept a pre parsed topology (top) in order to avoid
    428         #this part and have a more consistent interface and a faster load function
--> 429         t = loader(tmp_file, **kwargs)
    430 
    431     except TypeError as e:

mdtraj/formats/xtc/xtc.pyx in mdtraj.formats.xtc.load_xtc()

mdtraj/formats/xtc/xtc.pyx in mdtraj.formats.xtc.load_xtc()

mdtraj/formats/xtc/xtc.pyx in mdtraj.formats.xtc.XTCTrajectoryFile.read_as_traj()

mdtraj/formats/xtc/xtc.pyx in mdtraj.formats.xtc.XTCTrajectoryFile.read()

mdtraj/formats/xtc/xtc.pyx in mdtraj.formats.xtc.XTCTrajectoryFile._read()

MemoryError: Unable to allocate 195. GiB for an array with shape (1881562, 9260, 3) and data type float32

Using stride is not an option for my system

analyze_bound_poses gives error + typo in script

Using analyze_bound_poses function in the demo script gives

File "python_interaction.py", line 68, in
pose_rmsd_data = li.analyze_bound_poses(binding_site_id=None, pose_format=save_pose_format)
File "/home/asma97/.local/lib/python3.8/site-packages/pylipid/api/api.py", line 869, in analyze_bound_poses
selected_pose_id = [np.random.choice(i_core_sample, 1)[0] for i_core_sample in core_sample_indices]
File "/home/asma97/.local/lib/python3.8/site-packages/pylipid/api/api.py", line 869, in
selected_pose_id = [np.random.choice(i_core_sample, 1)[0] for i_core_sample in core_sample_indices]
File "mtrand.pyx", line 903, in numpy.random.mtrand.RandomState.choice
ValueError: a must be greater than 0 unless no samples are taken

I wonder what could be a possible fix to this.
typo: li.compute_residue_lipidcount instead of li.compute_residue_lipidcout

Thank you.

Breaking up into modules

I've noticed that all of PyLipID is contained in one file pylipid.py. I think it would be a bit cleaner and easier to follow / identify any bugs if the code was modular.

LipidInteraction not finding the protein

Hello,
I was trying to run your tutorial notebook (0-application-walk-thourgh) on my own CG simulation files (.gro, .xtc) and the script has collected some interactions but with other lipids and not the protein. Number of interacting residues corresponds to the number of protein residues (li.residue_list), but the residues listed are just lipids, that are the first entry listed in my gro file.

Is there a way to input the starting atom/row number for the protein or some other way to identify it?

I would be be grateful for any advice, and maybe a short explanation what some of the variables are: nprot- is it number of proteins present in the system? what role does the resi_offset have?

Thanks

Compound included in residue list

I'm simulating a CG version (Martini3) of a Glycine-Receptor in a POPC membrane with some THC molecules that I've parameterized myself. When I try to run the demo script that you have so kindly provided on this website, I've noticed that compound I'm interested in, THC, is included in the residue list that I suppose should contain only the amminoacids of the protein, so instead of the 1730 residues I obtain 1746:

COLLECT INTERACTIONS FROM TRAJECTORIES: 100%|█████████████████████████████████████████████████| 1/1 [00:15<00:00, 15.35s/it]
Residue Residue ID
0 1PRO 0
1 2MET 1
2 3PRO 2
3 4PRO 3
4 5SER 4
... ... ...
1741 2079THC 1741
1742 2080THC 1742
1743 2081THC 1743
1744 2082THC 1744
1745 2083THC 1745

[1746 rows x 2 columns]

This of course leads to problems down the line, given that it expects some information regarding the residue 'THC' which of course are present in the program's library.

CALCULATE BINDING SITE SURFACE AREA: 100%|████████████████████████████████████████████████████| 1/1 [00:26<00:00, 26.85s/it]
Creating new director: /home/agrazzi/Desktop/THC/THC_map4/CHARMM/GlyR/Trial38/run9/test/Interaction_THC/Dataset_THC
Traceback (most recent call last):
File "/home/agrazzi/Desktop/THC/THC_map4/CHARMM/GlyR/Trial38/run9/test/script_mod.py", line 100, in
li.write_site_info(sort_residue="Residence Time")
File "/home/agrazzi/miniconda3/lib/python3.10/site-packages/pylipid/api/api.py", line 1865, in write_site_info
text = self._format_BS_print_info(bs_id, nodes, sort_residue)
File "/home/agrazzi/miniconda3/lib/python3.10/site-packages/pylipid/api/api.py", line 1981, in _format_BS_print_info
res_stats[Residue_property_book[re.findall("[a-zA-Z]+$", residue)[0]]] += 1
KeyError: 'THC'

Is there a way to properly exclude the compound of interest, "THC", from the residue list?

Thanks in advance for you support

P.s. please find attached .gro and a truncated trajectory .xtc

test_truncated.xtc.txt
test.gro.txt

'pylipid' is not a package ERROR?

Hi,

With the script provided in readthedocs and with pip install pylipid in my conda env 'pylipid-new', I get the following error

Exception has occurred: ModuleNotFoundError
No module named 'pylipid.api'; 'pylipid' is not a package
File "/user/cg_new-prj/pylipid.py", line 6, in
from pylipid.api import LipidInteraction

Have you encountered this? The site packages are already in my sys.path anyway and pylipid is definetely installed since I can see it with conda list.

Jobs getting killed

python pylipid.py -f md.xtc -c md.gro -cutoffs 0.35 0.55 -lipids DPPC -lipid_atoms C13 C14 C15 O12 P O13 O14 O11 -nprot 1 -save_dataset -pdb 1.pdb -pymol_gui False

Creating new director: /Data/Backup/Interaction_DPPC

########## Start calculation of DPPC interaction in
########## md.xtc

Killed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.