seqpdist

Вычислите парное расстояние между последовательностями

Синтаксис

D = seqpdist(Seqs)
D = seqpdist(Seqs, ...'PropertyName', PropertyValue, ...)
D = seqpdist(Seqs, ...'Method', MethodValue, ...)
D = seqpdist(Seqs, ...'Indels', IndelsValue, ...)
D = seqpdist(Seqs, ...'OptArgs', OptArgsValue, ...)
D = seqpdist(Seqs, ...'PairwiseAlignment', PairwiseAlignmentValue, ...)
D = seqpdist(Seqs, ...'UseParallel', UseParallelValue, ...)
D = seqpdist(Seqs, ...'SquareForm', SquareFormValue ...)
D = seqpdist(Seqs, ...'Alphabet', AlphabetValue, ...)
D = seqpdist(Seqs, ...'ScoringMatrix', ScoringMatrixValue, ...)
D = seqpdist(Seqs, ...'Scale', ScaleValue, ...)
D = seqpdist(Seqs, ...'GapOpen', GapOpenValue, ...)
D = seqpdist(Seqs, ...'ExtendGap', ExtendGapValue, ...)

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

Seqs

Любое из следующих:

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

  • Вектор структур, содержащий Sequence область

  • Матрица символов, в которой каждая строка соответствует нуклеотидной или аминокислотной последовательности

MethodValueВектор символов, которая задает метод вычисления парных расстояний. По умолчанию это 'Jukes-Cantor'.
IndelsValueВектор символов или строка, которая задает, как обрабатывать сайты с погрешностями. По умолчанию это 'score'.
OptArgsValueВектор символов или массив ячеек, который задает один или несколько входные параметры, требуемых или принятых методом расстояния, заданным Method свойство.
PairwiseAlignmentValueУправляет глобальным парным выравниванием входа последовательностей (используя nwalign function), при этом игнорируя множественное выравнивание входных последовательностей (если таковые имеются). Варианты true или false. По умолчанию это:
  • true - Когда все входные последовательности имеют не одинаковую длину.

  • false - Когда все входные последовательности имеют одинаковую длину.

Совет

Если ваши входные последовательности совпадают по длине, seqpdist предполагает, что они выровнены. Если они не выровнены, выполните одно из следующих действий:

  • Выровняйте последовательности перед их передачей так, чтобы они seqpdist, например, используя multialign функция.

  • Задайте PairwiseAlignment на true при использовании seqpdist.

UseParallelValueУправляет вычислением парных расстояний с помощью parfor-циклы. Когда true, и Parallel Computing Toolbox™ установлен и parpool открыт, расчет происходит параллельно. Если нет открытых parpool, но автоматическое создание включено в Parallel Preferences, пул по умолчанию будет автоматически открыт, а расчеты происходят параллельно. Если установлен Parallel Computing Toolbox, но нет открытых parpool и автоматическое создание отключено, затем в расчетах используются parfor-циклы в последовательном режиме. Если Parallel Computing Toolbox не установлен, то при расчетах используются parfor-циклы в последовательном режиме. По умолчанию это false, который использует петли for в последовательном режиме.
SquareFormValue

Управляет преобразованием выхода в квадратную матрицу. Варианты true или false (по умолчанию).

AlphabetValueВектор символов или строка, задающая тип последовательности (нуклеотид или аминокислота). Варианты 'NT' или 'AA' (по умолчанию).
ScoringMatrixValue

Одно из следующих:

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

    • 'BLOSUM62'

    • 'BLOSUM30' увеличение на 5 до 'BLOSUM90'

    • 'BLOSUM100'

    • 'PAM10' увеличение на 10 до 'PAM500'

    • 'DAYHOFF'

    • 'GONNET'

    По умолчанию это:

    • 'BLOSUM50' - Когда AlphabetValue равен 'AA'

    • 'NUC44' - Когда AlphabetValue равен 'NT'

    Примечание

    Вышеупомянутые матрицы оценки, снабженные программным обеспечением, также включают структуру, содержащую коэффициент шкалы, который преобразует модули выхода счета в биты. Можно также использовать 'Scale' свойство, задающее дополнительный коэффициент шкалы для преобразования выхода счета из бит в другой модуль.

  • Матрица, представляющая скоринговую матрицу, используемую для выравнивания, такую как возвращенная blosum, pam, dayhoff, gonnet, или nuc44 функция.

    Примечание

    Если вы используете матрицу скоринга, которую вы создали или создали с помощью одной из вышеописанных функций, матрица не включает коэффициент шкалы. Итоговый счет будет возвращаем в тех же модулях измерения, что и матрица оценки. Можно использовать 'Scale' свойство, задающее коэффициент шкалы для преобразования выхода счета в другой модуль.

Примечание

Если вам нужно скомпилироваться seqpdist в самостоятельное приложение или программный компонент с использованием MATLAB® Compiler™ используйте матрицу вместо вектора символов или строки для ScoringMatrixValue.

ScaleValueПоложительное значение, которое задает коэффициент шкалы, используемый для возврата счета в произвольных модулях. Если информация матрицы скоринга также обеспечивает коэффициент шкалы, то используются оба.
GapOpenValueПоложительное целое число, которое задает штраф за открытие промежутка в выравнивании. По умолчанию это 8.
ExtendedGapValueПоложительное целое число, которое задает штраф за расширение промежутка. По умолчанию это равно GapOpenValue.

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

DВектор, который содержит биологические расстояния между каждой парой последовательностей, сохраненных в M элементы Seqs.

Описание

D = seqpdist(Seqs) возвращает Dвектор, содержащий биологические расстояния между каждой парой последовательностей, сохраненных в M последовательности Seqs, массив ячеек из последовательностей, вектор структур, матрица или последовательности.

D является 1-by- (M*(M-1)/2) Вектор-строка, соответствующий M*(M-1)/2 пары последовательностей в Seqs. Область выхода D размещается в порядке ((2,1),(3,1),..., (M,1),(3,2),...(M,2),...(M,M-1)). Это нижний-левый треугольник полного M-by- M матрица расстояний. Чтобы получить расстояние между Iи Jth-ые последовательности для I > J, используйте формулу D((J-1)*(M-J/2)+I-J).

D = seqpdist(Seqs, ...'PropertyName', PropertyValue, ...) вызывает seqpdist с необязательными свойствами, которые используют пары имя/значение свойства. Задайте одно или несколько свойств в любом порядке. Заключайте каждую PropertyName в одинарных кавычках. Каждый PropertyName является нечувствительным к регистру. Эти имена свойства/пары значения свойств следующие:

D = seqpdist(Seqs, ...'Method', MethodValue, ...) задает метод для вычисления расстояний между каждой парой последовательностей. Варианты показаны в следующих таблицах.

Методы для нуклеотидов и аминокислот

МетодОписание
p-distanceДоля сайтов, в которых две последовательности различны. p близок к 1 для плохо связанных последовательностей и p близок к 0 для аналогичных последовательностей.
d = p
Jukes-Cantor (по умолчанию)

Максимальная оценка правдоподобия количества замен между двумя последовательностями. p описывается методом p-distance.

Для нуклеотидов:

d = -3/4 log(1-p * 4/3)

Для аминокислот:

d = -19/20 log(1-p * 20/19)
alignment-scoreРасстояние (d) между двумя последовательностями (1, 2) вычисляется из парного счета выравнивания между двумя последовательностями (score12), и парный счет выравнивания между каждой последовательностью и самой собой (score11, score22) следующим образом:
d = (1-score12/score11)* (1-score12/score22)    
Эта опция не подразумевает, что предварительно выровненные входные последовательности будут выровнены, она только оценивает их. Использование с осторожностью; этот метод расстояния не соответствует ультраметрическому условию. В редком случае, когда счет между последовательностями больше, чем счет при выравнивании последовательности с собой, тогда d = 0

Методы без оценки погрешностей (только нуклеотиды)

МетодОписание
Tajima-NeiМаксимальная оценка правдоподобия с учетом фоновых частот нуклеотидов. Его можно вычислить из входа последовательностей или задать путем установки OptArgs на [gA gC gG gT]. gA, gC, gG, gT являются скалярными значениями для частот нуклеотидов.
KimuraРассматривает отдельно переходное нуклеотидное замещение и трансверсионное нуклеотидное замещение.
TamuraРассматривает отдельно переходное нуклеотидное замещение, трансверсионное нуклеотидное замещение и содержимое GC. GC- содержимого можно вычислить из входа последовательностей или задать OptArgs к пропорции содержимого GC (скалярное значение от 0 на 1).
HasegawaРассматривает отдельно переходное нуклеотидное замещение, трансверсионное нуклеотидное замещение и фоновые частоты нуклеотидов. Фоновые частоты могут быть вычислены из входных последовательностей или заданы путем установки OptArgs свойство к [gA gC gG gT].
Nei-TamuraРассматривает отдельно переходное нуклеотидное замещение между пуринами, переходное нуклеотидное замещение между пиримидинами, трансверсионное нуклеотидное замещение и фоновые частоты нуклеотидов. Фоновые частоты могут быть вычислены из входных последовательностей или заданы путем установки OptArgs свойство к [gA gC gG gT].

Методы без оценки пробелов (только аминокислоты)

МетодОписание
PoissonПринимает, что количество замен аминокислот в каждом сайте имеет распределение Пуассона.
GammaПринимает, что количество замен аминокислот в каждом сайте имеет распределение Гаммы с параметром a. Задайте a использование OptArgs свойство. По умолчанию это 2.

Можно также задать пользовательскую функцию расстояния с помощью @, для примера, @distfun. Функция расстояния должна иметь вид:

function D = distfun(S1, S2, OptArgsValue)

The distfun функция принимает следующие аргументы:

  • S1 , S2 - две последовательности одинаковой длины (нуклеотид или аминокислота).

  • OptArgsValue - необязательные аргументы, зависящие от проблемы.

The distfun функция возвращает скаляр, который представляет расстояние между S1 и S2.

D = seqpdist(Seqs, ...'Indels', IndelsValue, ...) задает, как обрабатывать сайты с пробелами. Варианты:

  • score (по умолчанию) - оценивает эти сайты либо как мутацию точки, либо с параметрами выравнивания, в зависимости от выбранного метода.

  • pairwise-del - Для каждого парного сравнения он игнорирует сайты с погрешностями.

  • complete-del - игнорирует все столбцы в нескольких выравниваниях, которые содержат зазор. Эта опция доступна, только если вы указали в качестве выравнивания несколько вход Seqs.

D = seqpdist(Seqs, ...'OptArgs', OptArgsValue, ...) передает один или несколько аргументов, требуемых или принятых методом расстояния, заданным Method свойство. Используйте вектор символов или массив ячеек, чтобы передать один или несколько входные параметры. Для примера предоставьте частоты нуклеотидов для Tajima-Nei метод расстояния, вместо вычисления их из входа последовательностей.

D = seqpdist(Seqs, ...'PairwiseAlignment', PairwiseAlignmentValue, ...) управляет глобальным парным выравниванием входа последовательностей (используя nwalign function), при этом игнорируя множественное выравнивание входных последовательностей (если таковые имеются). По умолчанию это:

  • true - Когда все входные последовательности имеют не одинаковую длину.

  • false - Когда все входные последовательности имеют одинаковую длину.

Совет

Если ваши входные последовательности имеют одинаковую длину, seqpdist предполагает, что они выровнены. Если они не выровнены, выполните одно из следующих действий:

  • Выровняйте последовательности перед их передачей так, чтобы они seqpdist, например, используя multialign функция.

  • Задайте PairwiseAlignment на true при использовании seqpdist.

D = seqpdist(Seqs, ...'UseParallel', UseParallelValue, ...) определяет, использовать ли parfor- циклы при вычислении парных расстояний. Когда true, и Parallel Computing Toolbox установлен и parpool открыт, расчет происходит параллельно. Если нет открытых parpool, но автоматическое создание включено в Parallel Preferences, пул по умолчанию будет автоматически открыт, а расчеты происходят параллельно. Если установлен Parallel Computing Toolbox, но нет открытых parpool и автоматическое создание отключено, затем в расчетах используются parfor-циклы в последовательном режиме. Если Parallel Computing Toolbox не установлен, то при расчетах используются parfor-циклы в последовательном режиме. По умолчанию это false, который использует петли for в последовательном режиме.

D = seqpdist(Seqs, ...'SquareForm', SquareFormValue ...) управляет преобразованием выхода в квадратную матрицу, так что D(I, J) обозначает расстояние между Iи J-я последовательность. Квадратная матрица симметрична и имеет нулевую диагональ. Варианты true или false (по умолчанию). Настройка Squareform на true совпадает с использованием squareform функция в Statistics and Machine Learning Toolbox™.

D = seqpdist(Seqs, ...'Alphabet', AlphabetValue, ...) задает тип последовательности (нуклеотид или аминокислота). Варианты 'NT' или 'AA' (по умолчанию).

Остальные входные свойства доступны, когда Method свойство равно 'alignment-score' или PairwiseAlignment свойство равно true.

D = seqpdist(Seqs, ...'ScoringMatrix', ScoringMatrixValue, ...) задает матрицу оценки для глобального парного выравнивания. По умолчанию это:

  • 'NUC44' - Когда AlphabetValue равен 'NT'.

  • 'BLOSUM50' - Когда AlphabetValue равен 'AA'.

D = seqpdist(Seqs, ...'Scale', ScaleValue, ...) задает масштабный коэффициент, используемый для возврата счета в произвольных модулях. Выбор является любым положительным значением. Если информация матрицы скоринга также обеспечивает коэффициент шкалы, то используются оба.

D = seqpdist(Seqs, ...'GapOpen', GapOpenValue, ...) определяет штраф за открытие зазора в выравнивании. Варианты являются любым положительным целым числом. По умолчанию это 8.

D = seqpdist(Seqs, ...'ExtendGap', ExtendGapValue, ...) определяет штраф за удлинение зазора в выравнивании. Варианты являются любым положительным целым числом. По умолчанию это равно GapOpenValue.

Примеры

  1. Считайте данные выравнивания аминокислот в структуру MATLAB.

    seqs = fastaread('pf00002.fa');
  2. Для каждой возможной пары последовательностей в множественном выравнивании игнорируйте сайты с погрешностями и оценивайте с помощью матрицы подсчета баллов PAM250.

    dist = seqpdist(seqs,'Method','alignment-score',...
                    'Indels','pairwise-delete',...
                    'ScoringMatrix','pam250');
  3. Принудительное преобразование каждой пары последовательностей, игнорирующее предоставленное несколько выравниваний.

    dist = seqpdist(seqs,'Method','alignment-score',...
                    'Indels','pairwise-delete',...
                    'ScoringMatrix','pam250',...
                    'PairwiseAlignment',true);
  4. Измерьте парные расстояния Юкса-Кантора после выравнивания каждой пары последовательностей, считая погрешности как точечные мутации.

    dist = seqpdist(seqs,'Method','jukes-cantor',...
                    'Indels','score',...
                    'Scoringmatrix','pam250',...
                    'PairwiseAlignment',true);

Расширенные возможности

Представлено до R2006a