Я предполагаю, что Вы закончите тем, что анализировали файл PE и сделаете demangling сами, если Вы захотите найти имена функций неизвестного dll в или чрезвычайно бесполезной системе во время выполнения ("dumpbin"); волшебство.
необходимо больше согласиться с тем, что Вы хотите.
библиотека BFD делает то, что Вы хотите (и раковина), который является основным компонентом нескольких GNU binutils инструменты. Я не могу быть уверен, будет ли это соответствовать Вашей проблеме.
Я только что наткнулся на то, что хотел бы: Набор инструментов NCBI C ++ . Тем не менее, спасибо за все предложения.
Должен ли он быть на C, или C ++ тоже подойдет? Если это так, вы можете посмотреть библиотеку SeqAn здесь .
Алгоритм BLAST был реализован около 20 лет назад, сейчас это очень большой алгоритм, и я не могу представить, что его можно легко реализовать с нуля. Вы можете попытаться узнать об этом, просмотрев исходные коды программы 'blastall' в NCBI toolkit . Более простой попарный алгоритм (Swith Waterman, Needleman-Wunsch) должен быть проще в реализации:
Computational Molecular Biology: An Introduction содержит код для Smith-Waterman и других алгоритмов согласования динамического программирования.
Я использую NetBLAST через двоичный файл клиента blastcl3. Я считаю, что двоичный файл blastcl3 - довольно тонкий клиент для веб-службы NetBLAST.
Если это так, то будет несложно перехватить пакеты и реализовать собственный клиент. В зависимости от вашего варианта использования это может быть быстрее / проще, чем реализация собственного алгоритма выравнивания. Однако он вводит зависимость от веб-служб NCBI.
В нем указано, что mysql_real_connect () по умолчанию не является потокобезопасным. Клиентская библиотека должна быть скомпилирована для многопоточного доступа.
в то время как инструменты автоматической сборки, такие как Make, не подходят для задач создания сценариев. Взгляните на эти примеры: http://skam.sourceforge.net/skam-intro.html http://swc.scipy.org/lec/build.htmlЯ отправил аналогичный вопрос ( запуск BLAST (bl2seq) без создания файлов последовательности )
По сути, ответ, который я придумал, заключался в выполнении этой команды:
bl2seq -i<(echo sequence1) -j(echo sequence2) -p blastn
Она передает результат echo в программу bl2seq (взрыв 2 последовательности).
Но мне не удалось заставить его работать через вызывающую систему из Python