cigar2align

Преобразуйте невыровненные последовательности в выровненные последовательности с помощью подписей в формате CIGAR

Синтаксис

Alignment = cigar2align(Seqs,Cigars)
[GapSeq, Indices] = cigar2align(Seqs,Cigars)
... = cigar2align(Seqs,Cigars,Name,Value)

Описание

Alignment = cigar2align(Seqs,Cigars) преобразовывает невыровненные последовательности в Seqs, массиве ячеек из символьных векторов или векторе строки, в Alignment, матрицу выровненных последовательностей, с помощью информации, хранившей в Cigars, массиве ячеек отформатированных СИГАРОЙ векторов символов или вектора строки.

[GapSeq, Indices] = cigar2align(Seqs,Cigars) преобразовывает невыровненные последовательности в Seqs, массиве ячеек из символьных векторов или векторе строки, в GapSeq, массив ячеек из символьных векторов выровненных последовательностей, и также возвращает Indices, вектор числовых индексов, с помощью информации, хранившей в Cigars, массиве ячеек отформатированных СИГАРОЙ векторов символов или вектора строки. Когда выравнивание имеет много столбцов, этот синтаксис использует меньше памяти и быстрее.

... = cigar2align(Seqs,Cigars,Name,Value) преобразовывает невыровненные последовательности в Seqs, массиве ячеек из символьных векторов или векторе строки, в Alignment, матрицу выровненных последовательностей, с помощью информации, хранившей в Cigars, массиве ячеек отформатированных СИГАРОЙ векторов символов или вектора строки, с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

Входные параметры

Seqs

Массив ячеек из символьных векторов или вектор строки, содержащий невыровненные последовательности. Seqs должен содержать то же число элементов как Cigars.

Cigars

Массив ячеек допустимых отформатированных СИГАРОЙ векторов символов или вектора строки. Cigars должен содержать то же число элементов как Seqs.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

'Start'

Вектор положительных целых чисел, задающих ссылочное положение последовательности, в котором запускается каждая выровненная последовательность. По умолчанию каждая выровненная последовательность запускается в положении 1 ссылочной последовательности.

'GapsInRef'

Логическое определение, отобразить ли положения в выровненных последовательностях, которые соответствуют разрывам в ссылочной последовательности. Выбором является true (1) или false (0). Если ваша ссылочная последовательность будет иметь разрывы, и вы устанавливаете GapsInRef на false (0), и затем дальнейшее использование Alignment, как введено к align2cigar, то возвращенные отформатированные СИГАРОЙ векторы символов не будут совпадать с исходными единицами.

Значение по умолчанию: false (0)

'SoftClipping'

Логическое определение, включать ли символы в выровненные последовательности чтения, соответствующие мягким концам усечения. Выбором является true (1) или false (0).

Значение по умолчанию: false (0)

'OffsetPad'

Логическое определение, добавить ли дополнение, очищает слева от каждой выровненной последовательности чтения, чтобы представлять смещение положения запуска от первого положения ссылочной последовательности. Выбором является true (1) или false (0). Когда false, матрица выровненных последовательностей запускается в положении запуска крайней левой выровненной последовательности чтения.

Значение по умолчанию: false (0)

Выходные аргументы

Alignment

Матрица выровненных последовательностей, в которых количество строк равняется количеству векторов символов в Seqs.

GapSeq

Массив ячеек из символьных векторов выровненных последовательностей, в которых векторы символа числа равняется количеству векторов символов в Seqs.

Indices

Вектор числовых индексов, указывающих на стартовый столбец для каждой выровненной последовательности в Alignment. Эти индексы являются не обязательно тем же самым как положениями запуска в ссылочной последовательности для каждой выровненной последовательности. Это вызвано тем, что любое из следующего:

  • Ссылочная последовательность может быть расширена, чтобы составлять вставки.

  • Выровненная последовательность может иметь ведущие мягкие усечения, дополнение или символы вставки.

Примеры

Создайте массив ячеек из символьных векторов, содержащий невыровненные последовательности, создайте массив ячеек соответствующих отформатированных СИГАРОЙ векторов символов, сопоставленных со ссылочной последовательностью ACGTATGC, и затем восстановите выравнивание:

r = {'ACGACTGC', 'ACGTTGC', 'AGGTATC'}; % unaligned sequences
c = {'3M1D1M1I3M', '4M1D1P3M', '5M1P1M1D1M'}; % cigar-formatted
aln1 = cigar2align(r, c)
aln1 =

ACG-ATGC
ACGT-TGC
AGGTAT-C

Восстановите то же выравнивание, чтобы отобразить положения в выровненных последовательностях, которые соответствуют разрывам в ссылочной последовательности:

aln2 = cigar2align(r, c,'GapsInRef',true)
aln2 =

ACG-ACTGC
ACGT--TGC
AGGTA-T-C

Восстановите выравнивание, добавляющее дополнение смещения 5:

aln3 = cigar2align(r, c, 'start', [5 5 5], 'OffsetPad', true)
aln3 =

    ACG-ATGC
    ACGT-TGC
    AGGTAT-C

Алгоритмы

Когда cigar2align восстанавливает выравнивание, он не отображает трудно отсеченные положения (H) или мягкие отсеченные положения (S). Кроме того, это не рассматривает мягких отсеченных положений, как запускают положения для выровненных последовательностей.

Альтернативы

Если ваша информация о CIGAR получена в свойстве Signature объекта BioMap, можно использовать метод getAlignment, чтобы создать выравнивание.

Представленный в R2010b