nvMolKit
A high-performance, GPU-accelerated library for key computational chemistry tasks, such as molecular similarity, conformer generation, and geometry relaxation.
File Explorer
Download Latest Version (.zip)- blossom-ci.yml
- conda-build.yml
- cpp-build-test.yml
- docs.yml
- lint.yml
- pip-build.yml
- setup_dependencies.sh
- build_all.sh
- hpccm_build.py
- manylinux_2_28_cuda12.Dockerfile
- ubuntu22_gcc13.yml
- ubuntu22_py311_rdkit202403.yml
- ubuntu22_py312_rdkit202503.yml
- ubuntu24_py313_rdkit202503.yml
- ubuntu_24_clang17.yml
- build_full_matrix.sh
- build_one_wheel.sh
- build_pip_wheels.sh
- build_rdkit_recipe.sh
- cibuildwheel_before_build.sh
- generate_simple_index.sh
- lookup_rdkit_pypi_tag.py
- merge_conda_artifacts.sh
- merge_simple_index.py
- pin_wheel_rdkit.py
- rdkit_build_matrix.yaml
- README.md
- repair_wheel.sh
- requirements-release.txt
- retag_wheel.py
- test_release_tools.py
- unzip_all_conda_artifacts.sh
- verify_conda_distributable.sh
- verify_conda_version_combinations.sh
- full_test_subset.txt
- smoke_check.py
- test_one_wheel.sh
- test_wheel_matrix.sh
- apply_copyright.sh
- Dockerfile.dev
- environment.yml.dev
- include_check.py
- run_ci.sh
- run_clang_format.sh
- run_clang_tidy.sh
- run_cmake_format_lint.sh
- run_cppcheck.sh
- run_include_check.sh
- run_iwyu.sh
- run_ruff_format.sh
- UBSAN_suppresions.supp
- __init__.py
- cli.py
- concurrent.py
- loaders.py
- molprep.py
- results.py
- timing.py
- benchmark_smiles.csv
- chembl_10k.smi
- MPCONF196.sdf
- conftest.py
- test_cli.py
- test_concurrent.py
- test_loaders.py
- test_mcs_bench.py
- test_results.py
- test_timing.py
- benchmark_timing.py
- benchmark_utils.cpp
- benchmark_utils.h
- bit_vector.cpp
- butina_clustering_bench.py
- CMakeLists.txt
- conformer_rmsd_bench.py
- cross_similarity_bench.py
- eigen_solver_bench.cu
- etkdg_bench.py
- etkdg_embed_bench.cpp
- etkdg_ff_bench.cpp
- ff_optimize_bench.py
- mcs_bench.py
- mmff_multimol_bench.cpp
- mmff_optimize_bench.cpp
- morgan_fp.cpp
- substruct_bench.py
- substruct_config.csv
- tfd_bench.py
- tfd_prepare_mols.py
- tfd_profile.py
- updateInverseHessianBench.cu
- boost.cmake
- cuda_targets.cmake
- device_compiler_flags.cmake
- gtest.cmake
- gtest_helpers.cmake
- host_compiler_flags.cmake
- nanobench.cmake
- nvmolkit_cmake_options.cmake
- openmp.cmake
- python.cmake
- python_install.cmake
- rdkit.cmake
- sanitizers.cmake
- fire_validation_bfgs_fire_scatter.png
- fire_validation_energy_distributions.png
- class_template.rst
- function_template.rst
- pytorch_module_template.rst
- nvmolkit.rst
- agent_skill.rst
- autotune.rst
- changelog.md
- conf.py
- fire_minimizer.rst
- forcefield.rst
- index.rst
- README.md
- requirements.txt
- similarity.rst
- clustering.ipynb
- conformer_generation_optimization_workflow.ipynb
- License.txt
- third-party.txt
- __init__.py
- _calibration.py
- _core.py
- _ff_common.py
- _persistence.py
- tune_batched_forcefield.py
- tune_embed_molecules.py
- tune_mcs.py
- tune_mmff_optimize.py
- tune_substructure.py
- tune_uff_optimize.py
- butina_test_smiles.csv
- smiles.csv
- conftest.py
- test_autotune.py
- test_batched_forcefield.py
- test_batched_forcefield_device.py
- test_clustering.py
- test_conformer_rmsd.py
- test_embed_molecules.py
- test_fingerprints.py
- test_import_order.py
- test_mcs.py
- test_mmff_optimization.py
- test_similarity.py
- test_skill.py
- test_substructure.py
- test_tfd.py
- test_types.py
- test_uff_optimization.py
- __init__.py
- _arrayHelpers.pyi
- _DataStructs.pyi
- _embedMolecules.pyi
- _fingerprint_inputs.py
- _Fingerprints.pyi
- _mmff_bridge.py
- _mmffOptimization.pyi
- _TFD.pyi
- _types.pyi
- _uffOptimization.pyi
- array_helpers.cpp
- array_helpers.h
- batchedForcefield.cpp
- batchedForcefield.py
- boost_python_utils.h
- clustering.cpp
- clustering.py
- CMakeLists.txt
- conformerRmsd.cpp
- conformerRmsd.py
- DataStructs.cpp
- device_result_python.h
- embedMolecules.cpp
- embedMolecules.py
- fingerprints.cpp
- fingerprints.py
- mcs.cpp
- mcs.py
- mmff_python_utils.h
- mmffOptimization.cpp
- mmffOptimization.py
- similarity.py
- substructure.cpp
- substructure.py
- tfd.cpp
- tfd.py
- types.cpp
- types.py
- uffOptimization.cpp
- uffOptimization.py
- bounds_matrix.cpp
- bounds_matrix.h
- CMakeLists.txt
- conformer_pruning.cpp
- conformer_pruning.h
- dist_geom_flattened_builder.cpp
- dist_geom_flattened_builder.h
- mmff_builder.cpp
- mmff_builder.h
- mmff_contribs.cpp
- mmff_contribs.h
- mmff_flattened_builder.cpp
- mmff_flattened_builder.h
- mmff_optimize.h
- uff_flattened_builder.cpp
- uff_flattened_builder.h
- evals.json
- trigger_evals.json
- skill-card.md
- SKILL.md
- CMakeLists.txt
- conformer_info.h
- device_coord_collector.cpp
- device_coord_collector.h
- device_coord_result.h
- etkdg_device_collect.cu
- etkdg_device_collect.h
- ff_device_collect.cpp
- ff_device_collect.h
- CMakeLists.txt
- flat_bit_vect.h
- batched_forcefield.cpp
- batched_forcefield.h
- CMakeLists.txt
- coord_gen.cu
- coord_gen.h
- dg_batched_forcefield.cu
- dg_batched_forcefield.h
- dist_geom.cu
- dist_geom.h
- dist_geom_kernels.cu
- dist_geom_kernels.h
- dist_geom_kernels_device.cuh
- etk_batched_forcefield.cu
- etk_batched_forcefield.h
- ff_utils.cpp
- ff_utils.h
- forcefield_constraints.cpp
- forcefield_constraints.h
- kernel_utils.cu
- kernel_utils.cuh
- mmff.cu
- mmff.h
- mmff_batched_forcefield.cu
- mmff_batched_forcefield.h
- mmff_kernels.cu
- mmff_kernels.h
- mmff_kernels_device.cuh
- mmff_properties.h
- uff.cu
- uff.h
- uff_batched_forcefield.cu
- uff_batched_forcefield.h
- uff_kernels.cu
- uff_kernels.h
- uff_kernels_device.cuh
- fmcs.cu
- fmcs.cuh
- fmcs_grow.cuh
- fmcs_kernel.cuh
- fmcs_match.cuh
- fmcs_match_tables.cu
- fmcs_match_tables.cuh
- fmcs_policy.cuh
- fmcs_search_support.cuh
- fmcs_seed.cuh
- fmcs_seed_queue.cuh
- fmcs_topology.cuh
- mcs_cooperative_copy.cuh
- mcs_types.cuh
- CMakeLists.txt
- labeled_graph.h
- mcs_graph.cpp
- mcs_search.cu
- mcs_search.h
- mcs_types.h
- bfgs_common.cpp
- bfgs_common.h
- bfgs_hessian.cu
- bfgs_hessian.h
- bfgs_minimize.cu
- bfgs_minimize.h
- bfgs_minimize_permol_kernels.cu
- bfgs_minimize_permol_kernels.h
- bfgs_types.h
- CMakeLists.txt
- fire_minimize_permol_kernels.cu
- fire_minimize_permol_kernels.h
- fire_minimizer.cu
- fire_minimizer.h
- fire_options.h
- minimizer_api.h
- mmff_minimize.cpp
- mmff_minimize.h
- uff_minimize.cpp
- uff_minimize.h
- candidate_tables.cuh
- class_adjacency.cuh
- occupancy.cuh
- target_mask.cuh
- warp_dfs.cuh
- warp_reduce.cuh
- atom_data_packed.h
- boolean_tree.cuh
- CMakeLists.txt
- gpu_executor.cu
- gpu_executor.h
- graph_labeler.cuh
- minibatch_planner.cpp
- minibatch_planner.h
- molecules.cpp
- molecules.h
- molecules_device.cuh
- packed_bonds.cpp
- packed_bonds.h
- packed_bonds_device.cuh
- pinned_buffer_pool.cpp
- pinned_buffer_pool.h
- recursive_preprocessor.cu
- recursive_preprocessor.h
- sm_shared_mem_config.cuh
- substruct_algos.cuh
- substruct_constants.h
- substruct_debug.h
- substruct_dfs.cuh
- substruct_kernels.cu
- substruct_kernels.h
- substruct_launch_config.cpp
- substruct_launch_config.h
- substruct_results.h
- substruct_search.cu
- substruct_search.h
- substruct_search_internal.cpp
- substruct_search_internal.h
- substruct_template_config.h
- substruct_types.h
- thread_worker_context.h
- chembl_1k_smis.txt
- CMakeLists.txt
- conformer_checkers.cpp
- conformer_checkers.h
- mol_data.cpp
- mol_data.h
- substruct_validation.cu
- substruct_validation.h
- CMakeLists.txt
- tfd_common.cpp
- tfd_common.h
- tfd_cpu.cpp
- tfd_cpu.h
- tfd_detail.h
- tfd_gpu.cpp
- tfd_gpu.h
- tfd_kernels.cu
- tfd_kernels.h
- tfd_transfer.cu
- tfd_types.h
- CMakeLists.txt
- cub_helpers.cuh
- cuda_error_check.h
- device.cpp
- device.h
- device_timings.cuh
- device_vector.h
- exceptions.cpp
- exceptions.h
- gpu_executor_ring.h
- host_vector.h
- macros_ptx.cuh
- nvtx.h
- openmp_helpers.cpp
- openmp_helpers.h
- p2p.cpp
- p2p.h
- pinned_host_allocator.cpp
- pinned_host_allocator.h
- rdkit_compat.h
- rdkit_ownership_wrap.h
- thread_safe_queue.h
- work_splitting.h
- butina.cu
- butina.h
- butina_common.cuh
- CMakeLists.txt
- conformer_rmsd.cu
- conformer_rmsd.h
- conformer_rmsd_mol.cpp
- conformer_rmsd_mol.h
- embedder_utils.cpp
- embedder_utils.h
- etkdg.cpp
- etkdg.h
- etkdg_impl.cpp
- etkdg_impl.h
- etkdg_kernels.cu
- etkdg_stage_coordgen.cu
- etkdg_stage_coordgen.h
- etkdg_stage_distgeom_minimize.cu
- etkdg_stage_distgeom_minimize.h
- etkdg_stage_etk_minimization.cu
- etkdg_stage_etk_minimization.h
- etkdg_stage_stereochem_checks.cu
- etkdg_stage_stereochem_checks.h
- etkdg_stage_update_conformers.cu
- etkdg_stage_update_conformers.h
- fingerprint_similarity.h
- fingerprint_similarity_device.cuh
- fused_butina.cu
- hardware_options.h
- load_store.cuh
- morgan_fingerprint.cpp
- morgan_fingerprint.h
- morgan_fingerprint_common.cpp
- morgan_fingerprint_common.h
- morgan_fingerprint_cpu.cpp
- morgan_fingerprint_cpu.h
- morgan_fingerprint_gpu.cpp
- morgan_fingerprint_gpu.h
- morgan_fingerprint_kernels.cu
- morgan_fingerprint_kernels.h
- similarity.cpp
- similarity.h
- similarity_kernels.cu
- similarity_kernels.h
- similarity_op.cuh
- symmetric_eigensolver.cu
- symmetric_eigensolver.h
- triangle_smooth.cu
- triangle_smooth.h
- versions.h.in
- CMakeLists.txt
- test_fp_sim_workflow.cpp
- BMS_2006_filter.txt
- BMS_2006_filter_invalid.txt
- BMS_2006_filter_supported.txt
- BMS_2006_filter_unsupported.txt
- openbabel_functional_groups.txt
- openbabel_functional_groups_invalid.txt
- openbabel_functional_groups_supported.txt
- openbabel_functional_groups_unsupported.txt
- pwalters_alert_collection.txt
- pwalters_alert_collection_invalid.txt
- pwalters_alert_collection_supported.txt
- pwalters_alert_collection_unsupported.txt
- rdkit_fragment_descriptors.txt
- rdkit_fragment_descriptors_invalid.txt
- rdkit_fragment_descriptors_supported.txt
- rdkit_fragment_descriptors_unsupported.txt
- rdkit_pattern_fingerprint.txt
- rdkit_pattern_fingerprint_invalid.txt
- rdkit_pattern_fingerprint_supported.txt
- rdkit_pattern_fingerprint_unsupported.txt
- rdkit_tautomer_transforms.txt
- rdkit_tautomer_transforms_invalid.txt
- rdkit_tautomer_transforms_supported.txt
- rdkit_tautomer_transforms_unsupported.txt
- rdkit_torsionPreferences_macrocycles.txt
- rdkit_torsionPreferences_macrocycles_invalid.txt
- rdkit_torsionPreferences_macrocycles_supported.txt
- rdkit_torsionPreferences_macrocycles_unsupported.txt
- rdkit_torsionPreferences_smallrings.txt
- rdkit_torsionPreferences_smallrings_invalid.txt
- rdkit_torsionPreferences_smallrings_supported.txt
- rdkit_torsionPreferences_smallrings_unsupported.txt
- rdkit_torsionPreferences_v2.txt
- rdkit_torsionPreferences_v2_invalid.txt
- rdkit_torsionPreferences_v2_supported.txt
- rdkit_torsionPreferences_v2_unsupported.txt
- RLewis_smarts.txt
- RLewis_smarts_invalid.txt
- RLewis_smarts_supported.txt
- RLewis_smarts_unsupported.txt
- wehi_pains.txt
- wehi_pains_invalid.txt
- wehi_pains_supported.txt
- wehi_pains_unsupported.txt
- 50_atom_mol.sdf
- 60plus_atom_mols.sdf
- chembl_1k.smi
- MMFF94_dative.sdf
- MMFF94_hypervalent.sdf
- rdkit_smallmol_1.mol2
- CMakeLists.txt
- filter_all_smarts.sh
- smarts_filter.cpp
- test_bfgs_hessian.cpp
- test_bfgs_minimizer.cu
- test_boolean_tree.cu
- test_butina.cpp
- test_conformer_checkers.cpp
- test_coordgen.cu
- test_cuda_error_check.cpp
- test_device.cpp
- test_device_timings.cu
- test_device_vector.cpp
- test_distgeom.cu
- test_distgeom_kernels.cu
- test_etkdg.cu
- test_etkdg_coordgen.cu
- test_etkdg_device_output.cu
- test_etkdg_etk_minimize.cu
- test_etkdg_minimize.cu
- test_etkdg_result_tracker.cpp
- test_etkdg_stereochem_checks.cu
- test_ff_device_output.cu
- test_fire_minimizer.cu
- test_fire_minimizer_permol.cu
- test_flat_bit_vect.cpp
- test_flat_bit_vect_device.cu
- test_flattened_builder.cu
- test_fmcs_core.cpp
- test_fmcs_engine_validation.cpp
- test_fmcs_foundations.cu
- test_fmcs_grow.cu
- test_fmcs_integration.cu
- test_fmcs_labeled.cpp
- test_fmcs_match.cu
- test_fmcs_policy.cpp
- test_fmcs_primitives.cu
- test_fmcs_search_support.cu
- test_fmcs_substructure.cu
- test_graph_labeler.cu
- test_graph_labeler_recursive.cu
- test_host_vector.cu
- test_minibatch_planner.cpp
- test_mmff.cu
- test_molecules.cu
- test_morgan_fingerprint.cpp
- test_morgan_fingerprint_ref.cpp
- test_openmp_helpers.cpp
- test_p2p.cpp
- test_pinned_host_allocator.cpp
- test_query.cu
- test_rdkit_bounds_matrix.cpp
- test_rdkit_compiles.cpp
- test_recursive_preprocessor.cu
- test_similarity.cpp
- test_substruct_algos.cu
- test_substruct_integration.cu
- test_substruct_label_integration.cu
- test_substruct_search.cu
- test_tfd.cpp
- test_tfd_cpu.cpp
- test_tfd_gpu.cpp
- test_tfd_kernels.cu
- test_thread_safe_queue.cpp
- test_triangle_smooth.cu
- test_uff.cu
- test_utils.cpp
- test_utils.h
- test_warp_dfs.cu
- test_work_splitting.cpp
- .clang-format
- .clang-tidy
- .gitignore
- CHANGELOG.md
- CMakeLists.txt
- CONTRIBUTING.md
- greptile.json
- pyproject.toml
- README.md
- setup.py
- VERSION
# Installation Guide
git clone https://github.com/NVIDIA-BioNeMo/nvMolKit
Downloads the entire project code from GitHub to your computer.
cd nvMolKit
Moves into the project folder you just downloaded.
2. Official Install Script
Easy Recommended- Python 3 Python is required to use pip.
- APT (Debian/Ubuntu ๊ณ์ด) Built into Debian/Ubuntu-based Linux distributions.
pip install nvmolkit==${NVMOLKIT_VERSION}+rdkit${RDKIT_VERSION} \
Installs the package published on PyPI directly โ no need to clone the source.
sudo apt-get install build-essential libeigen3-dev
Installs directly from the APT package repository (Debian/Ubuntu-based).
sudo apt-get install libstdc++-12-dev libomp-15-dev
Installs directly from the APT package repository (Debian/Ubuntu-based).
sudo apt-get install clang-15 clang-format-15 clang-tidy-15
Installs directly from the APT package repository (Debian/Ubuntu-based).
Pulled directly from this repo's README.
3. Docker
Easy- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker build -f admin/container/manylinux_2_28_cuda12.Dockerfile \
Builds a runnable image based on the Dockerfile.
Pulled directly from this repo's README.
4. CMake
Mediumsudo apt remove --purge --auto-remove cmake
Type this command into your terminal and run it.
wget https://github.com/Kitware/CMake/releases/download/v3.30.1/cmake-3.30.1-linux-x86_64.sh
Type this command into your terminal and run it.
chmod +x cmake-3.30.1-linux-x86_64.sh
Type this command into your terminal and run it.
sudo ./cmake-3.30.1-linux-x86_64.sh --prefix=/usr/local --skip-license
Type this command into your terminal and run it.
cmake --version
Type this command into your terminal and run it.
Pulled directly from this repo's README.
5. Python
Easypython -m pip install torch --index-url https://download.pytorch.org/whl/cu128
Installs the Python libraries listed in requirements.txt (or similar).
python -m pip install nvmolkit
Installs the Python libraries listed in requirements.txt (or similar).
pip install nvmolkit==${NVMOLKIT_VERSION}+rdkit${RDKIT_VERSION} \
Installs the package published on PyPI directly โ no need to clone the source.
pip install torch torchvision torchaudio
Installs the package published on PyPI directly โ no need to clone the source.
CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) pip -v install .
Type this command into your terminal and run it.
Pulled directly from this repo's README.
