Как получить попарно «показатель сходства последовательностей» для ~ 1000 белков? - PullRequest
7 голосов
/ 30 июня 2011

У меня есть большое количество белковых последовательностей в формате fasta.

Я хочу получить оценку подобия парных последовательностей для каждой пары белков.

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

Ответы [ 2 ]

11 голосов
/ 30 июня 2011

Согласно предложению Чейза, bioconductor - это действительно путь, в частности пакет Biostrings.Для установки последнего я бы предложил установить базовую библиотеку bioconductor следующим образом:

source("http://bioconductor.org/biocLite.R")
biocLite()

Таким образом, вы охватите все зависимости.Теперь, чтобы выровнять 2 последовательности белка или любые две последовательности по этому вопросу, вам нужно будет использовать pairwiseAlignment из Biostrings.Имеется файл fasta protseq.fasta из 2 последовательностей, который выглядит следующим образом:

>protein1
MYRALRLLARSRPLVRAPAAALASAPGLGGAAVPSFWPPNAAR
MASQNSFRIEYDTFGELKVPNDKYYGAQTVRSTMNFKIGGVTE
RMPTPVIKAFGILKRAAAEVNQDYGLDPKIANAIMKAADEVAE
GKLNDHFPLVVWQTGSGTQTNMNVNEVISNRAIEMLGGELGSK
IPVHPNDHVNKSQ
>protein2
MRSRPAGPALLLLLLFLGAAESVRRAQPPRRYTPDWPSLDSRP
LPAWFDEAKFGVFIHWGVFSVPAWGSEWFWWHWQGEGRPYQRF
MRDNYPPGFSYADFGPQFTARFFHPEEWADLFQAAGAKYVVLT
TKHHEGFTNW*

Если вы хотите глобально выровнять эти 2 последовательности, используя, скажем, BLOSUM100 в качестве матрицы замещения, 0 штраф за открытие пробела и5 для расширения, затем:

require("Biostrings")
data(BLOSUM100)
seqs <- readFASTA("~/Desktop/protseq.fasta", strip.descs=TRUE)
alm <- pairwiseAlignment(seqs[[1]]$seq, seqs[[2]]$seq, substitutionMatrix=BLOSUM100, gapOpening=0, gapExtension=-5)

Результат этого (убрал часть выравнивания для экономии места):

> alm
Global PairwiseAlignedFixedSubject (1 of 1)
pattern: [1] MYRALRLLARSRPLVRA-PAAALAS....
subject: [1] M-R-------SRP---AGPALLLLL.... 
score: -91

Чтобы извлечь только баллы для каждого выравнивания:

> score(alm)
[1] -91

Учитывая это, вы теперь можете легко выполнить все попарные выравнивания с помощью некоторой очень простой зацикливающейся логики.Чтобы лучше понять парное выравнивание, используя bioconductor, я предлагаю вам прочитать this .

Альтернативным подходом было бы выполнить выравнивание нескольких последовательностей, а не попарно.Вы можете использовать bio3d и оттуда функцию seqaln для выравнивания всех последовательностей в вашем файле fasta.

0 голосов
/ 16 июля 2017

6 лет спустя, но:

Только что вышел пакет protr, который имеет распараллеленную попарно оценочную функцию подобия parGOsim().Он может принимать списки белковых последовательностей, поэтому в цикле писать не нужно.

...