CBioInfCpp — набор функций C++ для биоинформатики и не только (строки, графы, вектора) |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2020-12-22 08:30 Всем интересующимся биоинформатикой, а также работающим в том или ином виде с графами, строками и массивами (векторами) в C++ позвольте предложить первую версию библиотеки CBioInfCpp.h Исходники и описание размещено здесь, все распространяется свободно: https://github.com/chernouhov/CBioInfCpp-0- Данная библиотека содержит ряд функций для: (1) Считывания из файла и вывода (в файл, на экран) одной командой стандартных векторов, матриц и графов (такая «питонизация» C++), а также данных специальных форматов (считывание массива строк в формате FASTA). (2) Работы со строками – от сравнительно общих задач поиска наименьшей общей надстроки и вычисления редакционного расстояния до специфических биоинформатических задач от подсчета GC-состава до поиска в строке всех «мутировавших» подстрок, т.е. тех, редакционное расстояние до которых от искомой не превышает заданного. (3) Работы с графами – тут надо остановиться чуть подробнее. В библиотеке предлагается использование для хранения графов такой структуры, как «вектор смежности». Ребра графа (вершины которого, кстати, могут нумероваться и отрицательными целыми числами, а дуги – как целыми, так и double) представляются в виде одной упорядоченной последовательности чисел – «пар» или «дуплетов» для невзвешенного и «триплетов» для взвешенного графа. Такая структура данных является довольно компактной и реализована, что называется, «безо всяких классов», с помощью стандартных элементов C++. Функции считывания графов из файлов, нахождения Эйлерова пути, топологической сортировки, кратчайших расстояний и пр. прилагаются. С июня 2019 для обеспечения более быстрого доступа к значению веса ребра в графе добавлена еще одна структура данных хранения графов - Ассоциативный массив смежности — как вариант ранее предложенной и реализованной структуры Вектор смежности. А с декабря 2020 года с помощью функции SubGraphsInscribed можно проверить два графа на изоморфизм, а также поискать в некотором большом графе подграфы, изоморфные данному. (4) Некоторые вспомогательные функции, например, разбиение числа на слагаемые. (!) Быстрый старт: для использования библиотеки достаточно написать #include <CBioInfCpp.h> в самом начале Вашей программы (предварительно разместив файл CBioInfCpp.h в соответствующем каталоге, ну или же указать к нему путь явно при произвольном размещении файла CBioInfCpp.h на Вашем компьютере). Остальные библиотеки, требуемые в ней, подсоединяются сами, не надо ничего самостоятельно «собирать, подключать» и т.д. «Открыли-сели-поехали». PS Автор будет рад единомышленникам в вопросах применения и дальнейшего развития библиотеки, и не только. Источник: m.vk.com Комментарии: |
|