diff options
-rw-r--r-- | Content/posts/2021-06-26-Cheminformatics-On-The-Web-2021.md | 86 | ||||
-rw-r--r-- | docs/assets/posts/cheminformatics-web/postera-demo.png | bin | 0 -> 983243 bytes | |||
-rw-r--r-- | docs/assets/posts/cheminformatics-web/rdkit-demo.png | bin | 0 -> 893061 bytes | |||
-rw-r--r-- | docs/assets/posts/cheminformatics-web/webina-demo.png | bin | 0 -> 2181135 bytes | |||
-rw-r--r-- | docs/feed.rss | 103 | ||||
-rw-r--r-- | docs/index.html | 13 | ||||
-rw-r--r-- | docs/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html | 133 | ||||
-rw-r--r-- | docs/posts/index.html | 13 |
8 files changed, 346 insertions, 2 deletions
diff --git a/Content/posts/2021-06-26-Cheminformatics-On-The-Web-2021.md b/Content/posts/2021-06-26-Cheminformatics-On-The-Web-2021.md new file mode 100644 index 0000000..49a5e04 --- /dev/null +++ b/Content/posts/2021-06-26-Cheminformatics-On-The-Web-2021.md @@ -0,0 +1,86 @@ +--- +date: 2021-06-26 13:04 +description: Summarising Cheminformatics on the web in 2021. +tags: Cheminformatics, JavaScript +--- + +# Cheminformatics on the Web (2021) + +Here, I have compiled a list of some libraries and possible ideas. +I, personally, like static websites which don't require a server side application and can be hosted on platforms like GitHub Pages. +Or, just by opening the HTML file and running it in your browser. +WebAssembly (Wasm) has made running code written for other platforms on the web relatively easier. +Combine Wasm with some pure JavaScript libraries, and you get a platform to quickly amp up your speed in some common tasks. + +## RDKit + +RDKit bundles a minimal JavaScript Wrapper in their core RDKit suite. +This is perfect for generating 2D Figures (HTML5 Canva/SVGs), Canonical SMILES, Descriptors e.t.c + +### Substructure Matching + +This can be used to flag undesirable functional groups in a given compound. +Create a simple key:value pairs of name:SMARTS and use it to highlight substructure matches. +Thus, something like PostEra's Medicinal Chemistry Alert can be done with RDKit-JS alone. + +![PostEra Demo](/assets/posts/cheminformatics-web/postera-demo.png) + +### Computing Properties + +This is useful to calculate basic properties of a given compound. + +![RDKit-JS Demo](/assets/posts/cheminformatics-web/rdkit-demo.png) + +## Webina - Molecular Docking + +Webina is a JavaScript/Wasm library that runs AutoDock Vina, which can enable you to run Molecular Docking straight in the browser itself. + +![Webina Demo](/assets/posts/cheminformatics-web/webina-demo.png) + +Obviously, it takes a few hits in the time to complete the docking because the code is transpiled from C++ to Wasm. +But, the only major drawback (for now) is that it uses SharedArrayBuffer. +Due to Spectre, this feature was disabled on all browsers. +Currently, only Chromium-based and Firefox browsers have reimplemented and enabled it. +Hopefully, soon, this will be again supported by all major browsers. + +## Machine Learning + +Frameworks have now evolved enough to allow exporting models to be able to run them through JavaScript/Wasm backend. +An example task can be **NER** or Named-entity Recognition. +It can be used to extract compounds or diseases from a large blob of text and then matched with external references. +Another example is target-prediction right in the browser: [CHEMBL - Target Prediction in Browser](http://chembl.blogspot.com/2021/03/target-predictions-in-browser-with.html) + +CHEMBL Group is first training the model using PyTorch (A Python ML Library), then converting it to the ONNX runtime. +A model like this can be directly implemented in TensorFlow, and then exported to be able to run with TensorFlow.js + +## Cheminfo-to-web + +The project aims to port cheminformatics libraries into JavaScript via Emscripten. +They have ported InChI, Indigo, OpenBabel, and OpenMD + +### Kekule.js + +It is written by @partridgejiang, who is behind the Cheminfo-to-web project + +> It is molecule-centric, focusing on providing the ability to represent, draw, edit, compare and search molecule structures on web browsers. + +## Browser Extensions + +The previous machine learning examples can be packaged as browser-extensions to perform tasks on the article you are reading. +With iOS 15 bringing WebExtensions to iOS/iPadOS, the same browser extension source code can be now used on Desktop and Mobile Phones. +You can quickly create an extension to convert PDB codes into links to RCSB, highlight SMILES, highlight output of NER models, e.t.c + + +## Conclusion + +I have not even touched all the bases of cheminformatics for the web here. +There is still a lot more to unpack. +Hopefully, this encourages you to explore the world of cheminformatics on the web. + +## Further Reading + +[Blueobelisk Userscripts](https://blueobelisk.github.io/greasemonkey.html) + +[JavaScript for Cheminformatics](https://depth-first.com/articles/2019/05/01/javascript-for-cheminformatics-part-2/) + +[Getting Started with RDKit-JS](https://unpkg.com/@rdkit/rdkit@2021.3.3/Code/MinimalLib/dist/GettingStartedInJS.html) diff --git a/docs/assets/posts/cheminformatics-web/postera-demo.png b/docs/assets/posts/cheminformatics-web/postera-demo.png Binary files differnew file mode 100644 index 0000000..bc0268f --- /dev/null +++ b/docs/assets/posts/cheminformatics-web/postera-demo.png diff --git a/docs/assets/posts/cheminformatics-web/rdkit-demo.png b/docs/assets/posts/cheminformatics-web/rdkit-demo.png Binary files differnew file mode 100644 index 0000000..a23881c --- /dev/null +++ b/docs/assets/posts/cheminformatics-web/rdkit-demo.png diff --git a/docs/assets/posts/cheminformatics-web/webina-demo.png b/docs/assets/posts/cheminformatics-web/webina-demo.png Binary files differnew file mode 100644 index 0000000..4bfea04 --- /dev/null +++ b/docs/assets/posts/cheminformatics-web/webina-demo.png diff --git a/docs/feed.rss b/docs/feed.rss index e959592..06f953c 100644 --- a/docs/feed.rss +++ b/docs/feed.rss @@ -4,8 +4,8 @@ <title>Navan's Archive</title> <description>Rare Tips, Tricks and Posts</description> <link>https://web.navan.dev/</link><language>en</language> - <lastBuildDate>Fri, 25 Jun 2021 17:37:47 -0000</lastBuildDate> - <pubDate>Fri, 25 Jun 2021 17:37:47 -0000</pubDate> + <lastBuildDate>Sat, 26 Jun 2021 18:27:33 -0000</lastBuildDate> + <pubDate>Sat, 26 Jun 2021 18:27:33 -0000</pubDate> <ttl>250</ttl> <atom:link href="https://web.navan.dev/feed.rss" rel="self" type="application/rss+xml"/> @@ -3330,6 +3330,105 @@ new Dics({ <item> <guid isPermaLink="true"> + https://web.navan.dev/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html + </guid> + <title> + Cheminformatics on the Web (2021) + </title> + <description> + Summarising Cheminformatics on the web in 2021. + </description> + <link>https://web.navan.dev/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html</link> + <pubDate>Sat, 26 Jun 2021 13:04:00 -0000</pubDate> + <content:encoded><![CDATA[<h1>Cheminformatics on the Web (2021)</h1> + +<p>Here, I have compiled a list of some tools and possible solutions. +The web is a nice platform, it is available anywhere and just requires an internet connection. +I, personally like static websites which don't require a server side application and can be hosted on platforms like GitHub Pages. +Or, just open the HTML file and run it in your browser. +No data is required to be sent to any server and your device's computational power is used. +Even our phones have a lot of computational power now, which allows the user to run tasks on the go without needing to worry about managing dependencies. +WebAssembly (Wasm) has made running code written for other platfroms on the web relativevly easier. +Combine Wasm with some pure JavaScript libraries, and you get a platform to quickly amp up your speed in some common tasks.</p> + +<h2>RDKit</h2> + +<p>RDKit bundles a minimal JavaScript Wrapper in their core RDKit suite. +This is perfect for generating 2D Figures (HTML5 Canva/SVGs), Cannonical SMILES, Descriptors e.t.c</p> + +<h3>Substructure Matching</h3> + +<p>This can be used to flag undesirable functional groups in a given compound. +Create a simple key:value pair of name:SMARTS and use it to highlight substructure matches. +Thus, something like PostEra's Medicinal Chemistry Alert can be done with RDKit-JS alone.</p> + +<p><img src="/assets/posts/cheminformatics-web/postera-demo.png" alt="PostEra Demo" /></p> + +<h3>Computing Properties</h3> + +<p>This is useful to calculate basic properties of a given compound.</p> + +<p><img src="/assets/posts/cheminformatics-web/rdkit-demo.png" alt="RDKit-JS Demo" /></p> + +<h2>Webina - Molecular Docking</h2> + +<p>Webina is a JavaScript/Wasm library that runs AutoDock Vina, which can enable you to run Molecular Docking straight in the browser itself.</p> + +<p><img src="/assets/posts/cheminformatics-web/webina-demo.png" alt="Webina Demo" /></p> + +<p>Obviously, it takes a few hits in the time to complete the docking because the code is transpiled from C++ to Wasm. +But, the only major drawback (for now) is that it uses SharedArrayBuffer. +Due to Spectre, this feature was disabled on all browsers. +Currently, only Chromium-based and Firefox browsers have reimplemented and renabled it. +Hopefully, soon this will be again supported by all major browsers.</p> + +<h2>Machine Learning</h2> + +<p>Frameworks have now evolved enough to allow exporting models to be able to run them through JavaScript/Wasm backend. +An example task can be <strong>NER</strong> or Named-entity Recognition. +It can be used to extract compounds or diseases from a large blob of text and then matched with external refferences. +Another example is target-prediction right in the browser: <a rel="noopener" target="_blank" href="http://chembl.blogspot.com/2021/03/target-predictions-in-browser-with.html">CHEMBL - Target Prediction in Browser</a></p> + +<p>CHEMBL Group is first training the model using PyTorch (A Python ML Library), then converting it to the ONNX runtime. +A model like this can be directly implemented in Tensorflow, and then exported to be able to run with TensorFlow.js</p> + +<h2>Cheminfo-to-web</h2> + +<p>The project aims to port chemoinformatics libraries into JavaScript via Emscripten. +They have ported InChI, Indigo, OpenBabel, and OpenMD</p> + +<h3>Kekule.js</h3> + +<p>It is written by @partridgejiang, who is behind the Cheminfo-to-web project</p> + +<blockquote> + <p>It is molecule-centric, focusing on providing the ability to represent, draw, edit, compare and search molecule structures on web browsers.</p> +</blockquote> + +<h2>Browser Extensions</h2> + +<p>The previous machine learning examples can be packaged as browser-extensions to perform tasks on the article you are reading. +With iOS 15 bringing WebExtensions to iOS/iPadOS, the same browser extension source code can be now used on Desktop and Mobile Phones. +You can quickly create an extenison to convert PDB codes into links to RCSB, highlight SMILES, highlight output of NER models, e.t.c</p> + +<h2>Conclusion</h2> + +<p>I have not even touched all the bases of cheminformatics for the web here. +There is still a lot more to unpack. +Hopefully, this encourages you to explore the world of cheminformatics on the web.</p> + +<h2>Further Reading</h2> + +<p><a rel="noopener" target="_blank" href="https://blueobelisk.github.io/greasemonkey.html">Blueobelisk Userscripts</a></p> + +<p><a rel="noopener" target="_blank" href="https://depth-first.com/articles/2019/05/01/javascript-for-cheminformatics-part-2/">JavaScript for Cheminformatics</a></p> + +<p><a rel="noopener" target="_blank" href="https://unpkg.com/@rdkit/rdkit@2021.3.3/Code/MinimalLib/dist/GettingStartedInJS.html">Getting Started with RDKit-JS</a></p> +]]></content:encoded> + </item> + + <item> + <guid isPermaLink="true"> https://web.navan.dev/posts/2020-06-01-Speeding-Up-Molecular-Docking-Workflow-AutoDock-Vina-and-PyMOL.html </guid> <title> diff --git a/docs/index.html b/docs/index.html index 50ce9c9..c220d2f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -45,6 +45,19 @@ <ul> + <li><a href="/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html">Cheminformatics on the Web (2021)</a></li> + <ul> + <li>Summarising Cheminformatics on the web in 2021.</li> + <li>Published On: 2021-06-26 13:04</li> + <li>Tags: + + Cheminformatics, + + JavaScript, + + </ul> + + <li><a href="/posts/2021-06-25-NFC-Music-Cards-Basic-iOS.html">Basic NFC Music Cards for iOS</a></li> <ul> <li>Basic NFC Music Cards on iOS with Shortcuts</li> diff --git a/docs/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html b/docs/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html new file mode 100644 index 0000000..885c7b5 --- /dev/null +++ b/docs/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html @@ -0,0 +1,133 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + + <link rel="stylesheet" href="/assets/main.css" /> + <link rel="stylesheet" href="/assets/sakura.css" /> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Hey - Post</title> + <meta name="og:site_name" content="Navan Chauhan" /> + <link rel="canonical" href="https://navanchauhan.github.io/" /> + <meta name="twitter:url" content="https://navanchauhan.github.io/" /> + <meta name="og:url" content="https://navanchauhan.github.io/" /> + <meta name="twitter:title" content="Hey" /> + <meta name="og:title" content="Hey" /> + <meta name="description" content="Welcome to my personal fragment of the internet." /> + <meta name="twitter:description" content="Welcome to my personal fragment of the internet. Majority of the posts should be complete." /> + <meta name="og:description" content="Welcome to my personal fragment of the internet." /> + <meta name="twitter:card" content="summary" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <link rel="shortcut icon" href="/images/favicon.png" type="image/png" /> + <link rel="alternate" href="/feed.rss" type="application/rss+xml" title="Subscribe to Navan Chauhan" /> + <meta name="twitter:image" content="https://navanchauhan.github.io/images/logo.png" /> + <meta name="og:image" content="https://navanchauhan.github.io/images/logo.png" /> + <link rel="manifest" href="manifest.json" /> + <meta name="google-site-verification" content="LVeSZxz-QskhbEjHxOi7-BM5dDxTg53x2TwrjFxfL0k" /> + <script async src="//gc.zgo.at/count.js" data-goatcounter="https://navanchauhan.goatcounter.com/count"></script> + +</head> +<body> + <nav style="display: block;"> +| +<a href="/">home</a> | +<a href="/about/">about/links</a> | +<a href="/posts/">posts</a> | +<a href="/publications/">publications</a> | +<a href="/repo/">iOS repo</a> | +<a href="/feed.rss">RSS Feed</a> | +</nav> + +<main> + <h1>Cheminformatics on the Web (2021)</h1> + +<p>Here, I have compiled a list of some tools and possible solutions. +The web is a nice platform, it is available anywhere and just requires an internet connection. +I, personally like static websites which don't require a server side application and can be hosted on platforms like GitHub Pages. +Or, just open the HTML file and run it in your browser. +No data is required to be sent to any server and your device's computational power is used. +Even our phones have a lot of computational power now, which allows the user to run tasks on the go without needing to worry about managing dependencies. +WebAssembly (Wasm) has made running code written for other platfroms on the web relativevly easier. +Combine Wasm with some pure JavaScript libraries, and you get a platform to quickly amp up your speed in some common tasks.</p> + +<h2>RDKit</h2> + +<p>RDKit bundles a minimal JavaScript Wrapper in their core RDKit suite. +This is perfect for generating 2D Figures (HTML5 Canva/SVGs), Cannonical SMILES, Descriptors e.t.c</p> + +<h3>Substructure Matching</h3> + +<p>This can be used to flag undesirable functional groups in a given compound. +Create a simple key:value pair of name:SMARTS and use it to highlight substructure matches. +Thus, something like PostEra's Medicinal Chemistry Alert can be done with RDKit-JS alone.</p> + +<p><img src="/assets/posts/cheminformatics-web/postera-demo.png" alt="PostEra Demo" /></p> + +<h3>Computing Properties</h3> + +<p>This is useful to calculate basic properties of a given compound.</p> + +<p><img src="/assets/posts/cheminformatics-web/rdkit-demo.png" alt="RDKit-JS Demo" /></p> + +<h2>Webina - Molecular Docking</h2> + +<p>Webina is a JavaScript/Wasm library that runs AutoDock Vina, which can enable you to run Molecular Docking straight in the browser itself.</p> + +<p><img src="/assets/posts/cheminformatics-web/webina-demo.png" alt="Webina Demo" /></p> + +<p>Obviously, it takes a few hits in the time to complete the docking because the code is transpiled from C++ to Wasm. +But, the only major drawback (for now) is that it uses SharedArrayBuffer. +Due to Spectre, this feature was disabled on all browsers. +Currently, only Chromium-based and Firefox browsers have reimplemented and renabled it. +Hopefully, soon this will be again supported by all major browsers.</p> + +<h2>Machine Learning</h2> + +<p>Frameworks have now evolved enough to allow exporting models to be able to run them through JavaScript/Wasm backend. +An example task can be <strong>NER</strong> or Named-entity Recognition. +It can be used to extract compounds or diseases from a large blob of text and then matched with external refferences. +Another example is target-prediction right in the browser: <a rel="noopener" target="_blank" href="http://chembl.blogspot.com/2021/03/target-predictions-in-browser-with.html">CHEMBL - Target Prediction in Browser</a></p> + +<p>CHEMBL Group is first training the model using PyTorch (A Python ML Library), then converting it to the ONNX runtime. +A model like this can be directly implemented in Tensorflow, and then exported to be able to run with TensorFlow.js</p> + +<h2>Cheminfo-to-web</h2> + +<p>The project aims to port chemoinformatics libraries into JavaScript via Emscripten. +They have ported InChI, Indigo, OpenBabel, and OpenMD</p> + +<h3>Kekule.js</h3> + +<p>It is written by @partridgejiang, who is behind the Cheminfo-to-web project</p> + +<blockquote> + <p>It is molecule-centric, focusing on providing the ability to represent, draw, edit, compare and search molecule structures on web browsers.</p> +</blockquote> + +<h2>Browser Extensions</h2> + +<p>The previous machine learning examples can be packaged as browser-extensions to perform tasks on the article you are reading. +With iOS 15 bringing WebExtensions to iOS/iPadOS, the same browser extension source code can be now used on Desktop and Mobile Phones. +You can quickly create an extenison to convert PDB codes into links to RCSB, highlight SMILES, highlight output of NER models, e.t.c</p> + +<h2>Conclusion</h2> + +<p>I have not even touched all the bases of cheminformatics for the web here. +There is still a lot more to unpack. +Hopefully, this encourages you to explore the world of cheminformatics on the web.</p> + +<h2>Further Reading</h2> + +<p><a rel="noopener" target="_blank" href="https://blueobelisk.github.io/greasemonkey.html">Blueobelisk Userscripts</a></p> + +<p><a rel="noopener" target="_blank" href="https://depth-first.com/articles/2019/05/01/javascript-for-cheminformatics-part-2/">JavaScript for Cheminformatics</a></p> + +<p><a rel="noopener" target="_blank" href="https://unpkg.com/@rdkit/rdkit@2021.3.3/Code/MinimalLib/dist/GettingStartedInJS.html">Getting Started with RDKit-JS</a></p> + +</main> + + +<script src="assets/manup.min.js"></script> +<script src="/pwabuilder-sw-register.js"></script> +</body> +</html>
\ No newline at end of file diff --git a/docs/posts/index.html b/docs/posts/index.html index 9288bb3..119b7e6 100644 --- a/docs/posts/index.html +++ b/docs/posts/index.html @@ -48,6 +48,19 @@ <ul> + <li><a href="/posts/2021-06-26-Cheminformatics-On-The-Web-2021.html">Cheminformatics on the Web (2021)</a></li> + <ul> + <li>Summarising Cheminformatics on the web in 2021.</li> + <li>Published On: 2021-06-26 13:04</li> + <li>Tags: + + Cheminformatics, + + JavaScript, + + </ul> + + <li><a href="/posts/2021-06-25-NFC-Music-Cards-Basic-iOS.html">Basic NFC Music Cards for iOS</a></li> <ul> <li>Basic NFC Music Cards on iOS with Shortcuts</li> |