{"id":28466073,"url":"https://github.com/zilliztech/molsearch","last_synced_at":"2025-06-26T02:03:46.001Z","repository":{"id":37629880,"uuid":"250500092","full_name":"zilliztech/MolSearch","owner":"zilliztech","description":"An opensource molecule analyze software","archived":false,"fork":false,"pushed_at":"2022-06-22T02:46:10.000Z","size":2224,"stargazers_count":45,"open_issues_count":3,"forks_count":22,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-06-07T06:08:19.126Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zilliztech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-27T10:05:04.000Z","updated_at":"2025-05-10T14:16:32.000Z","dependencies_parsed_at":"2022-09-06T09:02:45.997Z","dependency_job_id":null,"html_url":"https://github.com/zilliztech/MolSearch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zilliztech/MolSearch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zilliztech%2FMolSearch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zilliztech%2FMolSearch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zilliztech%2FMolSearch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zilliztech%2FMolSearch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zilliztech","download_url":"https://codeload.github.com/zilliztech/MolSearch/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zilliztech%2FMolSearch/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261984641,"owners_count":23240302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-07T06:08:25.211Z","updated_at":"2025-06-26T02:03:45.973Z","avatar_url":"https://github.com/zilliztech.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"**This repo will no longer be maintained, please visit https://github.com/milvus-io/bootcamp/tree/master/solutions/molecular_similarity_search.**\n# MolSearch\n\n\n[English](README.md) | [中文版](CN_README.md)\n\n# Requirements \n\n- ### [Milvus CPU](https://milvus.io/docs/v0.10.4/milvus_docker-cpu.md)\n\n- ### postgres\n\n- ### RDKit\n\n# Deploy\n\n## 1. Run Milvus Docker\n\nThis demo uses Milvus-0.10.4-CPU，please refer to https://milvus.io/docs/v0.10.4/milvus_docker-cpu.md。\n\n```\n# Start Milvus\n$ docker run -d --name milvus_cpu_0.10.4 \\\n-p 19530:19530 \\\n-p 19121:19121 \\\n-v /home/$USER/milvus/db:/var/lib/milvus/db \\\n-v /home/$USER/milvus/conf:/var/lib/milvus/conf \\\n-v /home/$USER/milvus/logs:/var/lib/milvus/logs \\\n-v /home/$USER/milvus/wal:/var/lib/milvus/wal \\\nmilvusdb/milvus:0.10.4-cpu-d120220-e72454\n```\n\n## 2. Run molsearch-webserver docker\n\n```\n$ docker run -td -p 35001:5000 -e \"MILVUS_HOST=192.168.1.85\" -e \"MILVUS_PORT=19530\" -e \"PG_HOST=192.168.1.85\" -e \"PG_PORT=5432\" zilliz/molsearch-webserver:0.2.0\n```\n\nThe description for parameters:\n\n| Parameter                     | Description                                                  |\n| ----------------------------- | ------------------------------------------------------------ |\n| -p 35001:5000                 | -p specifies pot mapping between the host and the image.     |\n| -e \"MILVUS_HOST=192.168.1.85\" | -e specifies the system parameter mapping between the host and the image. Pease update `192.168.1.25` to the IP address of the Milvus docker. |\n| -e \"MILVUS_PORT=19530\"        | Update `19530` to the port of Milvus docker.                 |\n\n## 3. Run molsearch-webclient docker\n\n```\n$ docker run -td -p 8001:80 -e API_URL=http://192.168.1.85:35001  zilliz/molsearch-webclient:0.1.0\n```\n\n\u003e Note: Please update `192.168.1.85` to the IP address of the Milvus docker.\n\n## 4. Import data to Milvus\n\nImport '.smi' data into Milvus, where the first column is smiles and the second column is the id number, for example:\n\no1c(C(O)CNC(C)(C)C)cc2c1c(CC(=O)OC(C)(C)C)ccc2    10001\n\n```bash\n# Run the following command under the script directory\n$ cd script\n$ python insert_data.py -f test_1w.smi\n```\n\n\u003e The data is from  [pubchem](ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF) and [zinc](http://zinc.docking.org/tranches/home/), which extracted 10,000 pieces of data.\n\nYou can enter the IP and port where molsearch-webclient is launched in your browser.\n\n```bash\n192.168.1.85:8001\n```\n\n# How to use\n\nMolSearch is an open source molecular search software based on [Milvus](https://github.com/milvus-io/milvus) and [MolView](https://github.com/molview/legacy), which has six main feature: editor, chemical formula, molecular search, tool classes, 3D model, Jmol tools.\n\n![img](./pic/molsearch.png)\n\n## Drawing structural formulas\n\n### Top toolbar\n\n![img](./pic/draw1.png)            \n\n- **Trash:** clear the entire canvas\n- **Eraser:** erase atoms, bonds or the current selection\n- **Undo/redo:** undo or redo your recent changes\n- Selection tools: all these tool can be used to drag the current selection or individual atoms and bonds. You can add/remove atoms and bonds to the selection by clicking them. If you have selected a separate fragment, you can rotate it by dragging an atom in the selection. You can delete the selection using the **DEL** key or using the eraser tool. Each tool has different behavior for the right mouse button:\n  - **Drag:** move the entire molecule (you can already use the left mouse button for this)\n  - **Rectangle select:** select atoms and bonds using a rectangular selection area\n  - **Lasso select:** select atoms and bonds by drawing a freehand selection area\n- **Color mode:** display atoms and bonds using colors\n- **skeleton mode:** displays all C and H atoms instead of skeletal display\n- **Center:** centers the whole molecule\n- **Clean:** cleans the structural formula using an external service\n- **to 3D:** converts the structural formula into a 3D model\n\n#### Left toolbar\n\n![](./pic/draw2.png)             \n\n- **Bonds:** pick one of the bond types (single, double, triple, up, down) and add or modify bonds\n- **Fragments:** pick one of the fragments (benzene, cyclopropane, etc.) and add fragments\n- **Chain:** create a chain of carbon atoms\n- **Charge:** increment (+) or decrement (-) the charge of atoms\n\n#### Right toolbar\n\n![](./pic/draw3.png)\n\nIn this toolbar you can select from a number of elements, you can also pick an element from the periodic table using the last button. You can use the element to create new atoms or modify existing atoms.\n\n## Finding structures\n\n ![](./pic/load.png)\n\nYou can load molecules, just type what you are looking for and a list of available molecules will appear.\n\n## Search\n\nThese functions allow you to perform some advanced searches through the database using the structural formula from the sketcher.\n\n1. **Similarity search:** search for compounds with a similar structural formula\n2. **Substructure search:** search for compounds with the current structure as subset\n3. **Superstructure search:** search for compounds with the current structure as superset\n\n## Tools\n\nThe **Tools** menu contains several utility functions which are listed below.\n\n- **Structural formula image:** sketcher snapshot (PNG with alpha channel)\n- **3D model image:** model snapshot (PNG)\n- **MOL file:** exports a MDL Molfile from the 3D model **(common molecules)**\n\n#### Information card\n\nThis collects and displays information about the structural formula.\n\n## 3D Model\n\nThe **Model** menu contains some general functions for the 3D model.\n\n#### Reset\n\nThis function sets the model position, zoom and rotation back to default.\n\n#### Representation\n\nYou can choose from a list of different molecule representations including; ball and stick, stick, van der Waals spheres, wireframe and lines. Macromolecules are automatically drawn using ribbons.\n\n#### Background\n\nYou can switch between a black, gray or white background. The default background is black (exported images from GLmol or ChemDoodle have a transparent background)\n\n#### Engines\n\nYou can choose from three different render engines: **GLmol**, **Jmol** and **ChemDoodle**. GLmol is used as default render engine. GLmol and ChemDoodle are based on WebGL, a browser technology to support 3D graphics. If WebGL is not available in your browser, Jmol will be used for all rendering.\n\nMolSearch automatically switches to:\n\n1. **Jmol** if you execute functions from the Jmol menu\n2. **GLmol** if you load macromolecules (due to significant higher performance)\n3. **ChemDoodle** if you load a crystal structure (GLmol cannot render crystal structures)\n\n## Jmol tools\n\nThe **Jmol** menu offers some awesome Jmol-only functions and calculations.\n\n#### Clear\n\nClears all executed calculations and measurements.\n\n#### High Quality\n\nEnables High Quality rendering in Jmol (enabled by default on fast devices) When turned off, anti-aliasing is disabled and the model is drawn using lines while transforming it.\n\n#### Calculations\n\nYou can perform the following Jmol calculations in Jmol:\n\n- **MEP surface lucent/opaque:** calculates and projects molecular analysis software electrostatic potential on a translucent or opaque van der Waals surface\n- **Charge:** calculates and projects atomic charge as text label and white to atom color gradient\n- **Bond dipoles:** calculates and draws individual bond dipoles\n- **Overall dipole:** calculates and draws net bond dipole\n- **Energy minimization:** executes an interactive MMFF94 energy minimization *(note that this function only executes a maximum of 100 minimization steps at a time)*\n\n#### Measurement\n\nYou can measure distance, angle and torsion using Jmol. You can activate and deactivate one of these measurement types via the Jmol menu.\n\n- **Distance** distance between two atoms in nm\n- **Angle** angle between two bonds in degrees\n- **Torsion** torsion between four atoms in degrees\n\nNote that in some cases, the resolved 3D model is only an approach of the real molecule, this means you have to execute an **Energy minimization** in order to do reliable measurements.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzilliztech%2Fmolsearch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzilliztech%2Fmolsearch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzilliztech%2Fmolsearch/lists"}