Kérdés:
Annotation formatervezés
Daniel Standage
2017-06-08 12:06:30 UTC
view on stackexchange narkive permalink

A fájlformátumok elrontása a bioinformatika egyik kedvelt időtöltése, és úgy tűnik, hogy az annotációs fájlformátumok, például a GFF és a BED különös figyelmet kapnak. Sok ilyen csalódás abból adódik, hogy a közösség megdöbbentően következetlenül betartotta a specifikációkat és konvenciókat, de ezekben a formátumokban is akad néhány (merem objektíven mondani) problémás tervezési lehetőség.

  • GFF (és gyakoribb származékai, a GTF és a GFF3) 1 alapú zárt intervallum jelölést használnak, amely optimalizálja az emberi megértést, de messze elmarad a 0 alapú félig nyitott intervallum jelölésektől (például a BED által használt) az intervallum számtanával járó számításokhoz. / p>

  • Bár a BED-et és a GTF-et nagyon specifikus felhasználási esetekre tervezték (vizualizáció és génpredikció), ezeket sokkal szélesebb kontextusban használták és használták vissza. Például a vastag rész hez kapcsolódó BED mezők nem relevánsak, ha nem genom böngészőben ábrázolja őket.

  • A BED egyetlen a funkció lebontásának szintje (egy tulajdonság blokkokra bontható). A GTF két szintet támogat (az exonokat transzkript_azonosító, a transzkriptumokat gén_azonosító szerint csoportosítva). Ezzel szemben a GFF3 tetszőleges számú szintet támogat, és az ID és a Parent attribútumok által meghatározott szülő / gyermek kapcsolatokat használja a szolgáltatások irányított aciklikus grafikonjának deklarálásához.

  • Azokat az adatokat, amelyek nem illeszkednek a kötelező, előre meghatározott mezőkbe, opcionális mezőkbe vagy szabad formátumú attribútumkulcs / érték párokba kell helyezni. Bár ez a rugalmasság hatalmas, általános panasz az, hogy "minden művelet" ezeken az opcionális / szabad formátumú mezőkön történik.

  • Van egy kevés validációs eszköz, és a létező eszközök elsősorban a szintaxis és nem a szemantika érvényesítésére összpontosítanak. Az öregedési analógia használatához egy dolog azt mondani, hogy egy XML fájl érvényes, de teljesen más, ha azt egy séma alapján érvényesítjük. Lényegében nincsenek olyan széles körben használt eszközök, amelyek ez utóbbiakat használnák az annotációs fájlokhoz.

Ha egy új annotációs formátum létrehozását bízták meg velünk, és ha garantálták az ehhez szükséges erőforrásokat, fejlesztése, valamint a szélesebb közösség iránti érdeklődés és széles körű elfogadás (álmodni lehet!), milyen tervezési kritériumokat kell figyelembe venni ennek az új formátumnak a kidolgozása során? Mi teszi objektíven jó kommentár adatformátumot, ha van ilyen?

Csak a genomiális jellemzőket leíró formátumra kérdez? Az "kommentár" nagyon tág kifejezés, de úgy tűnik, hogy itt csak a genomi régiókat veszi figyelembe, vagy legalábbis olyan dolgokat, amelyeknek i) meghatározott "régiója" és ii) meghatározott "funkciója" van. Ez még mindig kizárná a fehérjék fenotípus-jelöléseit vagy a gének GI-jelöléseit. Meg tudná [szerkeszteni] és tisztázni, hogy milyen "annotációkat" fontolgat?
Az autoSql BED-koncepciója egy nagyon szép tulajdonság egy annotációs formátumhoz, és sok kibővíthetőséget tesz lehetővé. A vonáshierarchia fogalma mégis alapvetően egyszintű
Négy válaszokat:
Devon Ryan
2017-06-08 12:18:14 UTC
view on stackexchange narkive permalink

Feltételezve, hogy az "ember által olvasható", a "könnyen értelmezhető" és a "gyorsan lekérdezhető" elemeket objektíven jó tulajdonságoknak tekintjük (és ha nem, akkor aggódom a jövő miatt):

  1. Szöveg- alapú: Abszurd módon gyakori, hogy a grep vagy az awk elemeket szeretné használni a kommentárokban. Persze lehetne ezeknek bináris formátumú változatait ismerni, de miért kellene újból feltalálni a kereket. Természetesen a szöveges fájlok nem engedik meg a tartalmuk régióalapú lekérdezését, így tovább a 2. pontra ...
    • Ennek kifejezetten vonal-alapúnak kell lennie. A mezőket tabulátorral kell elválasztani (ideális esetben az ascii rekord elválasztó karaktert használja, de attól tartok, hogy a hajó már régen hajózott).
  2. Szigorúan meghatározott sorrend: Ez az egyik személyes kedvencem a BED / GFF / GTF fájlokkal kapcsolatban. Ha szöveges kommentár formátumot szeretne készíteni, mindenki előrébb kerül, ha az említett formátum egyértelművé teszi, hogy rendezni kell. Ez lehetővé teszi például a tabix használatát, így a "lekérdez egy régiót" probléma megoldódik. De ennél tovább mennék. A GFF-hez hasonló kérdés az, hogy több, egymástól függő vonal létezik, és nincs szigorú szabály arra vonatkozóan, hogy a szülői vonalnak feltétlenül a gyermeksor elé kell-e kerülnie. Ez csak rémálommá teszi a dolgok végrehajtását, és egy véletlenszerűen rendezett fájl gyakran csak széttöri az eszközöket. Mivel a GTF vagy GFF stílusú, egymástól függő vonalak valószínűleg minden kommentárformátum működését mutatják, ezt az azonos kezdő pozícióval rendelkező sorok közötti sorrendet a formátumban kell egyértelművé tenni.
Az 1. ponttal kapcsolatban kiegészítenék egy "vonal-alapú" további követelményt, nem csak "szöveg-alapú". Könnyebb manipulálni azt is, ha az összes információt tabulátorral elválasztott oszlopokba rendezik, de ez csökkentheti a rugalmasságot ahhoz képest, ami jelenleg engedélyezett a gff formátumú attribútum oszlopban.
@bli Kiváló javaslat! Megjegyeztem ezt. A rugalmasság kétélű kard; miután szinte bármit megtehet, nem megbízhatóan függ a formátumtól :(
Nem jöttem rá, hogy létezik rekordelválasztó ASCII karakter. Úgy gondolom, hogy a lapnak az az érdeme, hogy a fájlokat emberileg olvashatóbbá teszi (a jelenlegi szöveges számítástechnikai eszközökkel).
Őszintén szólva nem vagyok biztos abban, hogy az emberi olvashatóság a jóság objektív kritériuma. Valójában úgy tűnik, hogy akadályozza, így * legalább * érvet kell hozni a kompromisszum mellett.
@KonradRudolph Biztos, hogy az összes tabix megoldás megkerülhetőnek tekinthető az "ember által olvasható" részen.
Konrad Rudolph
2017-06-08 19:32:08 UTC
view on stackexchange narkive permalink

A probléma az, hogy a GFF alapvetően relációs formátum: olyan címkéket biztosít, amelyek az egyes sorokat egymás elleni kapcsolatokon keresztül (pl. gén – exon) kapcsolják össze. Ez közvetett módon kiemeli a második bonyodalmat: az egyes sorok különböző típusúak, ezért különböző attribútumokat tárolnak a 9. oszlopban.

Az elmúlt évtizedekben (!) Rengeteg elméletet és eszközt gyűjtöttünk a munkához. ilyen adatokkal. A szokásos megoldás pedig egy adatbázis-séma létrehozása egy relációs adatbázis számára, valamint az adatbázis-illesztőprogramok és az adatbázis-lekérdezési nyelvek használata (pl. SQL, de egyre inkább olyan adat-relációs leképezők is, mint a LINQ és a dplyr). a szöveges formátum sok okból vonzó, amelyeket Devon említ, de alapvetően ellentmond a relációs adatok sok elméletének és eszközének. Ez impedancia eltérést eredményez.

Meggyőződésem, hogy hosszú távon a megoldást a relációs adatbázisok komplex annotációkhoz történő felhasználása jelenti. Azt mondom, hogy „visszavonás” annak ellenére, hogy ezek az adatbázisok már léteznek, a bioinformatikusok napi munkájában egyszerűen figyelmen kívül hagyják őket ( soha nem használom őket). Mert objektíven ez a legjobb technikai megoldás, és ezt alátámasztó kutatások állnak rendelkezésünkre.

Gondolom, amíg az ember csak nagyon egyszerű dolgokat végez az annotációs információkkal, addig valaki (= én) elégedett a vonalas alapú formátummal, amelyet közös parancssori eszközökkel lehet feldolgozni. Az Ön álláspontja azonban érdekes, és úgy tűnik, sokkal jobban megértette ezeket a kérdéseket, mint én. Megpróbálok legalább képet adni arról, hogy mi az "impedancia eltérése".
Teljesen egyetértek, a lapos fájlok nem jelentik az utat a bonyolult adatstruktúrák számára, bár én vagyok bűnös ebben. Van valami gondolata az SQL és a NoSQL kapcsán?
@Chris_Rands Nincs tapasztalatom a NoSQL-mel való együttműködésről, de mivel az itt szereplő adatok kifejezetten * relációsak, nem hiszem, hogy a NoSQL kínálna konkrét előnyöket.
Inkább "nosql" -nek tűnik, nem pedig relációsnak bizonyos esetekben. Csak nézze meg azt a rendetlenséget, amelyet Chado folytat, több száz "összekapcsoló táblával"
user172818
2017-06-08 20:49:51 UTC
view on stackexchange narkive permalink

Nagyon szeretem a BED-et és a GFF3-at (a GTF / GFF2-t viszont nem szeretem). Szövegalapú formátumokként nem hiszem, hogy sok fejlődési lehetőséget hagynának számunkra. Egyébként, ha új formátumot szeretne, itt van egy. Az alábbiakban a GFF3 és a BED hibridje látható. Ez egy TAB-elhatárolt szöveges formátum, a következő mezőkkel:

  1. chr, kötelező
  2. start (0-alapú), kötelező
  3. vége, kötelező
  4. szál
  5. azonosító
  6. típusa (lásd alább)

A BED-hez hasonlóan csak az első 3 oszlop szükségesek, a többi opcionális. Ami más, a "type" mezővel kezdődik, mint a GFF-ben. Ez a "típus", ha van, meghatározza az azt követő oszlopokat. Például, ha type == kódolás, akkor lehet cdsStart, cdsEnd, blockCount, blockSizes és blockStarts, mint a BED; ha type == exon, akkor a 7. oszlop lehet egy "fázis", jelezve az első bázis fázisát. Így a "type" teszi ezt a formátumot nagyon kibővíthetővé, ugyanakkor viszonylag könnyen elemezhetővé az opcionális címkék teljes használatához képest. Ezenkívül lehet, hogy az egyes sorok végén féligbél elválasztott "kulcs" = "érték" párok vannak, mint a GFF3-ban. Példa:

  chr1 10000 50000 - x1 kódolás 10100 40800 2 1000,2000 10000,48000chr1 10000 11000 - * exon * foo1 = bar1; foo2 = bar2chr1 48000 50000 - * exon 2chr2 10000 50000  kód> 

A fentiek csak csupasz formát adnak. Finom kérdések vannak, például: 1) az azonosítás egyedisége / hatóköre; 2) van-e rögzített mezőként vagy típus-specifikus mezőként szülőazonosító; 3) hová kell tenni a megjelenített nevet; 4) rendezési sorrend. Ezek fontosak a gyakorlatban is. A formátumok hasznosak a sorosításhoz és az adatátvitelhez. Kevesebb készségre van szükségük a munkavégzéshez és kevesebb szoftver / hardver erőforrás telepítéséhez. A formátumok gondosan megtervezett bináris ábrázolása sok felhasználási esetben sokkal hatékonyabb lehet.

John Longinotto
2017-06-09 03:09:14 UTC
view on stackexchange narkive permalink

Csak eldobni ezt, mivel a legjobb dolgok már elhangzottak, de miért kell meghatározni a bioinformatikai adatformátum szigorú specifikációját? Ahogy mondod, általában az történik, hogy minden művelet az opcionális mezőkbe kerül.

Sok mindent el lehet mondani a libertariánus értékekért, ha csak hagyod, hogy az emberek maguk találják ki. Vegye ki az opcionális mezőket a BAM tag specifikációban. például. Itt lehet saját címkéje, de ezeknek „X”, „Y” vagy „Z” betűkkel kell kezdődniük, és utánuk kell lenniük az „[A-Za-z0-9]” kifejezéssel. Miért? Miért nem használhatják az emberek a saját címkéiket, például "egyedi olvasás", "a genom távolságának szerkesztése" vagy bármi más, amit akarnak. Nem bíznak-e bennünk a dolgok megnevezésének és a dolgok önkényes felidézésének ereje? Ennek eredményeként meg kell keresni a címke nevének tényleges jelentését az azt létrehozó eszköz kiadványában, vagy meg kell kérdeznie bizonyos fórumokon stb. És ez azt feltételezi, hogy ismeri az eszközt, amely az olvasásokat készítette - ha nem, akkor ki tudja a wtf ' Az XT 'jelentése.

Lényegében az opcionális mezők későbbi olvasói már bíznak abban, hogy az' XT 'az, aminek gondolja. Tehát, ha szívesen használunk opcionális mezőket bármilyen kapacitással, miért állunk meg a mezőknél?

Kiterjessze ezt a logikát az adatformátum oszlopaira. Hagyja, hogy a felhasználók meghatározzák az oszlopok nevét. Előfordulhat, hogy egy kék holdban egyszer találkozik egy fájllal, amelynek a kromoszóma oszlopának neve "chr", nem pedig "kromoszóma", de legtöbbször azt fogja keresni, hogy "read kvantum-radioaktív", és észleli és rögzíti a A hibák nem jelentenek akkora problémát, mint egy olyan adatformátum használata, amely nem tárolja azt, amit tárolni szeretne. Vagy ami még rosszabb, tárolni tudja, de valóban logikátlan módon, ami azt eredményezi, hogy mindenkinek, aki az adatformátumot használja, legalább 3 kérdést kell feltennie itt vagy más fórumokon, mielőtt megértenék, mi is történik valójában.

Tehát egy általános megoldást talál a táblázatos információk kompatibilis tárolásának problémájára számos különféle szoftverben, más néven SQL-ben (vagy bármilyen más általános célú adatbázisban, például REDIS, Neo4J, Numpy) stb.). Valójában egyáltalán számít, mi az az adattár, mindaddig, amíg táblázatos, és minden elemhez tartozik a "kromoszóma" és a "pozíció" értéke?

TL; DR - Nem a holnap legjobbjára gondolunk adatformátum ma, mert a holnap adatainak jellege még nem ismert. A kevesebb rendfenntartás ezen a területen valószínűleg robusztusabb szoftvert eredményezne, ahol semmi sem magától értetődő, és az adatokkal kapcsolatban sem lehet feltételezni, amíg a sémát nem elemezték.

Valójában csak ezért úgy gondoljuk, hogy meg kell adnunk az adatformátumokat, mert tudjuk, hogy ha nem tettük meg, akkor más emberek olyat fognak tenni, amire nem gondoltunk - és szerintem hamisan feltételezzük, hogy ez rossz lesz.



Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 3.0 licencért, amely alatt terjesztik.
Loading...