GithubHelp home page GithubHelp logo

kinfraglib's People

Contributors

andreavolkamer avatar bp-kelley avatar dominiquesydow avatar paulaju avatar sonjaleo 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

Watchers

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

kinfraglib's Issues

cannot generate n_first_ligands=20000

hi, all,

when I tried to conduct the below cell,

%%time 
construct_and_save_ligands_from_combinatorial_library(
    PATH_COMBINATORIAL_LIBRARY, 
    PATH_FRAGMENT_LIBRARY_REDUCED, 
    PATH_CONSTRUCTED_MOLECULES,
    n_first_ligands=20000,
    n_ligands_per_sdf_file=10000
)

but the notebooks provided the errors

StopIteration                             Traceback (most recent call last)
<timed eval> in <module>

~\AppData\Local\Temp\ipykernel_12788\397085490.py in construct_and_save_ligands_from_combinatorial_library(path_combinatorial_library, path_fragment_library, path_output, n_first_ligands, n_ligands_per_sdf_file)
     44                 # Construct and save ligands
     45                 _construct_and_save_selected_ligands(
---> 46                     ligand_metadata_list, fragment_library, path_output, i
     47                 )
     48                 # Reinitialize ligand metadata list

~\AppData\Local\Temp\ipykernel_12788\1434265608.py in _construct_and_save_selected_ligands(ligand_metadata_list, fragment_library, path_output, index)
     18     ligand_list = [
     19         utils.construct_ligand(ligand["fragment_ids"], ligand["bond_ids"], fragment_library)
---> 20         for ligand in ligand_metadata_list
     21     ]
     22     # Save ligands to file

~\AppData\Local\Temp\ipykernel_12788\1434265608.py in <listcomp>(.0)
     18     ligand_list = [
     19         utils.construct_ligand(ligand["fragment_ids"], ligand["bond_ids"], fragment_library)
---> 20         for ligand in ligand_metadata_list
     21     ]
     22     # Save ligands to file

c:\users\lenovo\kinfraglib\kinfraglib\utils.py in construct_ligand(fragment_ids, bond_ids, fragment_library)
   1299         )
   1300         dummy_2 = next(
-> 1301             atom for atom in combo.GetAtoms() if atom.GetProp("fragment_atom_id") == bond[1]
   1302         )
   1303         atom_1 = dummy_1.GetNeighbors()[0]

StopIteration:

I've tried to see, fix the issues and find there are around 560 cpds that were generated by the jupyter notebok procedure.however, accordin to the description of demo use,

Construct and save ligands: Example 20k ligands (10k ligands/sdf file) - runtime see below; ~30 MB per file.

does that look whether to generate more than 600 ligands under the proces?
many thanks for your kind helps.

best,

Snipaste_2022-02-09_17-27-28

Add and compare literature fragments

Add data for all literature fragments and set up stand-alone notebook to compare them to our fragments (so far mainly done visually by hand, documented off-line).

First steps are in fragment_analysis.ipynb:

Yang et al. publication add DOI/link; and what is the result of the analysis (we should have found it?)
Initially, I thought we do not have those large fragments in our library, but turns out we have. To make this part more meaningful, I should add all their fragments and check if we have them.

Updated aC-helix conformation classification in KLIFS

The KLIFS database has updated their aC-helix classification, thus the numbers show in the KinFragLib paper do not correspond to the numbers shown in this notebook anymore. See KLIFS news > "Granular control over the kinase conformation" post.

  • Update data/fragment_library/original_ligands.json accordingly (contains aC-helix data from KLIFS).
  • Update notebook 2_2 with new KLIFS data; add disclaimer that explains why the values in the notebook differ from those in the paper (message in paper stays the same) + add "old" data by hand alongside the "new" data

Code refactoring needed (replace `next()` usage)

I think we are misusing next() in this context (it works but it is not the proper way to do this and whenever errors occur the traceback is a bit difficult):

KinFragLib/kinfraglib/utils.py

Lines 1297 to 1302 in 99e94c2

dummy_1 = next(
atom for atom in combo.GetAtoms() if atom.GetProp("fragment_atom_id") == bond[0]
)
dummy_2 = next(
atom for atom in combo.GetAtoms() if atom.GetProp("fragment_atom_id") == bond[1]
)

What are we doing here?
We are selecting an atom from a molecule based on a fragment atom id (stored in bond). This selection should result in exactly one atom. Then, we are using next() to extract this one atom from the list comprehension. This is problematic in two ways:
(1) What if the selection returns no atom? Throws StopIteration I think.
(2) What if the selection returns multiple atoms? Should never happen but we should add a check.

What do I suggest?
Remove next(). Store selection in a list and go through all cases with if-elif-else (0, 1, >1 atoms), raise proper errors for 0 and >1 atoms.

KinFragLib dataset update

Hi, folks,

Thanks for the contribution on the KinFragLib! It has been 2 years since the release of dataset. I want to know if there is any update on the dataset. Or is there any script I can follow to update by myself?

Best

Technical notebook issues

  • Why are png always updated when I rerun notebook - do the change? Remove figures folder or add .png/svg to gitignore, so that paper figures will not be altered afterwards?
  • Some cells not visible in Jupyter lab (but visible in tree): In fragment_analysis and cluster_most_common_fragments

How could we rebuild our own kinase structures by taking advantage of KinFragLib codes?

Hi All,

Thank you for developing KinFragLib! That is exactly a great approach for knowledge-based kinase inhibitor design.

I wonder how I could use KinFragLib fragmentation & recombination codes for my own kinase inhibitor design. For example, I have a kinase inhibitor that I only wanted to replace the AP region with all AP fragments stored in KinFragLib. Is it possible for me to do that?

In another case, if I would like to do fragmentation & recombination from other kinase inhibitor collections, how could I do that?

Thanks!
Cheng

problem about installing package

!pip install -e KinFragLib

the ERROR occured.
ERROR: KinFragLib is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with bzr+http, bzr+https, bzr+ssh, bzr+sftp, bzr+ftp, bzr+lp, bzr+file, git+http, git+https, git+ssh, git+git, git+file, hg+file, hg+http, hg+https, hg+ssh, hg+static-http, svn+ssh, svn+http, svn+https, svn+svn, svn+file).

what's problem and how to fix it up? thanks,

Rebuilding the fragment libraries

Hello,

I am wondering if the tools used to construct the fragments collections are available, I am interested in pulling the fragments from the updated KLIFs repository as well as including other subsets, eg. the DFG-out subset that was not considered in the original publication,

Thanks,
Marawan

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.