Мой опыт в области геномики, но я недавно работал над проблемами, связанными со структурой белка. Я написал несколько соответствующих программ на C, создавая собственный анализатор PDB-файлов с самого начала. Я не беспокоился о создании действительно надежного синтаксического анализатора, я просто знал, что его создание будет лучшим способом заставить себя по-настоящему понять формат PDB.
Теперь, когда я прошел через этот процесс, я ищу что-то более надежное и зрелое. Существуют ли какие-либо библиотеки с открытым исходным кодом, реализованные в C? Мне удалось найти несколько в Google, но я никогда не слышал о них раньше, и они не кажутся достаточно зрелыми или стабильными. Немного связанный вопрос: все ли на самом деле делают все эти типы вычислений с использованием Python? или доморощенный код?
PS. По сути, я ищу библиотеку, которая включает в себя парсер файлов PDB, функции для вычисления углов склеивания, длин скручивания, углов кручения, площади поверхности, доступной поверхности, и т. Д.
источник
OpenBabel - это C ++, но он обычно используется для общих структурных вещей - его основной задачей является преобразование и возможность чтения широкого спектра форматов. Насколько я знаю, у него нет возможности рассчитывать SAS-области.
источник
Начнем с вашего «связанного вопроса»: я делаю парсинг PDB на Python, даже если для ускорения необходимо выполнить последующую обработку на некотором скомпилированном языке. C просто не подходит для синтаксического анализа, в частности, не для таких грязных форматов, как PDB. И, вероятно, поэтому в C. нет стабильных и зрелых парсеров PDB.
Еще кое-что, что вы можете рассмотреть, предполагая, что ваша цель - работать со структурами из PDB, - это использовать формат mmCIF, а не формат PDB. mmCIF гораздо более регулярный и, следовательно, легче разбирать. Вы также получаете больше разбираемой информации из версии mmCIF записей PDB, чем из версий PDB. Вы можете найти синтаксический анализатор C для mmCIF на веб-сайте PDB (он называется CIFPARSE), хотя вы заметите, что его разработка была прекращена в пользу переписывания C ++ под названием CIFPARSE-OBJ.
источник
Я знаю, что речь идет о C, но есть отличный способ сделать это, используя библиотеку GLGRAPHICS, которая реализует OPENGL в обработке (основанная на Java инфраструктура с синтаксисом, подобным c ++). OpenGL в основном один и тот же независимо от того, какой язык вы используете, поэтому Java не должна сильно влиять на производительность. В любом случае, библиотека GLGRAPHICS поставляется с программой просмотра pdb, которая работает из коробки. Его очень легко настроить, и у форума Processing есть очень отзывчивые последователи. Это может быть хорошей отправной точкой.
Библиотека GLGRAPHICS http://sourceforge.net/projects/glgraphics/files/glgraphics/1.0/, см. GLGRAPHICS / examples / PDBview
Обработка http://processing.org/
Наконец, вы можете проверить это (не 3D, но все еще классный пример) http://www.mydisk.se/tgn380/webpage/RECEPTOR/
источник
Если вы готовы использовать C ++, я бы порекомендовал ESBTL .
Вместо того, чтобы работать с файлами в формате PDB, вы можете загрузить их из Protein Data Bank в формате PDBML , который на самом деле является XML. Затем вы можете анализировать файлы PDBML, используя вашу любимую библиотеку XML для C (например, с Libxml2 ).
источник
Хотя это, возможно, не предполагаемое использование программного обеспечения, я нашел парсеры и общие методы обработки структуры белка, найденные в исходном коде VMD, надежными и всеобъемлющими.
VMD - это инструмент молекулярной визуализации с открытым исходным кодом. Когда это уместно, расширять его относительно рано, в противном случае код может быть удален из него.
источник
Файлы PDB легко читаются и обрабатываются в C ++ с использованием открытого исходного кода (BSD-лицензия) библиотеки chemkit .
В качестве примера приведем код, который будет считывать в файле PDB гемоглобин (ID PDB: 2DHB ) и распечатывать общее количество атомов, число цепей и площадь поверхности, доступную для растворителя:
Выход:
Для получения дополнительной информации см. Документацию для классов, представленных выше:
источник
Вы можете также рассмотреть другой «язык», такой как ЦНС , который специально разработан для работы с молекулярными структурами и имеет функции, которые вы упомянули.
источник