[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-gnina--gnina":3,"tool-gnina--gnina":65},[4,23,32,40,49,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,2,"2026-04-10T11:13:16",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[19,14,18],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},5773,"cs-video-courses","Developer-Y\u002Fcs-video-courses","cs-video-courses 是一个精心整理的计算机科学视频课程清单，旨在为自学者提供系统化的学习路径。它汇集了全球知名高校（如加州大学伯克利分校、新南威尔士大学等）的完整课程录像，涵盖从编程基础、数据结构与算法，到操作系统、分布式系统、数据库等核心领域，并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。\n\n面对网络上零散且质量参差不齐的教学资源，cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容，仅收录真正的大学层级课程，排除了碎片化的简短教程或商业广告，确保用户能接触到严谨的学术内容。\n\n这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员，以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽，不仅包含传统的软件工程与网络安全，还细分了生成式 AI、大语言模型、计算生物学等新兴学科，并直接链接至官方视频播放列表，让用户能一站式获取高质量的教育资源，免费享受世界顶尖大学的课堂体验。",79792,"2026-04-08T22:03:59",[18,13,14,20],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":46,"last_commit_at":47,"category_tags":48,"status":22},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[17,13,20,19,18],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":46,"last_commit_at":55,"category_tags":56,"status":22},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",75415,"2026-04-12T10:44:54",[19,13,20,18],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":29,"last_commit_at":63,"category_tags":64,"status":22},3215,"awesome-machine-learning","josephmisiti\u002Fawesome-machine-learning","awesome-machine-learning 是一份精心整理的机器学习资源清单，汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点，这份清单按编程语言（如 Python、C++、Go 等）和应用场景（如计算机视觉、自然语言处理、深度学习等）进行了系统化分类，帮助使用者快速定位高质量项目。\n\n它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库，还是资深工程师对比不同语言的技术选型，都能从中获得极具价值的参考。此外，清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源，构建了从学习到实践的全链路支持体系。\n\n其独特亮点在于严格的维护标准：明确标记已停止维护或长期未更新的项目，确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”，awesome-machine-learning 以开源协作的方式持续更新，旨在降低技术探索门槛，让每一位从业者都能高效地站在巨人的肩膀上创新。",72149,"2026-04-03T21:50:24",[20,18],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":68,"owner_name":68,"owner_avatar_url":76,"owner_bio":77,"owner_company":78,"owner_location":78,"owner_email":78,"owner_twitter":78,"owner_website":78,"owner_url":79,"languages":80,"stars":109,"forks":110,"last_commit_at":111,"license":112,"difficulty_score":113,"env_os":114,"env_gpu":115,"env_ram":116,"env_deps":117,"category_tags":131,"github_topics":132,"view_count":10,"oss_zip_url":78,"oss_zip_packed_at":78,"status":22,"created_at":138,"updated_at":139,"faqs":140,"releases":177},6897,"gnina\u002Fgnina","gnina","A deep learning framework for molecular docking","gnina 是一款专为分子对接设计的深度学习框架，旨在提升药物发现中预测小分子与蛋白质结合模式及亲和力的准确性。传统对接软件往往依赖经验评分函数，难以精确捕捉复杂的分子间相互作用，而 gnina 通过引入卷积神经网络（CNN），实现了对配体评分和姿态优化的智能化升级，有效解决了这一痛点。\n\n作为 AutoDock Vina 和 smina 的进化版本，gnina 不仅保留了经典高效的搜索算法，更独特地集成了 3D 卷积神经网络技术。它能够直接学习蛋白质 - 配体复合物的三维结构特征，从而提供比传统方法更可靠的打分结果，并支持基于深度学习的配体姿态优化。此外，项目还提供了配套的交叉对接数据集和可视化工具，方便用户深入理解模型决策过程。\n\n这款工具非常适合计算化学家、药物研发人员以及从事结构生物学研究的科学家使用。对于希望探索人工智能在药物设计领域应用的开发者，gnina 也提供了灵活的接口和丰富的文档（包括 Colab 示例和工作坊视频），便于快速上手进行二次开发或模型训练。无论是用于虚拟筛选大规模化合物库，还是精细研究特定靶点的结合机制，gnina 都是一个强大且开源的专业选择。","[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fgnina\u002Fgnina\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg?token=kOC9GUKEGa)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fgnina\u002Fgnina)\n[![Github CI](https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Factions\u002Fworkflows\u002FCI.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Factions)\n\ngnina (pronounced NEE-na) is a molecular docking program with integrated support for scoring and optimizing ligands using convolutional neural networks. It is a fork of [smina](http:\u002F\u002Fsmina.sf.net\u002F), which is a fork of [AutoDock Vina](http:\u002F\u002Fvina.scripps.edu\u002F).  \n\nHelp\n====\n \nPlease [subscribe to our slack team](https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fgninacnn\u002Fshared_invite\u002FenQtNTY3ODk2ODk5OTU5LTkzMjY1ZTE3YjJlZmIxOWI2OTU3Y2RlMTIyYmM2YmFmYTU1NTk5ZTBmMjUwMGRhYzk1ZjY5N2E4Y2I5YWU5YWI).\nAn example colab notebook showing how to use gnina is available \u003Ca href=\"https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1QYo5QLUE80N_G28PlpYs6OKGddhhd931?usp=sharing\">here\u003C\u002Fa>. We also hosted a workshp on using gnina ([video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=MG3Srzi5kZ0), [slides](https:\u002F\u002Fbits.csb.pitt.edu\u002Frsc_workshop2021\u002Fdocking_with_gnina.slides.html#\u002F)).\n\nCitation\n========\nIf you find gnina useful, please cite our paper(s):  \n\n\n**GNINA 1.3: the next increment in molecular docking with deep learning** (Primary application citation)  \nA McNutt, Y Li, R Meli, R Aggarwal, DR Koes. *J. Cheminformatics*, 2025  \n[link](https:\u002F\u002Fjcheminf.biomedcentral.com\u002Farticles\u002F10.1186\u002Fs13321-025-00973-x) [PubMed](https:\u002F\u002Fpmc.ncbi.nlm.nih.gov\u002Farticles\u002FPMC11874439\u002F)\n\n**GNINA 1.0: Molecular docking with deep learning** (Primary application citation, previous version)  \nA McNutt, P Francoeur, R Aggarwal, T Masuda, R Meli, M Ragoza, J Sunseri, DR Koes. *J. Cheminformatics*, 2021  \n[link](https:\u002F\u002Fjcheminf.biomedcentral.com\u002Farticles\u002F10.1186\u002Fs13321-021-00522-2) [PubMed](https:\u002F\u002Fwww.ncbi.nlm.nih.gov\u002Fpmc\u002Farticles\u002FPMC8191141\u002F) [ChemRxiv](https:\u002F\u002Fchemrxiv.org\u002Farticles\u002Fpreprint\u002FGNINA_1_0_Molecular_Docking_with_Deep_Learning\u002F13578140)\n\n**Protein–Ligand Scoring with Convolutional Neural Networks**  (Primary methods citation)  \nM Ragoza, J Hochuli, E Idrobo, J Sunseri, DR Koes. *J. Chem. Inf. Model*, 2017  \n[link](http:\u002F\u002Fpubs.acs.org\u002Fdoi\u002Ffull\u002F10.1021\u002Facs.jcim.6b00740) [PubMed](https:\u002F\u002Fwww.ncbi.nlm.nih.gov\u002Fpmc\u002Farticles\u002FPMC5479431\u002F) [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F1612.02751)  \n\n**Virtual Screening with Gnina 1.0** (Virtual screening citation)\nJ Sunseri, DR Koes D. *Molecules*, 2021\n[link](https:\u002F\u002Fwww.mdpi.com\u002F1420-3049\u002F26\u002F23\u002F7369) [Preprints](https:\u002F\u002Fwww.preprints.org\u002Fmanuscript\u002F202111.0329\u002Fv1)\n\n**CACHE Challenge# 1: Docking with GNINA Is All You Need** (Example application)\nI Dunn, S Pirhadi, Y Wang, S Ravindran, C Concepcion, DR Koes. *J. Chem. Inf. Model*, 2024 \n[link](https:\u002F\u002Fpubs.acs.org\u002Fdoi\u002Ffull\u002F10.1021\u002Facs.jcim.4c01429) [PubMed](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F39654129\u002F)\n\n**Three-Dimensional Convolutional Neural Networks and a Cross-Docked Data Set for Structure-Based Drug Design** (Dataset citation)\nPG Francoeur, T Masuda, J Sunseri, A Jia, RB Iovanisci, I Snyder, DR Koes. *J. Chem. Inf. Model*, 2020  \n[link](https:\u002F\u002Fpubs.acs.org\u002Fdoi\u002Fabs\u002F10.1021\u002Facs.jcim.0c00411) [PubMed](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F32865404\u002F) [Chemrxiv](https:\u002F\u002Fchemrxiv.org\u002Farticles\u002Fpreprint\u002F3D_Convolutional_Neural_Networks_and_a_CrossDocked_Dataset_for_Structure-Based_Drug_Design\u002F11833323\u002F1)\n\n**Ligand pose optimization with atomic grid-based convolutional neural networks**  \nM Ragoza, L Turner, DR Koes. *Machine Learning for Molecules and Materials NIPS 2017 Workshop*, 2017  \n[arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F1710.07400)  \n\n**Visualizing convolutional neural network protein-ligand scoring**  \nJ Hochuli, A Helbling, T Skaist, M Ragoza, DR Koes.  *Journal of Molecular Graphics and Modelling*, 2018  \n[link](https:\u002F\u002Fwww.sciencedirect.com\u002Fscience\u002Farticle\u002Fpii\u002FS1093326318301670) [PubMed](https:\u002F\u002Fwww.ncbi.nlm.nih.gov\u002Fpmc\u002Farticles\u002FPMC6343664\u002F) [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F1803.02398)\n\n**Convolutional neural network scoring and minimization in the D3R 2017 community challenge**  \nJ Sunseri, JE King, PG Francoeur, DR Koes.  *Journal of computer-aided molecular design*, 2018  \n[link](https:\u002F\u002Flink.springer.com\u002Farticle\u002F10.1007\u002Fs10822-018-0133-y) [PubMed](https:\u002F\u002Fwww.ncbi.nlm.nih.gov\u002Fpubmed\u002F29992528)\n\n\n\nDocker\n======\n\nA pre-built docker image is available [here](https:\u002F\u002Fhub.docker.com\u002Fu\u002Fgnina) and Dockerfiles are [here](https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Ftree\u002Fmaster\u002Fdocker).\n\nInstallation\n============\n\nWe recommend that you use the [pre-built binary](https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Freleases\u002Flatest) unless you have significant experience building software on Linux, in which case building from source *might* result in an executable more optimized for your system.  The pre-built binary can be used in WSL.\n\n### Ubuntu 22.04\n```\napt-get  install build-essential git cmake wget libboost-all-dev libeigen3-dev libgoogle-glog-dev libprotobuf-dev protobuf-compiler libhdf5-dev libatlas-base-dev python3-dev librdkit-dev python3-numpy python3-pip python3-pytest libjsoncpp-dev\n\n```\n\n[Follow NVIDIA's instructions](http:\u002F\u002Fdocs.nvidia.com\u002Fcuda\u002Fcuda-installation-guide-linux\u002F#axzz4TWipdwX1) to install the latest version of CUDA (>= 12.0 is required). **Make sure `nvcc` is in your PATH.**\n\n\n#\nInstall OpenBabel3.  Note there are errors in bond order determination in version 3.1.1 and older.\n```\ngit clone https:\u002F\u002Fgithub.com\u002Fdkoes\u002Fopenbabel.git\ncd openbabel\nmkdir build\ncd build\ncmake -DWITH_MAEPARSER=OFF -DWITH_COORDGEN=OFF -DPYTHON_BINDINGS=ON -DRUN_SWIG=ON ..\nmake\nmake install\n```\n\n#\nInstall gnina\n```\ngit clone https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina.git\ncd gnina\nmkdir build\ncd build\ncmake ..  # -DUSE_SYSTEM_NVTX=1 may be needed with pytorch 2.7.0 and CUDA 12.9\nmake\nmake install\n```\n\n### [WSL2 Ubuntu 22.04](https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Fissues\u002F247)\n```bash\nsudo apt-get remove nvidia-cuda-toolkit\nwget https:\u002F\u002Fdeveloper.download.nvidia.com\u002Fcompute\u002Fcuda\u002F12.4.0\u002Flocal_installers\u002Fcuda_12.4.0_550.54.14_linux.run\nchmod 700 cuda_12.4.0_550.54.14_linux.run\nsudo sh cuda_12.4.0_550.54.14_linux.run\nwget https:\u002F\u002Fdeveloper.download.nvidia.com\u002Fcompute\u002Fcudnn\u002F9.0.0\u002Flocal_installers\u002Fcudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb\nsudo dpkg -i cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb\nsudo cp \u002Fvar\u002Fcudnn-local-repo-ubuntu2204-9.0.0\u002Fcudnn-*-keyring.gpg \u002Fusr\u002Fshare\u002Fkeyrings\u002F\nsudo apt-get update\nsudo apt-get -y install cudnn-cuda-12\napt-get install build-essential git cmake wget libboost-all-dev libeigen3-dev libgoogle-glog-dev libprotobuf-dev protobuf-compiler libhdf5-dev libatlas-base-dev python3-dev librdkit-dev python3-numpy python3-pip python3-pytest libjsoncpp-dev\n\ngit clone https:\u002F\u002Fgithub.com\u002Fopenbabel\u002Fopenbabel.git\ncd openbabel\nmkdir build\ncd build\ncmake -DWITH_MAEPARSER=OFF -DWITH_COORDGEN=OFF -DPYTHON_BINDINGS=ON -DRUN_SWIG=ON ..\nmake -j8\nsudo make install\n\ngit clone https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina.git\ncd gnina\nmkdir build\ncd build\ncmake ..\nmake -j8\nsudo make install\n```\n\n#\nIf you are building for systems with different GPUs (e.g. in a cluster environment), configure with `-DCMAKE_CUDA_ARCHITECTURES=all`.   \nNote that the cmake build will automatically fetch and install [libmolgrid](https:\u002F\u002Fgithub.com\u002Fgnina\u002Flibmolgrid) and [torch](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fpytorch) if they are not already installed.\n\n\nThe scripts provided in `gnina\u002Fscripts` have additional python dependencies that must be installed. \n\nUsage\n=====\n\nTo dock ligand `lig.sdf` to a binding site on `rec.pdb` defined by another ligand `orig.sdf`:\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf -o docked.sdf.gz\n```\n\nTo perform docking with flexible sidechain residues within 3.5 Angstroms of `orig.sdf` (generally not recommend unless prior knowledge indicates pocket is highly flexible):\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --flexdist_ligand orig.sdf --flexdist 3.5 -o flex_docked.sdf.gz\n```\n\nTo perform whole protein docking:\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand rec.pdb -o whole_docked.sdf.gz --exhaustiveness 64\n```\n\nTo utilize the default ensemble CNN in the energy minimization during the refinement step of docking (10 times slower than the default rescore option):\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn_scoring refinement -o cnn_refined.sdf.gz\n```\n\nTo utilize the default ensemble CNN for every step of docking (1000 times slower than the default rescore option):\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn_scoring all -o cnn_all.sdf.gz\n```\n\nTo utilize all empirical scoring using the [Vinardo](https:\u002F\u002Fjournals.plos.org\u002Fplosone\u002Farticle?id=10.1371\u002Fjournal.pone.0155183) scoring function:\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --scoring vinardo --cnn_scoring none -o vinardo_docked.sdf.gz\n```\n\nTo utilize a different CNN during docking (see help for possible options):\n```\n\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn dense -o dense_docked.sdf.gz\n```\n\nTo minimize and score ligands `ligs.sdf` already positioned in a binding site:\n```\ngnina -r rec.pdb -l ligs.sdf --minimize -o minimized.sdf.gz\n```\n\nTo covalently dock a pyrazole to a specific iron atom on the receptor with the bond formed between a nitrogen of the pyrazole and the iron.\n```\ngnina  -r rec.pdb.gz -l conformer.sdf.gz --autobox_ligand bindingsite.sdf.gz --covalent_rec_atom A:601:FE --covalent_lig_atom_pattern '[$(n1nccc1)]' -o output.sdf.gz \n```\n\nThe same as above, but with the covalently bonding ligand atom manually positioned (instead of using OpenBabel binding heuristics) and the ligand\u002Fresidue complex UFF optimized.\n```\ngnina  -r rec.pdb.gz -l conformer.sdf.gz --autobox_ligand bindingsite.sdf.gz --covalent_lig_atom_position -11.796,31.887,72.682  --covalent_optimize_lig  --covalent_rec_atom A:601:FE --covalent_lig_atom_pattern '[$(n1nccc1)]' -o output.sdf.gz \n```\n\nAll options:\n```\nInput:\n  -r [ --receptor ] arg              rigid part of the receptor\n  --flex arg                         flexible side chains, if any (PDBQT)\n  -l [ --ligand ] arg                ligand(s)\n  --flexres arg                      flexible side chains specified by comma \n                                     separated list of chain:resid\n  --flexdist_ligand arg              Ligand to use for flexdist\n  --flexdist arg                     set all side chains within specified \n                                     distance to flexdist_ligand to flexible\n  --flex_limit arg                   Hard limit for the number of flexible \n                                     residues\n  --flex_max arg                     Retain at at most the closest flex_max \n                                     flexible residues\n\nSearch space (required):\n  --center_x arg                     X coordinate of the center\n  --center_y arg                     Y coordinate of the center\n  --center_z arg                     Z coordinate of the center\n  --size_x arg                       size in the X dimension (Angstroms)\n  --size_y arg                       size in the Y dimension (Angstroms)\n  --size_z arg                       size in the Z dimension (Angstroms)\n  --autobox_ligand arg               Ligand to use for autobox. A multi-ligand \n                                     file still only defines a single box.\n  --autobox_add arg                  Amount of buffer space to add to \n                                     auto-generated box (default +4 on all six \n                                     sides)\n  --autobox_extend arg (=1)          Expand the autobox if needed to ensure the\n                                     input conformation of the ligand being \n                                     docked can freely rotate within the box.\n  --no_lig                           no ligand; for sampling\u002Fminimizing \n                                     flexible residues\n\nCovalent docking:\n  --covalent_rec_atom arg            Receptor atom ligand is covalently bound \n                                     to.  Can be specified as \n                                     chain:resnum:atom_name or as x,y,z \n                                     Cartesian coordinates.\n  --covalent_lig_atom_pattern arg    SMARTS expression for ligand atom that \n                                     will covalently bind protein.\n  --covalent_lig_atom_position arg   Optional.  Initial placement of covalently\n                                     bonding ligand atom in x,y,z Cartesian \n                                     coordinates.  If not specified, \n                                     OpenBabel's GetNewBondVector function will\n                                     be used to position ligand.\n  --covalent_fix_lig_atom_position   If covalent_lig_atom_position is \n                                     specified, fix the ligand atom to this \n                                     position as opposed to using this position\n                                     to define the initial structure.\n  --covalent_bond_order arg (=1)     Bond order of covalent bond. Default 1.\n  --covalent_optimize_lig            Optimize the covalent complex of ligand \n                                     and residue using UFF. This will change \n                                     bond angles and lengths of the ligand.\n\nScoring and minimization options:\n  --scoring arg                      specify alternative built-in scoring \n                                     function: ad4_scoring default dkoes_fast \n                                     dkoes_scoring dkoes_scoring_old vina \n                                     vinardo\n  --custom_scoring arg               custom scoring function file\n  --custom_atoms arg                 custom atom type parameters file\n  --score_only                       score provided ligand pose\n  --local_only                       local search only using autobox (you \n                                     probably want to use --minimize)\n  --minimize                         energy minimization\n  --randomize_only                   generate random poses, attempting to avoid\n                                     clashes\n  --num_mc_steps arg                 fixed number of monte carlo steps to take \n                                     in each chain\n  --max_mc_steps arg                 cap on number of monte carlo steps to take\n                                     in each chain\n  --num_mc_saved arg                 number of top poses saved in each monte \n                                     carlo chain\n  --temperature arg                  temperature for metropolis accept \n                                     criterion\n  --minimize_iters arg (=0)          number iterations of steepest descent; \n                                     default scales with rotors and usually \n                                     isn't sufficient for convergence\n  --accurate_line                    use accurate line search\n  --simple_ascent                    use simple gradient ascent\n  --minimize_early_term              Stop minimization before convergence \n                                     conditions are fully met.\n  --minimize_single_full             During docking perform a single full \n                                     minimization instead of a truncated \n                                     pre-evaluate followed by a full.\n  --approximation arg                approximation (linear, spline, or exact) \n                                     to use\n  --factor arg                       approximation factor: higher results in a \n                                     finer-grained approximation\n  --force_cap arg                    max allowed force; lower values more \n                                     gently minimize clashing structures\n  --user_grid arg                    Autodock map file for user grid data based\n                                     calculations\n  --user_grid_lambda arg (=-1)       Scales user_grid and functional scoring\n  --print_terms                      Print all available terms with default \n                                     parameterizations\n  --print_atom_types                 Print all available atom types\n\nConvolutional neural net (CNN) scoring:\n  --cnn_scoring arg (=1)             Amount of CNN scoring: none, rescore \n                                     (default), refinement, metrorescore \n                                     (metropolis+rescore), metrorefine \n                                     (metropolis+refine), all\n  --cnn arg                          built-in model to use, specify \n                                     PREFIX_ensemble to evaluate an ensemble of\n                                     models starting with PREFIX: \n                                     all_default_to_default_1_3_1 \n                                     all_default_to_default_1_3_2 \n                                     all_default_to_default_1_3_3 \n                                     crossdock_default2018 \n                                     crossdock_default2018_1 \n                                     crossdock_default2018_1_3 \n                                     crossdock_default2018_1_3_1 \n                                     crossdock_default2018_1_3_2 \n                                     crossdock_default2018_1_3_3 \n                                     crossdock_default2018_1_3_4 \n                                     crossdock_default2018_2 \n                                     crossdock_default2018_3 \n                                     crossdock_default2018_4 \n                                     crossdock_default2018_KD_1 \n                                     crossdock_default2018_KD_2 \n                                     crossdock_default2018_KD_3 \n                                     crossdock_default2018_KD_4 \n                                     crossdock_default2018_KD_5 default1.0 \n                                     default2017 dense dense_1 dense_1_3 \n                                     dense_1_3_1 dense_1_3_2 dense_1_3_3 \n                                     dense_1_3_4 dense_1_3_PT_KD \n                                     dense_1_3_PT_KD_1 dense_1_3_PT_KD_2 \n                                     dense_1_3_PT_KD_3 dense_1_3_PT_KD_4 \n                                     dense_1_3_PT_KD_def2018 \n                                     dense_1_3_PT_KD_def2018_1 \n                                     dense_1_3_PT_KD_def2018_2 \n                                     dense_1_3_PT_KD_def2018_3 \n                                     dense_1_3_PT_KD_def2018_4 dense_2 dense_3 \n                                     dense_4 fast general_default2018 \n                                     general_default2018_1 \n                                     general_default2018_2 \n                                     general_default2018_3 \n                                     general_default2018_4 \n                                     general_default2018_KD_1 \n                                     general_default2018_KD_2 \n                                     general_default2018_KD_3 \n                                     general_default2018_KD_4 \n                                     general_default2018_KD_5 \n                                     redock_default2018 redock_default2018_1 \n                                     redock_default2018_1_3 \n                                     redock_default2018_1_3_1 \n                                     redock_default2018_1_3_2 \n                                     redock_default2018_1_3_3 \n                                     redock_default2018_1_3_4 \n                                     redock_default2018_2 redock_default2018_3 \n                                     redock_default2018_4 redock_default2018_KD\n                                     _1 redock_default2018_KD_2 \n                                     redock_default2018_KD_3 \n                                     redock_default2018_KD_4 \n                                     redock_default2018_KD_5\n  --cnn_model arg                    torch cnn model file; if not specified a \n                                     default model ensemble will be used\n  --cnn_rotation arg (=0)            evaluate multiple rotations of pose (max \n                                     24)\n  --cnn_mix_emp_force                Merge CNN and empirical minus forces\n  --cnn_mix_emp_energy               Merge CNN and empirical energy\n  --cnn_empirical_weight arg (=1)    Weight for scaling and merging empirical \n                                     force and energy \n  --cnn_center_x arg                 X coordinate of the CNN center\n  --cnn_center_y arg                 Y coordinate of the CNN center\n  --cnn_center_z arg                 Z coordinate of the CNN center\n  --cnn_verbose                      Enable verbose output for CNN debugging\n\nOutput:\n  -o [ --out ] arg                   output file name, format taken from file \n                                     extension\n  --out_flex arg                     output file for flexible receptor residues\n  --log arg                          optionally, write log file\n  --atom_terms arg                   optionally write per-atom interaction term\n                                     values\n  --atom_term_data                   embedded per-atom interaction terms in \n                                     output sd data\n  --pose_sort_order arg (=0)         How to sort docking results: CNNscore \n                                     (default), CNNaffinity, Energy\n  --full_flex_output                 Output entire structure for out_flex, not \n                                     just flexible residues.\n\nMisc (optional):\n  --cpu arg                          the number of CPUs to use (the default is \n                                     to try to detect the number of CPUs or, \n                                     failing that, use 1)\n  --seed arg                         explicit random seed\n  --exhaustiveness arg (=8)          exhaustiveness of the global search \n                                     (roughly proportional to time)\n  --num_modes arg (=9)               maximum number of binding modes to \n                                     generate\n  --min_rmsd_filter arg (=1)         rmsd value used to filter final poses to \n                                     remove redundancy\n  -q [ --quiet ]                     Suppress output messages\n  --addH arg                         automatically add hydrogens in ligands (on\n                                     by default)\n  --stripH arg                       remove polar hydrogens from molecule \n                                     _after_ performing atom typing for \n                                     efficiency (off by default - nonpolar are \n                                     always removed)\n  --device arg (=0)                  GPU device to use\n  --no_gpu                           Disable GPU acceleration, even if \n                                     available.\n\nConfiguration file (optional):\n  --config arg                       the above options can be put here\n\nInformation (optional):\n  --help                             display usage summary\n  --help_hidden                      display usage summary with hidden options\n  --version                          display program version\n```\n\nCNN Scoring\n===========\n\n`--cnn_scoring` determines at what points of the docking procedure that the CNN scoring function is used.\n * `none` - No CNNs used for docking. Uses the specified empirical scoring function throughout.\n * `rescore` (default) - CNN used for reranking of final poses. Least computationally expensive CNN option.\n * `refinement` - CNN used to refine poses after Monte Carlo chains and for final ranking of output poses. 10x slower than `rescore` when using a GPU.\n * `all` - CNN used as the scoring function throughout the whole procedure. Extremely computationally intensive and not recommended.\n\nThe default CNN scoring function is an ensemble of 3 models selected to balance pose prediction performance and runtime: dense_1_3, dense_1_3_PT_KD_3, crossdock_default2018_KD_4.  The GNINA 1.0 default ensemble is still available as `default1.0`.   More information on these various models can be found in the papers listed above.\n\nTraining\n========\n\nScripts for training pytorch GNINA models and pretrained models can found at [https:\u002F\u002Fgithub.com\u002FRMeli\u002Fgnina-torch](https:\u002F\u002Fgithub.com\u002FRMeli\u002Fgnina-torch).\nExample code for converting a pytorch model into a gnina usable model file is shown below.  The metadata should provide information about the input grid resolution, dimension and atom typing.  If not provided, defaults will be used.\n\n```python\n    d = {\n        'resolution': 0.5,\n        'dimension' : 23.5,\n        'recmap' : '''AliphaticCarbonXSHydrophobe \n    AliphaticCarbonXSNonHydrophobe \n    AromaticCarbonXSHydrophobe \n    AromaticCarbonXSNonHydrophobe\n    Bromine Iodine Chlorine Fluorine\n    Nitrogen NitrogenXSAcceptor \n    NitrogenXSDonor NitrogenXSDonorAcceptor\n    Oxygen OxygenXSAcceptor \n    OxygenXSDonorAcceptor OxygenXSDonor\n    Sulfur SulfurAcceptor\n    Phosphorus \n    Calcium\n    Zinc\n    GenericMetal Boron Manganese Magnesium Iron''',\n        \n    'ligmap': '''AliphaticCarbonXSHydrophobe \n    AliphaticCarbonXSNonHydrophobe \n    AromaticCarbonXSHydrophobe \n    AromaticCarbonXSNonHydrophobe\n    Bromine Iodine\n    Chlorine\n    Fluorine\n    Nitrogen NitrogenXSAcceptor \n    NitrogenXSDonor NitrogenXSDonorAcceptor\n    Oxygen OxygenXSAcceptor \n    OxygenXSDonorAcceptor OxygenXSDonor\n    Sulfur SulfurAcceptor\n    Phosphorus\n    GenericMetal Boron Manganese Magnesium Zinc Calcium Iron'''\n    }\n    \n    extra = {'metadata':json.dumps(d)}\n    z = torch.zeros((1,28,48,48,48))\n\n    script = torch.jit.trace(model, z)\n    script.save('gnina_model.pt',_extra_files=extra)    \n```\n\nLegacy scripts for training Caffe models can be found at [https:\u002F\u002Fgithub.com\u002Fgnina\u002Fscripts](https:\u002F\u002Fgithub.com\u002Fgnina\u002Fscripts)\nand sample models at [https:\u002F\u002Fgithub.com\u002Fgnina\u002Fmodels](https:\u002F\u002Fgithub.com\u002Fgnina\u002Fmodels).\n\n\nThe DUD-E docked poses used in the original paper can be found [here](http:\u002F\u002Fbits.csb.pitt.edu\u002Ffiles\u002Fdocked_dude.tar), but we [do not recommend](https:\u002F\u002Fjournals.plos.org\u002Fplosone\u002Farticle?id=10.1371\u002Fjournal.pone.0220113) training virtual screening models on DUD-E. The CrossDocked2020 set is [here](https:\u002F\u002Fgithub.com\u002Fgnina\u002Fmodels\u002Ftree\u002Fmaster\u002Fdata\u002FCrossDocked2020).\n\nLicense\n=======\n\ngnina is dual licensed under GPL and Apache.  The GPL license is necessitated by the use of OpenBabel (which is GPL licensed).  In order to use gnina under the Apache license only, all references to OpenBabel must be removed from the source code.\n","[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fgnina\u002Fgnina\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg?token=kOC9GUKEGa)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fgnina\u002Fgnina)\n[![Github CI](https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Factions\u002Fworkflows\u002FCI.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Factions)\n\ngnina（发音为“NĪ-nə”）是一款分子对接程序，集成了使用卷积神经网络对配体进行打分和优化的功能。它是[smina](http:\u002F\u002Fsmina.sf.net\u002F)的分支项目，而smina又是[AutoDock Vina](http0:\u002F\u002Fvina.scripps.edu\u002F)的分支。\n\n帮助\n====\n \n请[加入我们的Slack团队](https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fgninacnn\u002Fshared_invite\u002FenQtNTY3ODk2ODk5OTU5LTkzMjY1ZTE3YjJlZmIxOWI2OTU3Y2RlMTIyYmM2YmFmYTU1NTk5ZTBmMjUwMGRhYzk1ZjY5N2E4Y2I5YWU5YWI)。一个展示如何使用gnina的Colab笔记本示例可在\u003Ca href=\"https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1QYo5QLUE80N_G28PlpYs6OKGddhhd931?usp=sharing\">此处\u003C\u002Fa>找到。我们还举办了一场关于使用gnina的研讨会（[视频](https0:\u002F\u002Fwww.youtube.com\u002Fwatch?v=MG3Srzi5kZ0)、[幻灯片](https0:\u002F\u002Fbits.csb.pitt.edu\u002Frsc_workshop2021\u002Fdocking_with_gnina.slides.html#\u002F))。\n\n引用\n========\n如果您觉得gnina有用，请引用我们的论文：\n\n**GNINA 1.3：基于深度学习的分子对接的下一个版本**（主要应用引用）  \nA McNutt, Y Li, R Meli, R Aggarwal, DR Koes. *J. Cheminformatics*, 2025  \n[链接](https0:\u002F\u002Fjcheminf.biomedcentral.com\u002Farticles\u002F10.1186\u002Fs13321-025-00973-x) [PubMed](https0:\u002F\u002Fpmc.ncbi.nlm.nih.gov\u002Farticles\u002FPMC11874439\u002F)\n\n**GNINA 1.0：基于深度学习的分子对接**（主要应用引用，旧版本）  \nA McNutt, P Francoeur, R Aggarwal, T Masuda, R Meli, M Ragoza, J Sunseri, DR Koes. *J. Cheminformatics*, 2021  \n[链接](https0:\u002F\u002Fjcheminf.biomedcentral.com\u002Farticles\u002F10.1186\u002Fs13321-021-00522-2) [PubMed](https0:\u002F\u002Fwww.ncbi.nlm.nih.gov\u002Fpmc\u002Farticles\u002FPMC8191141\u002F) [ChemRxiv](https0:\u002F\u002Fchemrxiv.org\u002Farticles\u002Fpreprint\u002FGNINA_1_0_Molecular_Docking_with_Deep_Learning\u002F13578140)\n\n**基于卷积神经网络的蛋白质-配体打分**（主要方法引用）  \nM Ragoza, J Hochuli, E Idrobo, J Sunseri, DR Koes. *J. Chem. Inf. Model*, 2017  \n[链接](http0:\u002F\u002Fpubs.acs.org\u002Fdoi\u002Ffull\u002F10.1021\u002Facs.jcim.6b00740) [PubMed](https0:\u002F\u002Fwww.ncbi.nlm.nih.gov\u002Fpmc\u002Farticles\u002FPMC5479431\u002F) [arXiv](https0:\u002F\u002Farxiv.org\u002Fabs\u002F1612.02751)\n\n**使用Gnina 1.0进行虚拟筛选**（虚拟筛选引用）\nJ Sunseri, DR Koes D. *Molecules*, 2021\n[链接](https0:\u002F\u002Fwww.mdpi.com\u002F1420-3049\u002F26\u002F23\u002F7369) [预印本](https0:\u002F\u002Fwww.preprints.org\u002Fmanuscript\u002F202111.0329\u002Fv1)\n\n**CACHE挑战#1：仅用GNINA对接就足够了**（示例应用）\nI Dunn, S Pirhadi, Y Wang, S Ravindran, C Concepcion, DR Koes. *J. Chem. Inf. Model*, 2024  \n[链接](https0:\u002F\u002Fpubs.acs.org\u002Fdoi\u002Ffull\u002F10.1021\u002Facs.jcim.4c01429) [PubMed](https0:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F39654129\u002F)\n\n**三维卷积神经网络与交叉对接数据集用于基于结构的药物设计**（数据集引用）\nPG Francoeur, T Masuda, J Sunseri, A Jia, RB Iovanisci, I Snyder, DR Koes. *J. Chem. Inf. Model*, 2020  \n[链接](https0:\u002F\u002Fpubs.acs.org\u002Fdoi\u002Fabs\u002F10.1021\u002Facs.jcim.0c00411) [PubMed](https0:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F32865404\u002F) [Chemrxiv](https0:\u002F\u002Fchemrxiv.org\u002Farticles\u002Fpreprint\u002F3D_Convolutional_Neural_Networks_and_a_CrossDocked_Dataset_for_Structure-Based_Drug_Design\u002F11833323\u002F1)\n\n**基于原子网格的卷积神经网络优化配体构象**  \nM Ragoza, L Turner, DR Koes. *2017年NIPS分子与材料机器学习研讨会*，2017年  \n[arXiv](https0:\u002F\u002Farxiv.org\u002Fabs\u002F1710.07400)\n\n**可视化卷积神经网络的蛋白质-配体打分**  \nJ Hochuli, A Helbling, T Skaist, M Ragoza, DR Koes.  *Journal of Molecular Graphics and Modelling*, 2018  \n[链接](https0:\u002F\u002Fwww.sciencedirect.com\u002Fscience\u002Farticle\u002Fpii\u002FS1093326318301670) [PubMed](https0:\u002F\u002Fwww.ncbi.nlm.nih.gov\u002Fpmc\u002Farticles\u002FPMC6343664\u002F) [arXiv](https0:\u002F\u002Farxiv.org\u002Fabs\u002F1803.02398)\n\n**在D3R 2017社区挑战中使用卷积神经网络打分与最小化**  \nJ Sunseri, JE King, PG Francoeur, DR Koes.  *Journal of computer-aided molecular design*, 2018  \n[链接](https0:\u002F\u002Flink.springer.com\u002Farticle\u002F10.1007\u002Fs10822-018-0133-y) [PubMed](https0:\u002F\u002Fwww.ncbi.nlm.nih.gov\u002Fpubmed\u002F29992528)\n\n\n\nDocker\n======\n\n预先构建的Docker镜像可在[这里](https0:\u002F\u002Fhub.docker.com\u002Fu\u002Fgnina)获取，Dockerfile则位于[这里](https0:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Ftree\u002Fmaster\u002Fdocker)。\n\n安装\n============\n\n我们建议您使用[预编译的二进制文件](https0:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Freleases\u002Flatest)，除非您在Linux上具有丰富的软件编译经验；在这种情况下，从源代码编译*可能*会生成更适合您系统的可执行文件。预编译的二进制文件可以在WSL中使用。\n\n### Ubuntu 22.04\n```\napt-get  install build-essential git cmake wget libboost-all-dev libeigen3-dev libgoogle-glog-dev libprotobuf-dev protobuf-compiler libhdf5-dev libatlas-base-dev python3-dev librdkit-dev python3-numpy python3-pip python3-pytest libjsoncpp-dev\n\n```\n\n按照[NVIDIA的说明](http0:\u002F\u002Fdocs.nvidia.com\u002Fcuda\u002Fcuda-installation-guide-linux\u002F#axzz4TWipdwX1)安装最新版本的CUDA（需≥12.0）。**请确保`nvcc`已在您的PATH中。**\n\n\n#\n安装OpenBabel3。请注意，3.1.1及更早版本在键级数确定方面存在错误。\n```\ngit clone https0:\u002F\u002Fgithub.com\u002Fdkoes\u002Fopenbabel.git\ncd openbabel\nmkdir build\ncd build\ncmake -DWITH_MAEPARSER=OFF -DWITH_COORDGEN=OFF -DPYTHON_BINDINGS=ON -DRUN_SWIG=ON ..\nmake\nmake install\n```\n\n#\n安装gnina\n```\ngit clone https0:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina.git\ncd gnina\nmkdir build\ncd build\ncmake ..  # 使用PyTorch 2.7.0和CUDA 12.9时，可能需要指定-DUSE_SYSTEM_NVTX=1\nmake\nmake install\n```\n\n### [WSL2 Ubuntu 22.04](https0:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Fissues\u002F247)\n```bash\nsudo apt-get remove nvidia-cuda-toolkit\nwget https0:\u002F\u002Fdeveloper.download.nvidia.com\u002Fcompute\u002Fcuda\u002F12.4.0\u002Flocal_installers\u002Fcuda_12.4.0_550.54.14_linux.run\nchmod 700 cuda_12.4.0_550.54.14_linux.run\nsudo sh cuda_12.4.0_550.54.14_linux.run\nwget https0:\u002F\u002Fdeveloper.download.nvidia.com\u002Fcompute\u002Fcudnn\u002F9.0.0\u002Flocal_installers\u002Fcudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb\nsudo dpkg -i cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb\nsudo cp \u002Fvar\u002Fcudnn-local-repo-ubuntu2204-9.0.0\u002Fcudnn-*-keyring.gpg \u002Fusr\u002Fshare\u002Fkeyrings\u002F\nsudo apt-get update\nsudo apt-get -y install cudnn-cuda-12\napt-get install build-essential git cmake wget libboost-all-dev libeigen3-dev libgoogle-glog-dev libprotobuf-dev protobuf-compiler libhdf5-dev libatlas-base-dev python3-dev librdkit-dev python3-numpy python3-pip python3-pytest libjsoncpp-dev\n\ngit clone https0:\u002F\u002Fgithub.com\u002Fopenbabel\u002Fopenbabel.git\ncd openbabel\nmkdir build\ncd build\ncmake -DWITH_MAEPARSER=OFF -DWITH_COORDGEN=OFF -DPYTHON_BINDINGS=ON -DRUN_SWIG=ON ..\nmake -j8\nsudo make install\n\ngit clone https0:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina.git\ncd gnina\nmkdir build\ncd build\ncmake ..\nmake -j8\nsudo make install\n```\n\n#\n如果您正在为配备不同 GPU 的系统构建（例如在集群环境中），请使用 `-DCMAKE_CUDA_ARCHITECTURES=all` 进行配置。  \n请注意，如果尚未安装 [libmolgrid](https:\u002F\u002Fgithub.com\u002Fgnina\u002Flibmolgrid) 和 [torch](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fpytorch)，CMake 构建过程将自动下载并安装它们。\n\n\n`gnina\u002Fscripts` 中提供的脚本具有额外的 Python 依赖项，必须先进行安装。 \n\n用法\n=====\n\n将配体 `lig.sdf` 模拟对接到由另一配体 `orig.sdf` 定义的受体蛋白 `rec.pdb` 上的结合位点：\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf -o docked.sdf.gz\n```\n\n对距离 `orig.sdf` 3.5 Å 内的柔性侧链残基进行柔性对接（通常不推荐，除非已知口袋区域高度灵活）：\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --flexdist_ligand orig.sdf --flexdist 3.5 -o flex_docked.sdf.gz\n```\n\n进行全蛋白对接：\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand rec.pdb -o whole_docked.sdf.gz --exhaustiveness 64\n```\n\n在对接精修步骤中利用默认集成 CNN 进行能量最小化（速度比默认重评分选项慢 10 倍）：\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn_scoring refinement -o cnn_refined.sdf.gz\n```\n\n在对接的每一步都使用默认集成 CNN（速度比默认重评分选项慢 1000 倍）：\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn_scoring all -o cnn_all.sdf.gz\n```\n\n使用 [Vinardo](https:\u002F\u002Fjournals.plos.org\u002Fplosone\u002Farticle?id=10.1371\u002Fjournal.pone.0155183) 打分函数进行所有经验打分：\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --scoring vinardo --cnn_scoring none -o vinardo_docked.sdf.gz\n```\n\n在对接过程中使用不同的 CNN（可参阅帮助信息以获取可用选项）：\n```\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn dense -o dense_docked.sdf.gz\n```\n\n对已置于结合位点的配体 `ligs.sdf` 进行能量最小化和打分：\n```\ngnina -r rec.pdb -l ligs.sdf --minimize -o minimized.sdf.gz\n```\n\n将吡唑共价对接到受体蛋白上的特定铁原子上，使吡唑中的氮原子与铁原子形成共价键：\n```\ngnina  -r rec.pdb.gz -l conformer.sdf.gz --autobox_ligand bindingsite.sdf.gz --covalent_rec_atom A:601:FE --covalent_lig_atom_pattern '[$(n1nccc1)]' -o output.sdf.gz \n```\n\n与上述相同，但手动指定共价结合的配体原子位置（而非使用 OpenBabel 的绑定启发式方法），并对配体\u002F残基复合物进行 UFF 优化：\n```\ngnina  -r rec.pdb.gz -l conformer.sdf.gz --autobox_ligand bindingsite.sdf.gz --covalent_lig_atom_position -11.796,31.887,72.682  --covalent_optimize_lig  --covalent_rec_atom A:601:FE --covalent_lig_atom_pattern '[$(n1nccc1)]' -o output.sdf.gz \n```\n\n所有选项：\n```\n输入：\n  -r [ --receptor ] arg              受体的刚性部分\n  --flex arg                         柔性侧链（如有，PDBQT 格式）\n  -l [ --ligand ] arg                配体\n  --flexres arg                      用逗号分隔的链:残基编号列表指定柔性侧链\n  --flexdist_ligand arg              用于确定柔性距离的参考配体\n  --flexdist arg                     将指定距离内的所有侧链设为柔性\n  --flex_limit arg                   柔性残基数量上限\n  --flex_max arg                     仅保留距离最近的 flex_max 个柔性残基\n\n搜索空间（必填）：\n  --center_x arg                     中心点 X 坐标\n  --center_y arg                     中心点 Y 坐标\n  --center_z arg                     中心点 Z 坐标\n  --size_x arg                       X 方向尺寸（Å）\n  --size_y arg                       Y 方向尺寸（Å）\n  --size_z arg                       Z 方向尺寸（Å）\n  --autobox_ligand arg               用于自动生成盒子的参考配体。多配体文件仍只定义一个盒子。\n  --autobox_add arg                  自动生成盒子时增加的缓冲空间（默认在六个方向各增加 4 Å）\n  --autobox_extend arg (=1)          如有必要，扩展自动生成的盒子，以确保待对接配体的初始构象可在盒内自由旋转。\n  --no_lig                           不包含配体；用于采样或优化柔性侧链\n\n共价对接：\n  --covalent_rec_atom arg            配体共价结合的受体原子。可指定为链:残基编号:原子名称，或 x,y,z 直角坐标。\n  --covalent_lig_atom_pattern arg    配体中将与蛋白质共价结合的原子的 SMARTS 表达式。\n  --covalent_lig_atom_position arg   可选。共价结合配体原子的初始 x,y,z 直角坐标位置。若未指定，则使用 OpenBabel 的 GetNewBondVector 函数来定位配体。\n  --covalent_fix_lig_atom_position   若指定了 covalent_lig_atom_position，则固定配体原子在此位置，而不将其作为初始结构的定义。\n  --covalent_bond_order arg (=1)     共价键的键级。默认为 1。\n  --covalent_optimize_lig            使用 UFF 对配体和残基的共价复合物进行优化。这会改变配体的键角和键长。\n\n评分与最小化选项：\n  --scoring arg                      指定替代的内置评分函数：ad4_scoring 默认 dkoes_fast dkoes_scoring dkoes_scoring_old vina vinardo\n  --custom_scoring arg               自定义评分函数文件\n  --custom_atoms arg                 自定义原子类型参数文件\n  --score_only                       仅对提供的配体构象进行评分\n  --local_only                       仅使用 autobox 进行局部搜索（你可能更希望使用 --minimize）\n  --minimize                         能量最小化\n  --randomize_only                   生成随机构象，尝试避免分子间碰撞\n  --num_mc_steps arg                 每条链要执行的固定蒙特卡洛步数\n  --max_mc_steps arg                 每条链允许执行的蒙特卡洛步数上限\n  --num_mc_saved arg                 每条蒙特卡洛链保存的最优构象数量\n  --temperature arg                  用于 Metropolis 接受准则的温度\n  --minimize_iters arg (=0)          最速下降法的迭代次数；默认值会根据旋转键数量调整，通常不足以达到收敛\n  --accurate_line                    使用精确的一维搜索\n  --simple_ascent                    使用简单的梯度上升法\n  --minimize_early_term              在完全满足收敛条件之前停止最小化\n  --minimize_single_full             在对接过程中执行一次完整的最小化，而不是先进行截断的预评估再进行完整最小化\n  --approximation arg                使用的近似方法（线性、样条或精确）\n  --factor arg                       近似因子：值越高，近似越精细\n  --force_cap arg                    允许的最大力；较小的值会更温和地最小化存在碰撞的结构\n  --user_grid arg                    基于用户网格数据计算的 Autodock 地图文件\n  --user_grid_lambda arg (=-1)       缩放 user_grid 和功能评分\n  --print_terms                      打印所有可用项及其默认参数化\n  --print_atom_types                 打印所有可用的原子类型\n\n卷积神经网络（CNN）评分：\n  --cnn_scoring 参数 (=1)             CNN评分的强度：无、重新评分 \n                                     （默认）、精炼、metrorescore \n                                     （梅特罗波利斯+重新评分）、metrorefine \n                                     （梅特罗波利斯+精炼）、全部\n  --cnn 参数                          使用的内置模型，指定 \n                                     PREFIX_ensemble 来评估以 PREFIX 开头的模型集合：\n                                     all_default_to_default_1_3_1 \n                                     all_default_to_default_1_3_2 \n                                     all_default_to_default_1_3_3 \n                                     crossdock_default2018 \n                                     crossdock_default2018_1 \n                                     crossdock_default2018_1_3 \n                                     crossdock_default2018_1_3_1 \n                                     crossdock_default2018_1_3_2 \n                                     crossdock_default2018_1_3_3 \n                                     crossdock_default2018_1_3_4 \n                                     crossdock_default2018_2 \n                                     crossdock_default2018_3 \n                                     crossdock_default2018_4 \n                                     crossdock_default2018_KD_1 \n                                     crossdock_default2018_KD_2 \n                                     crossdock_default2018_KD_3 \n                                     crossdock_default2018_KD_4 \n                                     crossdock_default2018_KD_5 default1.0 \n                                     default2017 dense dense_1 dense_1_3 \n                                     dense_1_3_1 dense_1_3_2 dense_1_3_3 \n                                     dense_1_3_4 dense_1_3_PT_KD \n                                     dense_1_3_PT_KD_1 dense_1_3_PT_KD_2 \n                                     dense_1_3_PT_KD_3 dense_1_3_PT_KD_4 \n                                     dense_1_3_PT_KD_def2018 \n                                     dense_1_3_PT_KD_def2018_1 \n                                     dense_1_3_PT_KD_def2018_2 \n                                     dense_1_3_PT_KD_def2018_3 \n                                     dense_1_3_PT_KD_def2018_4 dense_2 dense_3 \n                                     dense_4 fast general_default2018 \n                                     general_default2018_1 \n                                     general_default2018_2 \n                                     general_default2018_3 \n                                     general_default2018_4 \n                                     general_default2018_KD_1 \n                                     general_default2018_KD_2 \n                                     general_default2018_KD_3 \n                                     general_default2018_KD_4 \n                                     general_default2018_KD_5 \n                                     redock_default2018 redock_default2018_1 \n                                     redock_default2018_1_3 \n                                     redock_default2018_1_3_1 \n                                     redock_default2018_1_3_2 \n                                     redock_default2018_1_3_3 \n                                     redock_default2018_1_3_4 \n                                     redock_default2018_2 redock_default2018_3 \n                                     redock_default2018_4 redock_default2018_KD\n                                     _1 redock_default2018_KD_2 \n                                     redock_default2018_KD_3 \n                                     redock_default2018_KD_4 \n                                     redock_default2018_KD_5\n  --cnn_model 参数                    torch CNN 模型文件；若未指定，则将使用默认模型集合\n  --cnn_rotation 参数 (=0)            评估构象的多个旋转（最多 24 种）\n  --cnn_mix_emp_force                 合并 CNN 和经验式负力\n  --cnn_mix_emp_energy                合并 CNN 和经验式能量\n  --cnn_empirical_weight 参数 (=1)    用于缩放和合并经验式力与能量的权重\n  --cnn_center_x 参数                 CNN 中心的 X 坐标\n  --cnn_center_y 参数                 CNN 中心的 Y 坐标\n  --cnn_center_z 参数                 CNN 中心的 Z 坐标\n  --cnn_verbose                       启用 CNN 调试的详细输出\n\n输出：\n  -o [ --out ] 参数                   输出文件名，格式由文件扩展名决定\n  --out_flex 参数                     柔性受体残基的输出文件\n  --log 参数                          可选地写入日志文件\n  --atom_terms 参数                   可选地写出每个原子的相互作用项值\n  --atom_term_data                    将每个原子的相互作用项嵌入到输出 SD 数据中\n  --pose_sort_order 参数 (=0)         如何对对接结果排序：CNNscore \n                                     （默认）、CNNaffinity、Energy\n  --full_flex_output                  对 out_flex 输出整个结构，而不仅仅是柔性残基。\n\n其他（可选）：\n  --cpu 参数                          使用的 CPU 数量（默认尝试检测 CPU 数量，若失败则使用 1 个）\n  --seed 参数                         显式随机种子\n  --exhaustiveness 参数 (=8)          全局搜索的彻底程度（大致与时间成正比）\n  --num_modes 参数 (=9)               生成的最大结合模式数量\n  --min_rmsd_filter 参数 (=1)         用于过滤最终构象以去除冗余的 RMSD 值\n  -q [ --quiet ]                      抑制输出信息\n  --addH 参数                         自动在配体中添加氢原子（默认开启）\n  --stripH 参数                       在进行原子类型化之后，为提高效率而移除分子中的极性氢原子（默认关闭——非极性氢始终会被移除）\n  --device 参数 (=0)                  使用的 GPU 设备\n  --no_gpu                             禁用 GPU 加速，即使可用也不使用。\n\n配置文件（可选）：\n  --config 参数                       上述选项可以放入此处\n\n信息（可选）：\n  --help                             显示使用摘要\n  --help_hidden                      显示包含隐藏选项的使用摘要\n  --version                          显示程序版本\n```\n\nCNN 打分\n===========\n\n`--cnn_scoring` 决定了在对接过程中何时使用 CNN 打分函数。\n * `none` - 对接过程中不使用任何 CNN。全程使用指定的经验打分函数。\n * `rescore`（默认）- 在最终构象的重新打分时使用 CNN。这是计算开销最低的 CNN 选项。\n * `refinement` - 在蒙特卡洛链之后以及对输出构象进行最终打分时使用 CNN 来优化构象。使用 GPU 时，其速度比 `rescore` 慢约 10 倍。\n * `all` - 在整个对接过程中始终使用 CNN 作为打分函数。这种模式计算量极大，不推荐使用。\n\n默认的 CNN 打分函数是由 3 个模型组成的集成模型，这些模型在构象预测性能和运行时间之间取得了平衡：dense_1_3、dense_1_3_PT_KD_3、crossdock_default2018_KD_4。GNINA 1.0 的默认集成模型仍然可用，名为 `default1.0`。有关这些不同模型的更多信息，请参阅上述论文。\n\n训练\n========\n\n用于训练 PyTorch GNINA 模型及预训练模型的脚本可在 [https:\u002F\u002Fgithub.com\u002FRMeli\u002Fgnina-torch](https:\u002F\u002Fgithub.com\u002FRMeli\u002Fgnina-torch) 找到。\n下面展示了将 PyTorch 模型转换为 GNINA 可用模型文件的示例代码。元数据应提供输入网格分辨率、尺寸和原子类型的信息。如果未提供，则将使用默认值。\n\n```python\n    d = {\n        'resolution': 0.5,\n        'dimension' : 23.5,\n        'recmap' : '''AliphaticCarbonXSHydrophobe \n    AliphaticCarbonXSNonHydrophobe \n    AromaticCarbonXSHydrophobe \n    AromaticCarbonXSNonHydrophobe\n    Bromine Iodine Chlorine Fluorine\n    Nitrogen NitrogenXSAcceptor \n    NitrogenXSDonor NitrogenXSDonorAcceptor\n    Oxygen OxygenXSAcceptor \n    OxygenXSDonorAcceptor OxygenXSDonor\n    Sulfur SulfurAcceptor\n    Phosphorus \n    Calcium\n    Zinc\n    GenericMetal Boron Manganese Magnesium Iron''',\n        \n    'ligmap': '''AliphaticCarbonXSHydrophobe \n    AliphaticCarbonXSNonHydrophobe \n    AromaticCarbonXSHydrophobe \n    AromaticCarbonXSNonHydrophobe\n    Bromine Iodine\n    Chlorine\n    Fluorine\n    Nitrogen NitrogenXSAcceptor \n    NitrogenXSDonor NitrogenXSDonorAcceptor\n    Oxygen OxygenXSAcceptor \n    OxygenXSDonorAcceptor OxygenXSDonor\n    Sulfur SulfurAcceptor\n    Phosphorus\n    GenericMetal Boron Manganese Magnesium Zinc Calcium Iron'''\n    }\n    \n    extra = {'metadata':json.dumps(d)}\n    z = torch.zeros((1,28,48,48,48))\n\n    script = torch.jit.trace(model, z)\n    script.save('gnina_model.pt',_extra_files=extra)    \n```\n\n用于训练 Caffe 模型的旧版脚本可在 [https:\u002F\u002Fgithub.com\u002Fgnina\u002Fscripts](https:\u002F\u002Fgithub.com\u002Fgnina\u002Fscripts) 找到，示例模型则可在 [https:\u002F\u002Fgithub.com\u002Fgnina\u002Fmodels](https:\u002F\u002Fgithub.com\u002Fgnina\u002Fmodels) 查看。\n\n\n原始论文中使用的 DUD-E 对接构象可在此处找到 [http:\u002F\u002Fbits.csb.pitt.edu\u002Ffiles\u002Fdocked_dude.tar]，但我们[不建议](https:\u002F\u002Fjournals.plos.org\u002Fplosone\u002Farticle?id=10.1371\u002Fjournal.pone.0220113)使用 DUD-E 数据来训练虚拟筛选模型。CrossDocked2020 数据集可在此处找到 [https:\u002F\u002Fgithub.com\u002Fgnina\u002Fmodels\u002Ftree\u002Fmaster\u002Fdata\u002FCrossDocked2020]。\n\n许可证\n=======\n\ngnina 同时采用 GPL 和 Apache 许可证双重授权。GPL 许可证是因为使用了 OpenBabel（该软件采用 GPL 许可证）。若仅希望以 Apache 许可证使用 gnina，则必须从源代码中移除所有与 OpenBabel 相关的引用。","# gnina 快速上手指南\n\ngnina 是一款集成卷积神经网络（CNN）进行打分和优化的分子对接程序。它是 AutoDock Vina 和 smina 的分支，专为利用深度学习提升药物虚拟筛选精度而设计。\n\n## 1. 环境准备\n\n### 系统要求\n- **操作系统**: Linux (推荐 Ubuntu 22.04) 或 WSL2 (Windows Subsystem for Linux)。\n- **GPU**: NVIDIA 显卡（用于加速 CNN 计算）。\n- **CUDA**: 版本需 >= 12.0。\n- **编译器**: GCC, CMake, Git。\n\n### 前置依赖安装 (Ubuntu 22.04)\n首先安装基础开发库和科学计算依赖：\n\n```bash\nsudo apt-get update\nsudo apt-get install build-essential git cmake wget libboost-all-dev libeigen3-dev libgoogle-glog-dev libprotobuf-dev protobuf-compiler libhdf5-dev libatlas-base-dev python3-dev librdkit-dev python3-numpy python3-pip python3-pytest libjsoncpp-dev\n```\n\n**重要提示**：\n请参照 [NVIDIA 官方文档](http:\u002F\u002Fdocs.nvidia.com\u002Fcuda\u002Fcuda-installation-guide-linux\u002F) 安装最新版的 CUDA Toolkit (>= 12.0)。安装完成后，请确保 `nvcc` 命令已在您的 `PATH` 环境变量中。\n\n## 2. 安装步骤\n\ngnina 依赖特定版本的 OpenBabel（需从源码编译以修复旧版本的键序判断错误）以及自身的源码编译。\n\n### 第一步：编译安装 OpenBabel 3\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fdkoes\u002Fopenbabel.git\ncd openbabel\nmkdir build\ncd build\ncmake -DWITH_MAEPARSER=OFF -DWITH_COORDGEN=OFF -DPYTHON_BINDINGS=ON -DRUN_SWIG=ON ..\nmake -j$(nproc)\nsudo make install\nsudo ldconfig\n```\n\n### 第二步：编译安装 gnina\n返回上级目录或新建工作区，克隆 gnina 源码并编译：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina.git\ncd gnina\nmkdir build\ncd build\n# 若使用 PyTorch 2.7.0+ 和 CUDA 12.9，可能需要添加 -DUSE_SYSTEM_NVTX=1\ncmake .. \nmake -j$(nproc)\nsudo make install\n```\n\n> **注意**：构建过程中会自动下载并安装 `libmolgrid` 和 `torch` 依赖。如果您在集群环境中针对不同型号的 GPU 构建，建议在 cmake 阶段添加 `-DCMAKE_CUDA_ARCHITECTURES=all` 参数。\n\n### 替代方案：Docker\n如果您不希望配置本地环境，可以直接使用预构建的 Docker 镜像：\n```bash\ndocker pull gnina\u002Fgnina:latest\n```\n\n## 3. 基本使用\n\n以下示例展示如何将配体 (`lig.sdf`) 对接到受体 (`rec.pdb`) 上，结合位点由参考配体 (`orig.sdf`) 自动定义。\n\n### 标准对接\n使用默认设置进行对接，输出结果为压缩的 SDF 文件：\n\n```bash\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf -o docked.sdf.gz\n```\n\n### 常用场景示例\n\n**1. 柔性侧链对接**\n对距离参考配体 3.5 埃以内的受体侧链进行柔性处理（仅在已知结合口袋高度柔性时推荐）：\n```bash\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --flexdist_ligand orig.sdf --flexdist 3.5 -o flex_docked.sdf.gz\n```\n\n**2. 全蛋白对接**\n对整个蛋白质表面进行盲对接（需增加搜索穷尽度）：\n```bash\ngnina -r rec.pdb -l lig.sdf --autobox_ligand rec.pdb -o whole_docked.sdf.gz --exhaustiveness 64\n```\n\n**3. 使用 CNN 进行精细化优化**\n在对接的 refinement 阶段使用默认的集成 CNN 模型进行能量最小化（速度比默认重打分慢约 10 倍，但精度更高）：\n```bash\ngnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn_scoring refinement -o cnn_refined.sdf.gz\n```\n\n**4. 仅最小化和打分**\n如果配体已经位于结合位点附近，仅需进行构象优化和打分：\n```bash\ngnina -r rec.pdb -l ligs.sdf --minimize -o minimized.sdf.gz\n```\n\n### 关键参数说明\n- `-r`: 受体文件 (PDB\u002FPDBQT)。\n- `-l`: 配体文件 (SDF\u002FPDBQT)。\n- `--autobox_ligand`: 用于自动定义对接盒子中心的参考配体。\n- `--cnn_scoring`: 指定 CNN 打分模式 (`none`, `rescore`, `refinement`, `all`)。\n- `-o`: 输出文件路径。","某生物医药公司的计算化学团队正致力于从百万级化合物库中筛选出能高效抑制新型病毒蛋白酶的先导药物，时间紧迫且对结合模式预测精度要求极高。\n\n### 没有 gnina 时\n- **评分函数局限**：依赖传统经验性评分函数（如 Vina 默认算法），难以准确捕捉复杂的蛋白质 - 配体非线性相互作用，导致大量假阳性结果。\n- **姿态预测偏差**：在柔性较大的结合口袋中，生成的配体结合姿态往往偏离真实晶体结构，后续需要人工花费数天时间逐一校验和修正。\n- **筛选效率低下**：由于准确率不足，必须扩大初筛范围并增加重复实验次数，严重拖慢了从虚拟筛选到湿实验验证的整体流程。\n- **特征利用不足**：无法有效利用三维空间中的原子网格特征，忽略了局部化学环境对结合亲和力的关键影响。\n\n### 使用 gnina 后\n- **深度学习赋能**：利用集成卷积神经网络（CNN）的评分模型，显著提升了结合亲和力预测的相关性，大幅降低了假阳性率。\n- **姿态精准优化**：通过 CNN 驱动的配体姿态优化功能，自动将分子调整至更接近真实结合构象的位置，减少了 80% 的人工干预需求。\n- **流程加速提效**：更高的单次筛选准确度使得团队能缩小候选化合物范围，快速锁定高潜力分子进入合成与测试阶段，研发周期缩短数周。\n- **三维特征洞察**：充分挖掘三维原子网格数据，敏锐识别传统方法易漏掉的疏水作用及氢键网络细节，提升了命中质量。\n\ngnina 通过将深度学习深度融入分子对接流程，成功将药物发现中“猜得准”的难题转化为可自动化执行的高精度计算任务。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgnina_gnina_ae7057aa.png","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fgnina_6cb35907.png","",null,"https:\u002F\u002Fgithub.com\u002Fgnina",[81,85,89,93,97,101,105],{"name":82,"color":83,"percentage":84},"C++","#f34b7d",86.7,{"name":86,"color":87,"percentage":88},"Python","#3572A5",7.6,{"name":90,"color":91,"percentage":92},"Cuda","#3A4E3A",2.2,{"name":94,"color":95,"percentage":96},"C","#555555",1.5,{"name":98,"color":99,"percentage":100},"CMake","#DA3434",1.3,{"name":102,"color":103,"percentage":104},"Jupyter Notebook","#DA5B0B",0.4,{"name":106,"color":107,"percentage":108},"Dockerfile","#384d54",0.3,890,194,"2026-04-11T08:42:16","Apache-2.0",4,"Linux, Windows (via WSL2)","必需 NVIDIA GPU，需安装 CUDA >= 12.0 (WSL2 示例使用 12.4)，具体显存大小未说明","未说明",{"notes":118,"python":119,"dependencies":120},"该工具主要推荐在 Ubuntu 22.04 上运行。Windows 用户需使用 WSL2。官方强烈建议使用预编译二进制文件，除非用户有丰富的 Linux 源码编译经验。构建时会自动下载并安装 PyTorch 和 libmolgrid。OpenBabel 需要从特定的 GitHub 仓库 (dkoes\u002Fopenbabel) 源码编译，因为官方版本存在键序确定错误。若在不同架构的 GPU 集群上编译，需配置 CMAKE_CUDA_ARCHITECTURES=all。","3.x (通过 python3-dev, python3-numpy, python3-pip 推断)",[121,122,123,124,125,126,127,128,129,130],"CUDA >= 12.0","cuDNN","libboost-all-dev","libeigen3-dev","libprotobuf-dev","libhdf5-dev","librdkit-dev","OpenBabel 3 (自定义编译版)","PyTorch (自动获取)","libmolgrid (自动获取)",[18],[133,134,135,136,137],"convolutional-neural-networks","cheminformatics","computational-chemistry","molecular-modeling","drug-discovery","2026-03-27T02:49:30.150509","2026-04-13T00:23:27.606371",[141,146,150,155,159,164,168,173],{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},31076,"安装 Gnina 时 CMake 报错找不到 libmolgrid 或 RDKit，即使它们已安装怎么办？","这通常是因为缺少 Boost 库或版本不兼容。请尝试重新安装 Boost 库。此外，维护者建议直接使用提供的预编译二进制文件以避免复杂的依赖问题，特别是对于已停止维护的系统（如 Ubuntu 16.04）。如果必须从源码编译，请确保 Boost 库路径正确配置。","https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Fissues\u002F183",{"id":147,"question_zh":148,"answer_zh":149,"source_url":145},31077,"编译 Gnina 时出现关于 boost::detail 或 boost::filesystem 的未定义引用错误如何解决？","这是 Boost 库链接问题。通常发生在不同操作系统（如 CentOS 和 Ubuntu）之间迁移时。请检查并重新安装与当前系统 GCC 版本匹配的 Boost 库。确保在运行 CMake 之前，Boost 的头文件和库文件能被正确找到。",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},31078,"CNN 细化（refinement）过程中亲和力和分数下降是正常现象吗？","日志中明确提示：\"重要：不建议在对接（docking）时使用 CNN 评分。CNN 评分最适合用于 --minimize 或 --score_only 模式\"。如果在细化过程中看到分数波动或下降，可能是因为该模式并非为动态优化设计。建议仅使用 CNN 进行最终评分或最小化能量，而不是作为对接搜索的一部分。","https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Fissues\u002F100",{"id":156,"question_zh":157,"answer_zh":158,"source_url":154},31079,"如何在 Docker 容器中运行 Gnina 以正确使用 GPU？","你需要启动一个能够访问 GPU 的容器。如果使用 NVIDIA Docker，请在启动命令中添加 `--gpus all` 参数。例如：`docker run --gpus all dkoes\u002Fgnina ...`。不需要先单独启动一个 \"nvidia docker\"，只需确保宿主机安装了 NVIDIA Container Toolkit 并在运行 Gnina 容器时指定 GPU 标志即可。",{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},31080,"Gnina 运行时内存消耗过大导致溢出（OOM）怎么办？","这可能是由于系统更新后 CUDA 库不兼容导致的。维护者建议不要从源码编译，而是使用修复后的预编译二进制文件。对于 Ubuntu 用户，需要安装特定的 CUDA 版本（如 `apt install cuda-12-8`），因为 CUDA 12.9 移除了二进制文件依赖的某个库。请下载并使用 v1.3 版本的修复补丁或等待 1.3.1 发布版。","https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Fissues\u002F318",{"id":165,"question_zh":166,"answer_zh":167,"source_url":163},31081,"从源码编译 Gnina 时遇到 CMake 报错 \"Failed to find nvToolsExt\" 如何解决？","这是较新版本 NVIDIA CUDA（如 12.x）与 CMake\u002FLibTorch 之间的已知兼容性问题。如果无法通过常规方法修复，建议直接使用维护者提供的预编译二进制文件，以避免复杂的构建环境配置问题。维护者通常会提供针对特定 CUDA 版本修复后的二进制包。",{"id":169,"question_zh":170,"answer_zh":171,"source_url":172},31082,"Gnina 内置的 CNN 模型名称中后缀 _1, _2, _3, _4 代表什么含义？","这些后缀通常代表基于交叉验证（cross-validation）划分的不同模型折叠（folds）。例如，`crossdock_default2018_1` 到 `_4` 是使用 CrossDock 数据集训练的不同折叠模型。在使用 `--cnn` 选项时，Gnina 可能会利用这些模型进行集成预测以提高准确性，具体取决于实现细节，但它们本质上是同一架构在不同数据子集上训练的变体。","https:\u002F\u002Fgithub.com\u002Fgnina\u002Fgnina\u002Fissues\u002F193",{"id":174,"question_zh":175,"answer_zh":176,"source_url":172},31083,"general_default2018 模型是基于哪个数据集训练的？","`general_default2018` 指的是使用 PDBbind General 数据集训练的默认 2018 架构模型。GitHub 上存在多个数据集目录（如 2017 年发布的 general 数据和 2020 年发布的包含 CrossDock 数据的 PDBBind2016），该模型名称特指与 2018 年论文中描述的通用数据集配置相对应的训练结果。",[178,183,188,193,198,203,208,213,218],{"id":179,"version":180,"summary_zh":181,"released_at":182},223012,"v1.3.2","修复问题 #327。发布版本现在需要 cuDNN 9（并且速度更快）。\n\n默认二进制文件使用较旧的 CUDA 版本以确保兼容性。要支持最新的显卡，需要使用 CUDA 12.8 版本。","2025-07-08T13:47:33",{"id":184,"version":185,"summary_zh":186,"released_at":187},223013,"v1.3.1","小幅错误修复和文档更新。","2025-05-23T13:10:13",{"id":189,"version":190,"summary_zh":191,"released_at":192},223014,"v1.3","本次发布将底层深度学习框架升级至 Torch，从而提升了对接计算的效率，并为将其他深度学习方法无缝集成到对接流程中奠定了基础。我们基于更新后的 CrossDock2020 v1.3 数据集重新训练了卷积神经网络打分函数，并引入知识蒸馏后的卷积神经网络打分函数，以促进高通量虚拟筛选的开展。","2024-10-04T19:54:32",{"id":194,"version":195,"summary_zh":196,"released_at":197},223015,"v1.1","实现了简便的共价对接。用户可以为配体原子指定 SMARTS 模式，并为受体原子指定 chain:resid:atomname 格式的原子标识；对接过程仅会探索那些满足这些原子之间形成共价键的构象。初始原子位置的确定采用 OpenBabel 的成键启发式方法，但也可通过显式指定配体坐标来覆盖该默认设置。共价复合物的几何结构可选择使用 UFF 力场进行优化。\n\n修复了多项 bug，并更新了构建系统。","2023-12-18T19:52:14",{"id":199,"version":200,"summary_zh":201,"released_at":202},223016,"v1.0.3","小幅错误修复及常规的代码维护，以防止代码腐化。","2023-02-10T13:59:46",{"id":204,"version":205,"summary_zh":206,"released_at":207},223017,"v1.0.2","更新构建系统；支持 cuDNN 8","2022-06-21T14:04:18",{"id":209,"version":210,"summary_zh":211,"released_at":212},223018,"v1.0.1","构建兼容性改进。修复了使用 --cnn_scoring=all 时 GPU 未被使用的 bug。","2021-03-23T16:22:38",{"id":214,"version":215,"summary_zh":216,"released_at":217},223019,"v1.0","GNINA 1.0 版本发布。新版本在对接流程中全面支持 CNN 打分，提供了一组默认的 CNN 集成模型，在打分性能上显著优于 Vina；同时新增了便捷的柔性对接功能，并支持自定义的经验式打分函数和 CNN 打分函数。\n\n提供的二进制文件以尽可能兼容的方式打包了几乎所有依赖项。该版本仅用于评估，不建议用于生产环境，因为为了保证兼容性，性能有所降低。若需使用 GPU 加速，您的 CUDA 驱动程序版本必须不低于 410.48。\n\nDocker 镜像可在 https:\u002F\u002Fhub.docker.com\u002Fu\u002Fgnina 上获取。","2021-01-14T19:56:27",{"id":219,"version":220,"summary_zh":221,"released_at":222},223020,"v1.0-rc.1","1.0 版本的初始候选版本。","2020-12-30T17:18:14"]