Domanda:
Trovare la posizione e la lunghezza dell'unità di sequenze ripetitive all'interno di una lettura lunga
gringer
2017-06-02 07:48:05 UTC
view on stackexchange narkive permalink

Dopo aver scoperto alcune difficoltà con l'assemblaggio del genoma, mi sono interessato a trovare e classificare sequenze di DNA ripetitive, come questa da Nippostrongylus brasiliensis [ogni base è codificata a colori come A: verde; C: blu; G: giallo; T: red]:

Repeat sequence represented in a rectangular fashion Repeat sequence represented in a circular fashion

[È possibile trovare il file FASTA associato a questa sequenza qui]

Queste sequenze con grandi dimensioni di unità di ripetizione sono rilevabili (e assemblabili) solo usando letture lunghe (ad esempio PacBio, nanopore) perché qualsiasi sottosequenza inferiore alla lunghezza dell'unità non sarà in grado per distinguere tra errore di sequenza e colpire una posizione diversa all'interno della struttura di ripetizione. Ho monitorato queste sequenze in blocco con due metodi:

  1. Eseguendo una mappatura tutto contro tutto e cercando sequenze che si mappano su se stesse molte volte
  2. Eseguendo una compressione della sequenza (es. bzip2) e trovando sequenze che hanno un tasso di compressione sostanzialmente superiore al normale

Dopo aver trovato una sequenza sospetta, allora desidera essere in grado di classificare la ripetizione (ad esempio, lunghezza di ripetizione principale, numero di ripetizioni in tandem, sequenza ripetitiva). È qui che mi sto bloccando.

Per fare una dimostrazione "brillante, brillante", attualmente ho un processo molto manuale per ottenere queste sequenze in un formato che posso visualizzare. Il mio processo è il seguente:

  1. Usa LAST per produrre un diagramma a punti di auto-mappatura per la mappatura
  2. Identifica visivamente la regione ripetitiva ed estrai la regione dal sequenza
  3. Usa una combinazione di fold -w <width> e less -S per ispezionare visivamente la sequenza con varie larghezze di unità di ripetizione potenziali per trovare la più probabile dimensione dell'unità di ripetizione
  4. Visualizza la sequenza in modo rettangolare e circolare utilizzando il mio script, avvolgendo alla lunghezza dell'unità di ripetizione

Ma questo processo non è affatto fattibile quando ho migliaia di potenziali sequenze ripetitive da esplorare.

C'è un modo migliore per farlo? Data una sequenza di DNA arbitraria di lunghezza> 10kb, come posso (in modo automatico) trovare sia la posizione della regione di ripetizione, sia anche la lunghezza unitaria (tenendo presente che potrebbero esserci più strutture ripetute, con lunghezze unitarie da 30bp a 10 kb)?

Una sequenza di esempio può essere trovata qui, che ha una regione di ripetizione di ~ 21 kb con unità di ripetizione di ~ 171 bp a circa 1/3 del percorso nella sequenza.

Un'analisi basata su Kmer

Ora ho visto sequenze umane con regioni ripetitive superiori a 10 kb (cioè fuori dalla gamma di letture applicazioni). La mia idea attuale è incentrata sulla creazione di tabelle hash di brevi sequenze (attualmente 13 meri) e sul tracciamento della loro posizione:

  1. Elabora la sequenza, memorizzando la posizione di ogni kmer
  2. Per ogni kmer, scopri quante volte compare nella sequenza
  3. Per kmer ripetuti, scopri quanto spazio c'è tra la prossima volta che si verifica kmer
  4. Riporta la lunghezza del gap mediano e modale dei kmer ripetuti e le statistiche associate alla loro frequenza nella sequenza

Alcune regioni ripetitive locali potrebbero essere perse nelle statistiche con questo approccio, è difficile dire se ci sono più regioni ripetitive all'interno di una singola sequenza, e se le unità di ripetizione sono esse stesse leggermente ripetitive (abbastanza da duplicare un kmer all'interno di un'unità di ripetizione), l'algoritmo sotto-riporterà la ripetitività (vedi passaggio 3 ).

RepeatMasker ti aiuterebbe qui? O trova solo elementi ripetitivi noti e regioni di bassa complessità? Non ho mai provato a usarlo per identificare semplici ripetizioni.
Queste ripetizioni hanno unità di ripetizione ad alta complessità; Non ho trovato le regioni contrassegnate da tantan o polvere e sospetto che RepeatMasker sarà simile. Il servizio Web almeno non è in grado di trovare la regione di ripetizione nella sequenza di test che ho collegato.
Conosco [questo post del blog] (https://dazzlerblog.wordpress.com/2016/04/01/detecting-and-soft-masking-repeats/) da Gene Myers, dove sta usando la strategia di mascheramento delle ripetizioni nelle lunghe letture per accelerare l'assemblaggio del genoma. Non sono sicuro che sia esattamente quello che vuoi, ma ho pensato che potrebbe essere utile.
Grazie. TANmask (alla fine del post) assomiglia molto al tipo di algoritmo che sto cercando. Risolverà almeno il problema del contorno, se non la statistica della lunghezza unitaria di ripetizione. Puoi scriverlo come risposta?
Due risposte:
#1
+2
Sergio Arredondo
2017-06-02 19:20:35 UTC
view on stackexchange narkive permalink

Potrebbe essere un'idea frammentare le letture lunghe in piccole sequenze, come simulare letture Illumina di 150 bp, quindi mappare queste piccole sequenze rispetto alle letture lunghe originali ed estrarre regioni con una copertura elevata?

#2
+2
gringer
2018-09-04 16:09:01 UTC
view on stackexchange narkive permalink

Ho risolto la visualizzazione. Ecco tre rappresentazioni alternative di strutture ripetitive per la stessa sequenza:

Repeat patterns represented as a dotplot Repeat patterns represented as a linear "ripple" plot Repeat patterns represented as a semicircular "sunset" plot

Questi sono stati generati utilizzando lo stesso script R, richiamabile dalla riga di comando:

  $ repaver.r -style dotplot -prefix dotplot MAOA_chrX_43645715-43756016.fa $ repaver. r -style profile -prefix profile MAOA_chrX_43645715-43756016.fa $ repaver.r -style semicircular -prefix semi MAOA_chrX_43645715-43756016.fa  

Maggiori dettagli su questo sono nella presentazione Ho dato alla Queenstown Research Week, 2018. C'è anche un capitolo di eBook sottoposto a revisione paritaria in arrivo.

Questo è abbastanza veloce da poterlo eseguire sul genoma del nanoporo C. elegans in circa la metà un'ora, producendo questi grafici per ogni contig. Non ho un metodo per scorrere questa trama e scegliere la lunghezza di ripetizione dominante in ogni posizione, ma questa è un'estensione [relativamente] semplice di ciò che ho già fatto.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...