Par de alinhamento de sequências nucleotídicas usando o máximo de correspondências exatas
Abordagem
Nas nossas algoritmo proposto, o primeiro passo para o alinhamento de sequências é extrair MEMs entre sequências por comparação directa entre eles. A figura 3a é um exemplo que compara um alvo e uma sequência de consultas em que o CTC e o AAA são dois MEMs identificados pela comparação. Cada grupo de símbolos idênticos contínuos na comparação, resulta em um MEM mesmo que seja composto de apenas um único símbolo correspondente., A fim de extrair todos os MEMs entre as sequências, a sequência de consulta deve ser deslocada todo o caminho para a direita e para a esquerda um símbolo de cada vez(ver Fig. 3b). Após cada turno, o passo de comparação deve ser repetido para identificar novos MEMs. Por exemplo, a terceira linha na Fig. 3b representa o caso em que a sequência de consulta é deslocada para o símbolo um direito e é comparado com a sequência alvo. O resultado da comparação identifica a AAAAGC como uma nova MEM. Todos os outros MEMs extraídos por shift e operações de comparação também são destacados na Fig. 3b., Três das MEMs (MX,My e Mz) são destacadas com cores diferentes para serem usadas para explicações posteriores.
MEM extraction using shift and compare operations. a Identify MEMs by direct comparison of sequences. b a consulta é deslocada para a esquerda até que o último símbolo na sequência de consulta é alinhado com o primeiro símbolo na sequência de destino. Em seguida, a sequência de consulta é deslocada para a direita até que o primeiro símbolo na sequência de consulta é alinhado com o último símbolo da sequência alvo., Após cada turno, a parte sobreposta da consulta e as sequências alvo são comparadas para identificar novos MEMs. Três dos MEMs (Mx, My e Mz) são realçados com cores diferentes a serem usadas para a explicação posterior
no modelo de pontuação affine-gap, a pontuação de alinhamento é calculada usando Eq., 1 onde Nm é o número de jogos que cada um recebendo uma pontuação de Rm,Nx é o número de desfasamentos de cada um recebendo uma incompatibilidade pena de Px,N é o número de aberturas aberturas de cada um recebendo uma lacuna aberta pena de Po e Ng é o comprimento total de todos os espaços, cada lacuna receber uma lacuna extensão pena de Pg. Haveria uma abertura para cada grupo de abertura contínua. Por exemplo, se há duas aberturas no alinhamento, onde o comprimento da primeira abertura é de três e o comprimento da segunda abertura é de quatro, então há duas aberturas de abertura (No=2) e o comprimento total da abertura é de sete (Ng=3+4=7).,
Dada a lista de todos os MEMs, o alinhamento pode ser calculado usando parcial alinhamentos. Por exemplo, considere MEMs MX, My e Mz em Fig. 3b.os alinhamentos parciais feitos tomando diferentes combinações de Mx, My e Mz, juntamente com o número de partidas, desfasamentos e lacunas, bem como as pontuações de alinhamento resultantes são mostrados na Fig. 4. O alinhamento que só inclui Mx e Mz resulta na maior pontuação de alinhamento., Note que, My e Mz se sobrepõem e quando ambos são considerados no mesmo alinhamento a sobreposição é excluída da Mz. Considerando todos os MEMs na Fig. 3b resulta em muitas mais combinações onde nenhum deles atinge uma pontuação mais elevada.
Todas as combinações possíveis de MEMs no alinhamento
Examinando todas as combinações possíveis de MEMs seria exaustiva., Na seção” algoritmo de alinhamento ” descrevemos um algoritmo de programação dinâmica Novo DP-MEM que eficientemente Encontra a melhor combinação sem considerar todos os casos. DP-MEM precisa saber quais partes das sequências correspondem, mas não os símbolos reais nas sequências. A entrada para DP-MEM é o posicionamento de MEMs no alvo e nas sequências de consulta que são obtidas durante o processo de extração MEM descrito na seção “extração MEM”., Como os MEMs são representados com suas posições e como o número de correspondências, desfasamentos e lacunas são computados quando os MEMs são combinados em um alinhamento são explicados no restante desta seção. A figura 5 é outro exemplo de alinhamento com seis MEMs (M1 a M6) que formam o alinhamento entre a sequência de destino T e a sequência de consulta Q. para simplificar, não há sobreposição entre MEMs neste exemplo. Cada MEM Mi é representado como um tripleto de números inteiros: as posições iniciais em T E Em Q (STi e SQi respectivamente) e seu comprimento (Li)., As posições finais em T e em Q podem ser computadas mais tarde (Φ2E do algoritmo 2). A tabela 1 indica o comprimento e a posição de M1 a M6 em T e em Q.
Um exemplo de alinhamento com destaque MEM
No caso de haver ambos desfasamentos e lacunas entre Mi e Mj, todas as lacunas são consideradas contínuas para reduzir a diferença de penalidade aberta (apenas uma diferença de penalidade aberta é aplicada para uma diferença contínua). Assim, para todos os MEMs adjacentes que têm lacunas entre eles, apenas é aplicada uma penalidade aberta., A colocação de desfasamentos e a única lacuna contínua não é importante, pois não afetaria a pontuação de alinhamento. Assumimos que a pena de desajustamento é constante (isto é normal para sequências de ADN).
mem extraction
There are methods to extract maximal exact matches between lengthy sequences such as an entire genome. No entanto, estes métodos baseiam-se no pré-processamento e indexação de uma ou ambas as sequências, o que é uma operação demorada. Por exemplo, em DNA read aligner, o genoma de referência é indexado uma vez, e o mesmo índice é usado cada vez que uma nova leitura é alinhada., Estamos à procura de um algoritmo rápido para identificar MEMs entre sequências relativamente curtas que mudam para cada alinhamento. Um método de Força bruta para este problema (arquivo adicional 1: Seção II) é lento e ineficiente(com a complexidade de O (n3)). Propomos um método paralelo rápido de nível bit para acelerar o processo de extração MEM. Nosso método de extração MEM é baseado na mudança e comparar as operações mostradas na Fig. 3b. o primeiro passo é representar sequências com vetores de bits, onde A, C, T e G são codificados como 00, 01, 10 e 11, respectivamente (ficheiro adicional 1: Secção III)., A figura 6 ilustra um par de sequências de exemplo, juntamente com as representações bit-vector correspondentes. Em um computador commodity, a palavra máquina é geralmente 64 bits que podem acomodar 32 símbolos nucleotídeos. Uma vez que uma sequência é geralmente maior que 32 Símbolos, o bit-vector correspondente é armazenado em múltiplas palavras da máquina. Cada operação em vetores de bits de sequências de tamanho n de símbolos actua em \(\laceil \frac {n}{32} \rceil \) palavras da máquina.
a Representação de sequências de bits-vetores. Saída do XOR (X) com MEMs realçados. Bordas de bits do vetor (E) identifica o início e o fim de cada MEMs
Com bit-vetores de representação de sequências, deslocando uma seqüência de um símbolo é o mesmo que mudar o bit-vetor de dois bits, e a comparação de seqüências pode ser feito com a instrução XOR (32 símbolos de cada vez). Na saída XOR (X), 00 significa que os símbolos são correspondidos, e uma sequência de 00s mostra um MEM., Um conjunto de operações de shift e bitwise como mostrado no algoritmo 1 calcula X e subsequentemente o bit-vector de aresta (E) no qual o início e o fim de cada MEM são realçados com bits de set (bits com um valor de um). A figura 6 mostra os vetores de bits X e E com MEMs realçados. O posicionamento dos MEMs em sequências é então calculado a partir do bit-vector da aresta (ficheiro adicional 1: Secção IV).,
algoritmo de Alinhamento
Em “Abordagem” a seção, nós mostrar-se que, considerando diferentes combinações de MEMs e de computação o alinhamento pontuação correspondente ao alinhamento, pode-se identificar a combinação de MEMs que resulta no máximo alinhamento de pontuação. No entanto, examinar toda a combinação possível de MEMs é uma solução ingênua. Uma maneira mais sistemática de encontrar o alinhamento eficientemente é usar programação dinâmica.
Programação Dinâmica é o método de abordar a solução para um problema, definindo e resolvendo problemas menores., Soluções para subproblemas são usadas para resolver um problema maior a cada passo. O processo é repetido até que todos os subproblemas sejam resolvidos. Eventualmente, a solução para um dos subproblemas seria a solução para o problema inicial. Quando todos os subproblemas são resolvidos um processo de backtracking identifica uma série de soluções que contribuem para a solução final. Na programação dinâmica, deve haver uma ordenação dos dados de entrada ao longo dos quais o procedimento de recursão prossegue.
ordenamos todos os MEMs de acordo com a posição da sua sequência de consulta Final (EQ)., Os MEMs que terminam na mesma posição são ordenados de forma arbitrária. O subproblema J é encontrar o alinhamento das subseqüências de T E Q que terminam em JTH MEM Mj (T E Q respectivamente). Vamos mostrar que esta ordenação do MEM é suficiente para suportar a recursão correta.
na lista ordenada de MEMs, EQi=EQj indica que um dos Mi ou Mj sobrepõe-se completamente ao outro MEM na sequência da consulta. Uma vez que em Φ2B do algoritmo 2 a região de sobreposição é excluída, Mi e Mj não podem estar no mesmo alinhamento., Assim, os subproblemas ith e jth são resolvidos independentemente uns dos outros e a ordem de i E j na lista ordenada pode ser arbitrária. Se EQk>EQj (k>j na lista ordenada), Mk não poderia ser uma parte do alinhamento que termina em Mj. Assim, os subproblemas jth podem ser resolvidos independentemente da solução para o subproblema kth. Note que também é possível classificar MEMs com base na sua posição final na sequência-alvo (ET) usando uma justificação semelhante.
nosso algoritmo de programação dinâmica proposto (DP-MEM) é elaborado no algoritmo 2., Por exemplo, MEMs extraídos na Fig. 3b, a tabela de programação dinâmica e o valor intermédio calculados no algoritmo são apresentados nos figos. 7 e 8, respectivamente. A entrada para DP-MEM é a lista de MEMs onde cada MEM (Mj) é um tripleto de inteiros . A segunda entrada n é o número de MEMs na lista. A saída S é a pontuação de alinhamento para as sequências. O algoritmo imprime os índices de todos os MEMs que formam o alinhamento onde o primeiro e o último números impressos são os índices do mais à direita e do mais à esquerda no alinhamento, respectivamente., Todas as etapas do algoritmo 2 são comentadas do seguinte modo:
Dynamic programming table used in Algorithm 2 to process extracted MEMs in Fig. 3b. as células I E j representam o valor de \(S_{i}^j}\). As células vazias não são avaliadas em Φ2. A avaliação das células com marcação cruzada é ignorada em Φ2A. o valor inicial de Sj é calculado em Φ1. O valor Final de Sj e sua fonte (o que maximiza Sj) são realçados para cada linha. O SJ mais alto (S13) é a pontuação de alinhamento., O M13 é o último MEM no alinhamento e o MEM antes do MW = M3. Desde W=-1,M3 é o primeiro MEM no alinhamento. O sistema de pontuação para esse alinhamento é o Rm=2,Px=3,Po=4 e Pe=1