Программа PairHits
Программа входит в состав комплекса iHCE для поиска
высококонсервативных элементов (ВКЭ) в наборе геномов. Она находит все пары приближённо
совпадающих слов-кандидатов в двух последовательностях из разных геномов и тем самым формирует
рёбра исходного графа. Программа предназначена для параллельных вычислений в среде MPI
на высокопроизводительном кластере с 64-битной операционной системой Windows или Linux.
Программа PairHits написана на С++ и имеет интерфейс командной строки. Формат
командной строки:
pairhits [options] [config_file]
(Здесь указано имя программы в Linux; вариант для Windows 64-bit c MPICH2 имеет имя
pairhits64, с Microsoft MPI — pairhits64ms, без MPI —
pairhits64nompi).
Опции указываются в одном из форматов: /x[ значение],
-x[ значение], --x…xx[=значение]
(у некоторых опций значение отсутствует). В основном опции предназначены для изменения обычных
значений параметров программы, которые указаны в файле конфигурации или установлены по умолчанию
(значения в командной строке имеют наивысший приоритет).
Список распознаваемых опций командной строки и значения по умолчанию
- -?
- --help
- Выдаёт подсказку о параметрах командной строки программы.
- -a
- --append
- Осуществляется дозапись в конец выходного файла, если он уже существует (по умолчанию — как указано в файле конфигурации; если не указано ничего, то файл перезаписывается).
- -b число
- --belt=число
- Максимально допустимое число подряд идущих делеций, а также общее число делеций при отсутствии
инсерций (
0означает, что делеции вообще запрещены). Значение-1указывает, что ограничений на число делеций нет. Значение по умолчанию —2. - -с имя_файла
- --config=имя_файла
- Имя файла конфигурации программы, может включать путь. Если имя содержит
пробелы, соответствующий аргумент целиком заключается в кавычки. По умолчанию используется файл
config.iniв рабочей директории программы. - -d число
- --score_del=число
- Величина штрафа за делецию (неотрицательная цена операции вставки/удаления буквы).
Округляется до одного знака после запятой. Значение по умолчанию —
2,1. - -e число
- --minletter=число
- Указывается двухзначное число, у которого старшая цифра указывает минимально допустимое
число разных букв в искомом слове (максимум 4), а младшая — в ключе поиска. Значение
0указывает, что ограничений на встречаемость букв нет. Значение по умолчанию —43. - -f имя
- --fastapath=имя
- Общий префикс имён файлов, содержащих исходные геномные последовательности в формате
FASTA или GenBank (последнее — только если геном состоит из единственной последовательности);
обычно это путь к соответствующему каталогу. Переменная часть имён указывается в разделе
[species]файла конфигурации. Если имя содержит пробелы, соответствующий аргумент целиком заключается в кавычки. По умолчанию используется каталогfasta\в рабочей директории. - -i число
- --score_mis=число
- Величина штрафа за несовпадение (неотрицательная цена операции замены одной буквы на другую).
Округляется до одного знака после запятой. Значение по умолчанию —
1. - -j имя_файла
- --job=имя_файла
- Имя файлов заданий для программы, может включать путь. Если имя
содержит пробелы, соответствующий аргумент целиком заключается в кавычки. Символ
#в имени файла интерпретируется как порядковый номер, с тем условием, что файлы заданий пронумерованы без пропусков, начиная с некоторого значения (по умолчанию с 0, но может задаваться опцией-t). По умолчанию используется значениеjobs\#.txt. Заметим, что номер файла должен состоять из постоянного числа цифр (при необходимости слева добавляются незначащие нули); разрядность задаётся опцией-yили определяется автоматически. - -k число
- --key=число
- Минимальная длина точно совпадающего участка искомой пары слов. Значение по умолчанию —
16. - -l число
- --length=число
- Нижний порог длины искомых слов (рассматриваются только слова с длиной строго больше порога).
Значение по умолчанию —
60. - -n
- --nompi
- Заставляет мультипроцессорную версию программы работать в однопроцессорном режиме, даже в среде MPI. Иногда при отсутствии в системе среды MPI этой опции может оказаться недостаточно (программа завершается аварийно); в таких случаях следует использовать вариант программы без MPI.
- -o имя_файла
- --log=имя_файла
- Имя файла для протокола работы программы, может включать путь. Если имя содержит пробелы,
соответствующий аргумент целиком заключается в кавычки. Символ
#в имени файла интерпретируется как номер процессора, при условии, что в файле конфигурации задана раздельная выдача протокола каждой параллельной ветви программы. По умолчанию используется имяphs_log#.txt. - -p число
- --step=число
- Шаг выбора ключей из первой последовательности при её индексации. Значение по умолчанию —
1. - -q число
- --frequency=число
- Порог числа повторений ключа в первой последовательности, при превышении которого ключ
не рассматривается. Значение
0означает отсутствие такого порога. Значение по умолчанию —200. - -r имя_файла
- --result=имя_файла
- Имя файлов результатов программы, может включать путь. Если имя
содержит пробелы, соответствующий аргумент целиком заключается в кавычки. Символ
#в имени файла указывает место, где будет указан номер задания (см. опцию-j). По умолчанию используется значениеresults\#.txt. - -s число
- --maxscore=число
- Максимально допустимая суммарная величина штрафа за несовпадение слов. Округляется до одного
знака после запятой. Значение по умолчанию —
17,5. - -t число
- --start=число
- Номер файла заданий, с которого программа должна начать работу
(см. также опции
-j,-u). Значение по умолчанию —0. - -u число
- --use=число
- Максимальное число файлов заданий, которое программа будет пытаться
выполнить; в текущей реализации не более
100000(см. также опции-j,-t). Значение по умолчанию —10000. - -w
- --rewrite
- Осуществляется перезапись выходного файла, если он уже существует (см. также опцию
-a). По умолчанию выбирается режим, указанный в файле конфигурации; если не указано ничего, файл перезаписывается. - -y число
- --width=число
- Число цифр в номере файла задания, в текущей реализации не более
5(см. также опцию-j). Значение по умолчанию0указывает, что разрядность номера будет определяться автоматически (это возможно не всегда, см. ниже описание параметраwidthфайла конфигурации). - -z число
- --ratio=число
- Максимально допустимый коэффициент сжатия искомых слов алгоритмом gzip; если слово сжимается
больше, оно отбрасывается. Значение
0означает, что такая проверка достаточной сложности найденных слов не выполняется. Значение по умолчанию —2,2.
Первый же аргумент командной строки, не являющийся ни одной из вышеперечисленных опций
или её значением, интерпретируется как имя файла конфигурации (аналогично значению опции
-c).
Файл конфигурации программы
Файл конфигурации является обязательным; это текстовый файл со структурой,
традиционной для конфигурационных файлов (примеры файла есть в составе контрольных примеров
для Windows
и Linux).
Строки файла не могут переноситься; пустые строки игнорируются. Строки, начинающиеся символом
; или #, рассматриваются как комментарии и также игнорируются
программой. Для комментариев в информационных строках может использоваться пара символов
«косая черта» (//); начиная с неё, остаток строки игнорируется.
Информационные строки бывают двух видов: заголовок раздела (формат
[имя_раздела]) и значение параметра (формат
параметр = значение, где в качестве разделителей между левой частью, знаком
равенства и правой частью может использоваться один или более пробелов или символов табуляции).
Разделом конфигурации называется часть файла, начиная с заголовка раздела и вплоть до
следующего заголовка раздела или до конца файла. Порядок параметров внутри раздела произвольный.
Файл конфигурации может содержать несколько разделов в произвольном порядке, за исключением
раздела [common], который должен стоять первым, и раздела [species],
который должен стоять последним. Программа PairHits использует только разделы
[common] (если есть), [pairhits], [species] и игнорирует
прочие разделы файла конфигурации.
Список распознаваемых параметров конфигурации в разделе [pairhits]
- splitlog
- Задаёт режим выдачи протокола работы параллельной версии программы. В правой части указывается
булевское значение «истина» (в любом из форматов:
yes,true,1,+) или «ложь» (в любом из форматовno,false,0,-). Если указано истинное значение, каждая параллельная ветвь программы формирует собственный протокол работы, имя которого задаётся параметрамиlogname,logextили опцией-oв командной строке (последний способ имеет приоритет перед остальными). Если этот параметр отсутствует в разделе[pairhits], используется значение из раздела[common]; если нет и там, принимается значение «истина». - logname
- Указывает имя файла протокола (без расширения), которое может включать путь. Если значение
содержит пробелы, оно должно быть заключено в кавычки. Если установлено
splitlog=true, то к указанному имени автоматически добавляется номер параллельной ветви, начиная с 0. Если этот параметр отсутствует в разделе[pairhits], используется значение из раздела[common]; если нет и там, принимается значениеphs_log. Значение может быть изменено с помощью опции-oв командной строке, причём эта опция модифицирует сразу три параметра:splitlog,logname,logext. - logext
- Указывает расширение имени файла протокола. Если этот параметр отсутствует в разделе
[pairhits], используется значение из раздела[common]; если нет и там, принимается значение.txt. Значение может быть изменено с помощью опции-oв командной строке, причём эта опция модифицирует сразу три параметра:splitlog,logname,logext. - errname
- Указывает имя (без расширения) файла для протокола ошибок программы, которое может включать
путь. Если значение содержит пробелы, оно должно быть заключено в кавычки. Если установлено
splitlog=true, то к указанному имени автоматически добавляется номер параллельной ветви, начиная с 0. Если этот параметр отсутствует в разделе[pairhits], используется значение из раздела[common]; если нет и там, принимается значениеphs_err. Если указано пустое значение, протокол ошибок не формируется. - errext
- Указывает расширение имени файла протокола. Если этот параметр отсутствует в разделе
[pairhits], используется значение из раздела[common], если нет и там, принимается значение.log. - jobpath
- Указывает имя файлов заданий для программы, которое может включать
путь. Если имя содержит пробелы, соответствующее значение целиком заключается в кавычки. Если
параметр не указан, используется значение
jobs\. К имени автоматически добавляется номер задания, начиная с 0 (или иного значения, указанного параметромstart). Номер дополняется слева незначащими нулями до фиксированного числа разрядов, которое задаётся параметромwidth(или определяется автоматически). Значение параметра может быть изменено с помощью опции-jв командной строке, причём эта опция модифицирует сразу два параметра:jobpath,jobext. - jobext
- Указывает расширение имени файлов заданий. Если параметр не указан, используется значение
.txt. Значение может быть изменено с помощью опции-jв командной строке, причём эта опция модифицирует сразу два параметра:jobpath,jobext. - fastapath
- Указывает общий префикс имён файлов с исходными геномными последовательностями в формате либо
FASTA, либо GenBank; обычно это путь к соответствующему каталогу. Если значение содержит пробелы,
оно должно быть заключено в кавычки. Если параметр отсутствует, используется его значение из
раздела
[common], а по умолчанию — каталогfasta\в рабочей директории. Переменная часть имён указывается в разделе[species]. Значение может быть изменено с помощью опции-fв командной строке. - result
- Указывает имя файла результатов программы (без расширения), которое
может включать путь. Если имя содержит пробелы, соответствующий аргумент целиком заключается в
кавычки. К указанному имени автоматически добавляется номер файла заданий, для которого получены
содержащиеся в файле результаты. Для каждого файла заданий формируется один либо ни одного файла
результатов. Значение может быть изменено с помощью опции
-rв командной строке, причём эта опция модифицирует сразу два параметра:result,resext. По умолчанию используется значениеresults\(т.е. результаты записываются в поддиректориюresultsрабочей директории и имя файла совпадает с номером файла заданий). - resext
- Указывает расширение имени файла результатов, по умолчанию —
.txt. Значение может быть изменено с помощью опции-rв командной строке, причём эта опция модифицирует сразу два параметра:result,resext. - append
- Задаёт режим записи файлов протокола и/или результатов в случаях, когда файл с таким именем
уже существует. В правой части указывается булевское значение «истина» (в любом из форматов:
yes,true,1,+) или «ложь» (в любом из форматов:no,false,0,-). Если указано истинное значение, производится дозапись в конец файла (старое содержимое сохраняется). В противном случае или если параметр не указан, файл перезаписывается заново (старое содержимое теряется). Заданный режим может быть изменён с помощью опций командной строки-a,-w. Если этот параметр не указан, файлы перезаписываются. - width
- Задаёт число цифр в номере файла заданий (в текущей реализации максимум 5). Значение по
умолчанию
0указывает, что разрядность номера должна определяться автоматически (это возможно лишь в том случае, если в каталоге, указанном параметромjobpath, присутствует файл задания с первым подлежащим выполнению номером, т.е. указанным в параметреstartили принятым по умолчанию нулевым). Заданное значение может быть изменено с помощью опции-yв командной строке. - keysize
- Указывает минимальную длину точно совпадающего участка для искомой пары слов. Рекомендуется
выбирать кратное 4 значение в интервале от 16 до 48. Если параметр не указан в разделе
[pairhits], берётся значение из раздела[common]; если нет и там, то по умолчанию принимается16. Заданное значение параметра можно изменить с помощью опции-kв командной строке. - keystep
- Задаёт шаг выбора ключей из первой последовательности при её индексации. Заданное значение
можно изменить с помощью опции
-pв командной строке. Значение по умолчанию —1. - frequency
- Указывает порог числа повторений ключа в первой последовательности, при превышении которого
ключ не рассматривается. Значение
0означает отсутствие такого порога. Заданное значение можно изменить с помощью опции-qв командной строке. Значение по умолчанию —200. - length
- Указывает нижний порог длины искомых слов (рассматриваются только слова с длиной строго больше
порога). Если параметр не указан в разделе
[pairhits], берётся значение из раздела[common]; если нет и там, то по умолчанию принимается60. Значение параметра можно изменить с помощью опции-lв командной строке. - ratio
- Указывает максимально допустимый коэффициент сжатия искомых слов алгоритмом gzip; если слово
сжимается больше, оно отбрасывается. Ноль означает, что такая проверка достаточной сложности
найденных слов не выполняется. Если параметр не указан в разделе
[pairhits], берётся значение из раздела[common]; если нет и там, то по умолчанию принимается2,2. Значение может быть изменено опцией-rв командной строке. - serial_del
- Задаёт максимально допустимое число подряд идущих делеций, а также общее число делеций
при отсутствии инсерций (
0означает, что делеции вообще запрещены). Значение-1указывает, что ограничений на число делеций нет. Если параметр не указан в разделе[pairhits], берётся значение из раздела[common]; если нет и там, то по умолчанию принимается2. Значение может быть изменено опцией-bв командной строке. - maxscore
- Задаёт максимально допустимую суммарную величину штрафа за несовпадение слов. Округляется
до одного знака после запятой. Если параметр не указан в разделе
[pairhits], берётся значение из раздела[common]; если нет и там, то по умолчанию принимается17,5. Значение может быть изменено опцией-sв командной строке. - score_del
- Задаёт величину штрафа за делецию (неотрицательная цена операции вставки/удаления буквы).
Округляется до одного знака после запятой. Если параметр не указан в разделе
[pairhits], берётся значение из раздела[common]; если нет и там, то по умолчанию принимается2,1. Заданное значение может быть изменено опцией-dв командной строке. - score_mis
- Задаёт величину штрафа за несовпадение (неотрицательная цена операции замены
буквы). Округляется до одного знака после запятой. Если параметр не указан в разделе
[pairhits], берётся значение из раздела[common]; если нет и там, то по умолчанию принимается1. Заданное значение может быть изменено опцией-iв командной строке. - start
- Указывает номер файла заданий, с которого программа должна начать
работу. При отсутствии файла заданий с таким номером, программа проверяет следующий номер,
и т.д. Заданное значение может быть изменено опцией
-tв командной строке. Значение по умолчанию —0. - stop