Skip to content

Repository files navigation

Вычисление количества мотивов в наборе цепочек ДНК

Консольное приложение на C++ с использованием MPI и OpenMP для поиска мотивов в последовательностях ДНК.

Требования

  • Компилятор C++ с поддержкой C++11
  • MPI (OpenMPI или MPICH)
  • OpenMP
  • Make

Компиляция

make

Или вручную:

mpic++ -std=c++11 -O3 -fopenmp -o motif_finder main.cpp

Использование

mpirun -np <количество_процессов> ./motif_finder <chipseq_file> <motif_file> [num_threads]

Примеры

# 1 процесс, 4 потока
mpirun -np 1 ./motif_finder FoxA2_5000.fst FoxA2_major_30.mot 4

# 2 процесса, по 2 потока на процесс
mpirun -np 2 ./motif_finder FoxA2_5000.fst FoxA2_major_30.mot 2

# 4 процесса, по 4 потока на процесс
mpirun -np 4 ./motif_finder FoxA2_5000.fst FoxA2_major_30.mot 4

Формат входных файлов

Файл ChIP-seq (FoxA2_5000.fst)

Файл в формате FASTA:

>sequence_1
ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGC
>sequence_2
CGATCGATCGATCGATCGATCGATCGATCGATCGATCGAT
...

Файл мотивов (FoxA2_major_30.mot)

Файл в формате FASTA с мотивами длиной 8 позиций:

>motif_1
ATGCATGC
>motif_2
RYKMSWBD
...

Поддерживаются IUPAC символы: A, T, G, C, R, Y, S, W, K, M, B, D, H, V, N

Выходные данные

Программа выводит:

  • Количество загруженных последовательностей и мотивов
  • Количество последовательностей с совпадениями
  • Частоту совпадений (в процентах)
  • Время выполнения

Тестирование и визуализация результатов

Автоматическое тестирование с графиками

Скрипт test.sh автоматически запускает все тесты и генерирует графики:

./test.sh

Скрипт:

  1. Компилирует программу
  2. Запускает 8 тестов с разными конфигурациями (процессы × потоки)
  3. Сохраняет результаты в test_results.txt и timings.csv
  4. Автоматически генерирует графики и таблицу результатов

Результаты тестирования

После выполнения test.sh создаются:

  • test_results.txt - полный вывод всех тестов
  • timings.csv - таблица с результатами в формате CSV
  • test_results.png - графики результатов (4 графика)
  • test_results_3d.png - 3D визуализация результатов

Ручная генерация графиков

Если у вас уже есть файл timings.csv, можно сгенерировать графики отдельно:

python3 plot_results.py timings.csv

Установка зависимостей для графиков

pip3 install matplotlib

Или используйте файл requirements.txt:

pip3 install -r requirements.txt

Очистка

make clean
rm -f test_results*.txt test_results*.png timings.csv

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages