Velvet assembler - Velvet assembler
Vývojáři | Daniel Zerbino,[1] Ewan Birney |
---|---|
První vydání | 2008 |
Stabilní uvolnění | 1.2.10 |
Operační systém | Unixový |
K dispozici v | C |
Typ | Bioinformatika |
Licence | GPL |
webová stránka | www |
Samet je balíček algoritmů, který byl navržen pro řešení de novo shromáždění genomu a krátké čtení sekvenční zarovnání. Toho je dosaženo manipulací s de Bruijn grafy pro sestavení genomové sekvence odstraněním chyb a zjednodušením opakovaných oblastí.[2] Velvet byl také implementován v komerčních balíčcích, jako je Sequencher, Geniální, MacVector a BioNumerika.
Úvod
Vývoj sekvencery nové generace (NGS) umožnil zvýšení efektivity nákladů při velmi krátkém sekvenování čtení. Manipulace s de Bruijnskými grafy jako metodou zarovnání se stala realističtější, ale k řešení problémů s chybami a opakováním bylo zapotřebí dalšího vývoje.[3] To vedlo k vývoji sametu Danielem Zerbinem a Ewan Birney na Evropský bioinformatický institut ve Velké Británii.[4]
Velvet funguje tak, že efektivně manipuluje de Bruijnovy grafy prostřednictvím zjednodušení a komprese, aniž by došlo ke ztrátě informací o grafu, konvergováním neprotínajících se cest do jednotlivých uzlů. Eliminuje chyby a řeší opakování tak, že nejprve použije algoritmus opravy chyb, který sloučí sekvence dohromady. Opakování se poté ze sekvence odstraní pomocí řešiče opakování, který odděluje cesty, které sdílejí místní překrytí.
Kombinace krátkých čtení a párů čtení umožňuje Velvetu rozlišovat malá opakování a produkovat kontigy přiměřené délky. Tato aplikace Velvet může produkovat kontigy s a N50 délka 50 kb na spárovaném konci prokaryotický data a délka 3 kB pro regiony savčí data.
Algoritmus
Jak již bylo zmíněno, Velvet používá de Bruijnův graf k sestavení krátkých čtení. Přesněji, Velvet představuje každý jiný k-mer získané z načtení jedinečným uzlem v grafu. Dva uzly jsou spojeny, pokud se jeho k-členy překrývají k-1. Jinými slovy, oblouk z uzlu A do uzlu B existuje, pokud jsou poslední k-1 znaky k-mer, reprezentované A, prvními k-1 znaky k-mer reprezentovanými B. Následující obrázek ukazuje příklad grafu de Bruijn generovaného Velvetem:
Stejný proces se provádí současně s reverzní doplněk všech k-merů, aby vzaly v úvahu překrývání mezi čtením opačných řetězců. V grafu, který zahrnuje zjednodušení a odstranění chyb, lze provést řadu optimalizací.
Zjednodušení
Snadný způsob, jak ušetřit náklady na paměť, je sloučit uzly, které nemají vliv na cestu generovanou v grafu, tj. Kdykoli má uzel A pouze jeden odchozí oblouk, který ukazuje na uzel B, pouze s jedním příchozím obloukem, uzly lze sloučit . Je možné reprezentovat oba uzly jako jeden, sloučit je a všechny jejich informace dohromady. Následující obrázek ilustruje tento proces zjednodušením původního příkladu.
Odebrání chyby
Chyby v grafu mohou být způsobeny procesem sekvenování nebo to může být jednoduše to, že biologický vzorek obsahuje některé chyby (například polymorfismy ). Velvet rozpoznává tři druhy chyb: tipy; bubliny; a chybná spojení.
Tipy
Uzel je považován za špičku a měl by být vymazán, pokud je odpojen na jednom ze svých konců, délka informací uložených v uzlu je kratší než 2k a oblouk vedoucí k tomuto uzlu má nízkou multiplicitu (kolikrát oblouk byl nalezen během konstrukce grafu) a ve výsledku jej nelze srovnávat s jinými alternativními cestami. Jakmile jsou tyto chyby odstraněny, graf opět prochází zjednodušením.
Bubliny
Bubliny jsou generovány, když dvě odlišné cesty začínají a končí ve stejných uzlech. Bubliny jsou obvykle způsobeny chybami nebo biologickými variantami. Tyto chyby jsou odstraněny pomocí algoritmu Tour Bus, který je podobný a Dijkstrův algoritmus, a vyhledávání na šířku který detekuje nejlepší cestu, kterou má následovat, a určuje, které z nich by měly být vymazány. Jednoduchý příklad je znázorněn na obrázku 4.
Tento proces je také znázorněn na obrázku 5 navazujícím na příklady zobrazené na obrázcích 1 a 2.
Chybná připojení
Jedná se o připojení, která negenerují správné cesty nebo nevytvářejí žádné rozpoznatelné struktury v grafu. Velvet vymaže tyto chyby po dokončení algoritmu Tour Bus a použije jednoduché omezení pokrytí, které musí být definováno uživatelem.
Velvet příkazy
Velvet poskytuje následující funkce:
- samet
- Tento příkaz pomáhá sestavit datovou sadu (hash čtení) pro samet a obsahuje informace o významu jednotlivých souborů sekvencí.
- samet
- Tento příkaz vytvoří de Bruijnův graf z k-merů získaných sametem a provede zjednodušení a opravu chyb v grafu. Poté extrahuje kontigy.
Po spuštění sametu je vygenerováno několik souborů. Nejdůležitější je, že soubor kontigů obsahuje sekvence kontigů delší než 2k, kde k je délka slova použitá v sametu.
Další podrobnosti a příklady viz Sametový manuál [5]
Motivace
Na základě toho jsou omezeny současné technologie sekvenování DNA, včetně NGS genomy jsou mnohem větší než jakákoli délka čtení. NGS obvykle pracují s malými čteními, méně než 400 bp a mají mnohem nižší náklady na čtení než předchozí stroje první generace. Jsou také jednodušší na provoz s vyšším paralelním provozem a vyšším výnosem.[3]
Krátká čtení však obsahují méně informací než větší čtení, což vyžaduje vyšší pokrytí čtení sestavením, aby bylo možné zjistit překrytí. To zase zvyšuje složitost sekvenování a významně zvyšuje výpočetní požadavky. Větší počet čtení také zvětšuje velikost překrývajícího se grafu, což ztěžuje a prodlužuje výpočet. Spojení mezi čteními jsou nejasná kvůli snížení překrývajících se částí, což vede k větší možnosti chyb.
K překonání těchto problémů byly vyvinuty programy dynamického řazení, které jsou efektivní, vysoce nákladově efektivní a schopné řešit chyby a opakování. Pro tento účel byly navrženy sametové algoritmy, které jsou schopny provádět zarovnání sekvencí krátkého čtení de novo v relativně krátkém výpočetním čase a při nižším využití paměti ve srovnání s jinými assemblery.[6]
Grafické rozhraní
Jednou z hlavních nevýhod použití Velvetu je použití rozhraní příkazového řádku a potíže, s nimiž se uživatelé, zejména začátečníci, potýkají při implementaci svých dat. V roce 2012 bylo vyvinuto grafické uživatelské rozhraní pro Velvet assembler, jehož cílem je překonat tento problém a zjednodušit provoz Velvet[7].
Viz také
Reference
- ^ Zerbino, D. R. (2010). „Používání Velvetde novo Assembler for Short-Read Sequencing Technologies ". In Andreas D. Baxevanis (ed.). Používání assembleru Velvet de novo pro technologie sekvenování krátkého čtení. str. Jednotka 11.5. doi:10.1002 / 0471250953.bi1105s31. ISBN 0471250953. PMC 2952100. PMID 20836074.
- ^ Zerbino, D. R .; Birney, E. (2008). „Velvet: de novo assembly using very short reads“. Citováno 2013-10-18.
- ^ A b Miller, J. R .; Koren, S; Sutton, G (2010). "Algoritmy sestavení pro data sekvenování nové generace". Genomika. 95 (6): 315–27. doi:10.1016 / j.ygeno.2010.03.001. PMC 2874646. PMID 20211242.
- ^ Zerbino, D.R .; Birney, E. (2008). „Velvet: Algorithms for de novo short read assembly using de Bruijn graphs“. Výzkum genomu. 18 (5): 821–829. doi:10.1101 / gr.074492.107. PMC 2336801. PMID 18349386.
- ^ „Velvet Manual“ Citováno 2013-10-18
- ^ Zhang, W .; Chen, J .; Yang, Y .; Tang, Y .; Shang, J .; Shen, B. (2011). „Praktické srovnání softwarových nástrojů pro montáž genomu de Novo pro technologie sekvenování nové generace“. PLOS ONE. 6 (3): e17915. doi:10.1371 / journal.pone.0017915. PMC 3056720. PMID 21423806.
- ^ Powell, D. R.; Seemann, T (2013). „VAGUE: Grafické uživatelské rozhraní pro Velvet assembler“. Bioinformatika. 29 (2): 264–5. doi:10.1093 / bioinformatika / bts664. PMID 23162059.