Kérdés:
Miért vész el egy nagyon erős BLAST találat, amikor megváltoztatom a szám_alignments, a num_descriptions vagy a max_target_seqs paramétereket?
voiDnyx
2017-11-14 21:21:32 UTC
view on stackexchange narkive permalink

Jogi nyilatkozat: Ez egy önálló válasz dokumentációs célokra, és ezt a következő github lényeg alapján alakítottam ki. Különösen a terrycojones és peterjc felhasználók, valamint a sujaikumar felhasználók részéről, akik felvetették a problémát.


Furcsa dolgom van helyzet. Két BLAST-adatbázissal rendelkezem ( 20170821 és 20170824 ), amelyek mind tartalmaznak egy bizonyos tantárgyszekvenciát LC074724 . Amikor egy adott lekérdezéssel ( Q ) lekérdezem mindkettőt, az egyik esetben ( 20170824 ) nagyon erős egyezés , a másikban ( 20170821 ) egyáltalán nincs egyezés .

Miért nem is találunk gyengébb minőségű egyezést, bár az adatbázisok közel azonosak?

  BLAST verzió $ blastn -versionblastn: 2.6.0+ Csomag: blast 2.6.0, build 2017. május 11, 22:22:40  

Mindkét adatbázis azonos témát tartalmaz szekvencia LC074724:

  $ blastdbcmd -entry LC074724 -db 20170824 | md5fcfbc167c7f81dfd75aad1bf3db6220b $ blastdbcmd -entry LC074724 -db 20170821 | md5fcfbc167c7f81dfd75aad1bf3db6220b  

Az adatbázisok közötti különbség csak annyi, hogy a 20170821 csak 20170824 és további 643 szekvenciát tartalmaz. A pihenés teljesen azonos.

Egy válasz:
voiDnyx
2017-11-14 21:36:38 UTC
view on stackexchange narkive permalink

Megpróbálom kideríteni, miért. Ez egy hosszabb olvasmány lesz, Tl; dr a végén :

Párosítás

Jó egyezés van a Q kód> LC074724 ellen a 20170824:

  $ blastn -outfmt '6 qaccver saccver bitscore' -db 20170824 -query Q.fasta \ feladat blastn -max_hsps 1 | grep LC074724Q LC074724.1 2581  

Ne feledje, hogy az LC074724 egyezés bitscore 2581.

De az LC074724 egyezése egyáltalán nincs 20170821:

  $ blastn -outfmt '6 qaccver saccver bitscore' -db 20170821 -query Q.fasta \ -task blastn -max_hsps 1 | grep LC074724  

A -outfmt '6 qaccver saccver bitscore' opció arra utasítja a BLAST-t, hogy nyomtassa ki a lekérdezés belépési számát és verzióját, az alanyi csatlakozást és verziót, valamint a bitscore

Melyek a legjobb találatok 20170821-re

Tehát mi a Q-mérkőzések bitcore-értéke 20170821-ben?

  $ blastn - outfmt '6 bitscore' -db 20170821 -query Q.fasta -task blastn -max_hsps 1 | sort -nr | head3301261625902590256325542547254425402540  

A Q bitscore-ja LC074724 és 20170824 (2581) között elhelyezte volna az 5. helyen a Q 10 legjobb meccsén, de az LC074724 egyáltalán nem egyezik a 20170821 -ben! A 20170821 legalacsonyabb bitcore értéke 2354.

Mi a különbség az adatbázisok között?

Az egyes adatbázisok alanyainak azonosítói

  $ blastdbcmd -entry all -db 20170824 | egrep '^ >' | vágott -c2- | sort > 20170824.ids $ blastdbcmd -entry all -db 20170821 | egrep '^ >' | vágott -c2- | sort > 20170821.ids $ wc -l 2017082? .ids 9754 20170821.ids 9111 20170824.ids 18865 összesen  
A

20170821 643 szekvenciája van, amelyek nem szerepelnek a 20170824:

  $ comm -23 20170821.ids 20170824.ids | wc -l 643  

20170824 nem rendelkezik olyan szekvenciákkal, amelyek nem szerepelnek a 20170821:

  $ comm -13 20170821.ids 20170824.ids | wc -l 0  

és a kettő közös 9111 szekvenciával rendelkezik:

  $ comm -12 20170821.ids 20170824.ids | wc -l 9111  

Ezek a számok megegyeznek a fenti wc -l számokkal.

Tehát 20170821 csak 20170824 egy további 643 szekvenciával.

Lehet, hogy az LC074724 egyezik, de alacsony bites pontszámmal?

A BLAST csak az első 500 egyeztetett témát mutatja alapértelmezett. Kérjük, hogy mutasson többet:

  $ blastn -outfmt '6 qaccver saccver bitscore' -db 20170821 -query Q.fasta \ -task blastn -max_hsps 1 -max_target_seqs 10000 > 20170821-10000- match.txt  

És ....

  $ head 20170821-10000-mérkőzések.txtQ Q 3301Q X234A 2616Q CS388973.1 2590Q DM059402.1 2590Q LC074724.1 2581Q KJ843188.1 2576Q AB697496.1 2576Q AB697499.1 2576Q AB697503.1 2576Q AB697508.1 2576  

Itt van! És az 5. helyen van, éppen úgy, ahogy lennie kell (a fent tárgyalt bitértékek alapján).

Csak megerősítésképpen, a -max_target_seqs eltávolítása opció nem kap egyezést:

  $ blastn -outfmt '6 qaccver saccver bitscore' -db 20170821 -query Q.fasta \ -task blastn -max_hsps 1 | grep LC074724 $  

Három zavaros nevű BLAST opció

Mindig nagyon zavarosnak találtam a következő három BLAST parancssori opció nevét és leírását.

A Blastn -help Formázási beállítások részéből:

-num_descriptions = 0> Azon sorok leírása, amelyek egysoros leírást mutatnak a következőhöz: Nem alkalmazható az outfmt számára = "500" * Nem kompatibilis a következővel: max_target_seqs

-num_alignments = 0> Az alapértelmezett = "250" * igazításokat megjelenítő adatbázis-szekvenciák száma

-max_target_seqs = 1> A megtartandó igazított szekvenciák maximális száma Nem alkalmazható az outfmt esetében < = 4 Alapértelmezett = "500" * Nem kompatibilis: num_descriptions, num_alignments

szakasznevek, úgy tűnik, hogy csak az utóbbi opciónak ( -max_target_seqs ) lenne bármilyen hatása a keresésre, és hogy az előbbi kettő csak arról szól, amit megjelenítenek .

De ... vagy csak a -num_descriptions vagy a -num_alignments használata nagy értékkel szintén megfelel:

  $ blastn -db 20170821 -query Q.fasta -task blastn -max_hsps 1 -num_descriptions 10000 | grep LC074724LC074724.1 Hepatitis B vírus DNS, teljes genom, izolátum: p621 2581 0.0>LC074724.1 Hepatitis B vírus DNS, teljes genom, izolátum: p621 $ blastn -db 20170821 -query Q.fasta -task blastn -max_hsign 1 | grep LC074724LC074724.1 Hepatitis B vírus DNS, teljes genom, izolátum: p621 2581 0.0>LC074724.1 Hepatitis B vírus DNS, teljes genom, izolátum: p621  

Tehát a BLAST nyilvánvalóan megtalálja a LC074724 egyezik a magas -max_target_seqs opció nélkül is, de csak akkor jeleníti meg, ha van magas -num_alignments vagy -num_descriptions érték. ( Ne feledje, hogy ez az 5. legjobb találat! Nem valahol> 500 )

Csak megerősítésképpen, amikor a 3 opció közül egyik sem szerepel, és nincs , az egyezés nem található:

  $ blastn -db 20170821 -query Q.fasta -task blastn -max_hsps 1 | grep LC074724 $  

Tl; dr:

Összefoglalva: az opciók

  -value -max_target_seqs -num_alignments -num_descriptions

NEM csak szűrőket alkalmaznak az eredményekre, hanem közvetlenül befolyásolják a talált eredményeket.

Ez azt jelenti, hogy egy baktérium szekvenciát találhat a BEST találat ként, ha x értéket használ, és nem baktériumszekvenciák egyáltalán a top20-ban, ha a y értéket használjuk.

Az NCBI felhasználói szolgáltatásának idézése:

Ezt nem tartjuk hibának, de egyetértek abban, hogy ezt a lehetőséget jobban dokumentálnunk kell. Ez azért történhet meg, mert a korlátokat, ideértve a maximális célszekvenciákat is, az algoritmus korai, nem szakadt szakaszában, valamint később alkalmazzák.

És

A A szakaszokat egy hiányos kiterjesztési szakaszban alkalmazzuk, és néhány igazítás javulhat a pontszámban a hiányos kiterjesztés során. A legbiztonságosabb megközelítés a küszöb ellazítása (növelése) és egy nagyobb eredménykészlet kezelése.

Ez teljesen váratlan viselkedés volt számomra, és amennyire tudom, a BLAST-ban sehol sem dokumentálták segítség vagy hasonló.



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...