cigar2align

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

Синтаксис

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

Описание

Alignment = cigar2align(Seqs,Cigars) преобразует выровненные последовательности в Seqs, массив ячеек из векторов символов или строкового вектора, в Alignment, матрица выровненных последовательностей, с использованием информации, хранящейся в Cigars, массив ячеек из CIGAR-форматированных векторов символов или строкового вектора.

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

... = cigar2align(Seqs,Cigars,Name,Value) преобразует выровненные последовательности в Seqs, массив ячеек из векторов символов или строкового вектора, в Alignment, матрица выровненных последовательностей, с использованием информации, хранящейся в Cigarsмассив ячеек из CIGAR-форматированных векторов символов или строкового вектора с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар.

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

Seqs

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

Cigars

Массив ячеек из допустимых CIGAR-форматированных ячеек из символьных векторов или строкового вектора. Cigars должны содержать то же количество элементов, что и Seqs.

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

'Start'

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

'GapsInRef'

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

По умолчанию: false (0)

'SoftClipping'

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

По умолчанию: false (0)

'OffsetPad'

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

По умолчанию: false (0)

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

Alignment

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

GapSeq

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

Indices

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

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

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

Примеры

Создайте массив ячеек из векторов символов, содержащих несовпадающие последовательности, создайте массив ячеек из соответствующих CIGAR-форматированных векторов символов, сопоставленных с ссылочной последовательностью 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