Kysymys:
Miksi erittäin vahva BLAST-osuma katoaa, kun muutan parametriä num_alignments, num_descriptions tai max_target_seqs?
voiDnyx
2017-11-14 21:21:32 UTC
view on stackexchange narkive permalink

Vastuuvapauslauseke: Tämä on itse vastattu kysymys dokumentointia varten, ja mukautin tämän seuraavasta github-sisällöstä. Varsinkin käyttäjiltä terrycojones ja peterjc sekä sujaikumar , jotka ottivat asian esiin.


Minulla on outo tilanne. Minulla on kaksi BLAST-tietokantaa ( 20170821 ja 20170824 ), jotka molemmat sisältävät tietyn aihesekvenssin LC074724 . Kun kyselen heitä molempia annetulla kyselyllä, Q , yhdessä tapauksessa ( 20170824 ) on erittäin vahva osuma ja toisessa ( 20170821 ) ei vastaavuutta lainkaan .

Miksi huonolaatuisempaa vastaavuutta ei löydy, vaikka tietokannat ovat melkein samat?

  BLAST-versio $ blastn -versionblastn: 2.6.0+ Paketti: blast 2.6.0, koontiversio 11. toukokuuta 2017 22:22:40  

Molemmat tietokannat sisältävät saman aiheen järjestys LC074724:

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

Ainoa ero tietokannoissa on, että 20170821 on vain 20170824 , jossa on ylimääräinen 643 jaksoa. Lepo on täysin identtinen.

üks vastaus:
voiDnyx
2017-11-14 21:36:38 UTC
view on stackexchange narkive permalink

Yritän selvittää miksi. Tämä on pidempi luku, Tl; dr lopussa :

Ottelun tekeminen

Q -sovelluksella on hyvä vastine code> vastaan ​​ LC074724 kohdassa 20170824:

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

Huomaa, että LC074724 -ottelun bitscore on 2581.

Mutta LC074724 ei ole vastaava lainkaan 20170821:

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

Vaihtoehto -outfmt '6 qaccver saccver bitscore' käskee BLAST: n tulostamaan kyselyn liittymisnumeron ja version, aiheen liittymisen ja version sekä bitscore ottelusta.

Mitkä ovat 20170821: n parhaat osumat

Joten mitkä ovat Q-otteluiden bittiarvot 20170821: ssä?

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

Q : n bittitulos vastaan ​​ LC074724 kohdassa 20170824 (2581) olisi asettanut 5. sijalla Q: n kymmenen parhaan ottelussa , mutta LC074724 ei ole lainkaan yhteensopiva kohdassa 20170821 ! Pienimmät bittitaajuudet, jotka on sovittu 20170821 -kohdassa, on 2354.

Mitä eroa tietokannoissa on?

Hanki kunkin tietokannan aiheiden tunnukset

  $ blastdbcmd -entry all -db 20170824 | egrep '^ >' | leikkaa -c2- | lajitella > 20170824.ids $ blastdbcmd -entry all -db 20170821 | egrep '^ >' | leikkaa -c2- | lajitella > 20170821.ids $ wc -l 2017082? .ids 9754 20170821.ids 9111 20170824.ids 18865 yhteensä  

20170821 sisältää 643 jaksoa, jotka eivät ole 20170824:

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

20170824 -ohjelmassa ei ole sekvenssejä, jotka eivät kuulu kohtaan 20170821:

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

ja kahdella on yhteisiä 9111 sekvenssiä:

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

Nämä numerot vastaavat yllä olevan wc -l -numeroita.

Joten 20170821 on vain 20170824 643 ylimääräisellä sekvenssillä.

Ehkä LC074724 vastaa, mutta matalalla bittipisteellä?

BLAST näyttää vain 500 suosituinta kohdetta oletuksena. Pyydetään sitä näyttämään lisää:

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

Ja ....

  $ head 20170821-10000-match.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  

Siinä se on! Ja se on viidennessä asemassa, aivan kuten sen pitäisi olla (edellä käsiteltyjen bittipisteiden perusteella).

Vahvista vain poistamalla -max_target_seqs vaihtoehto ei vastaa:

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

Kolme hämmentävästi nimettyä BLAST-vaihtoehtoa

Olen aina pitänyt seuraavien kolmen BLAST-komentorivivaihtoehdon nimet ja kuvaukset hyvin sekavina.

Blastn -helpin Muotoiluvaihtoehdot-osiosta:

-num_descriptions = 0> Tietorivisekvenssien lukumäärä, joka näyttää yksiriviset kuvaukset kohteelle Ei sovellettavissa ulkomaille> 4
Oletus = '500' * Yhteensopimaton: max_target_seqs

-num_alignments = 0> Tietokantasekvenssien määrä, jotka näytetään kohdistuksia varten Default = `` 250 '*. Yhteensopimaton: max_target_seqs

Ja Rajoita haku tai tulokset -osiosta:

-max_target_seqs = 1> Säilytettävien kohdistettujen sekvenssien enimmäismäärä Ei koske outfmt: tä < = 4 Oletus = `` 500 '* Ei yhteensopiva seuraavien kanssa: num_descriptions, num_alignments

osioiden nimet, näyttää siltä, ​​että vain jälkimmäisellä vaihtoehdolla ( -max_target_seqs ) olisi mitään vaikutusta hakuun ja että edelliset kaksi ovat melkein mitä näytetään .

Mutta ... joko vain -num_descriptions tai -num_alignments , joilla on suuri arvo, saavat myös vastaavuuden:

  $ blastn -db 20170821 -query Q.fasta -task blastn -max_hsps 1 -num_descriptions 10000 | grep LC074724LC074724.1 Hepatiitti B -viruksen DNA, täydellinen genomi, isolaatti: p621 2581 0.0>LC074724.1 Hepatiitti B -viruksen DNA, täydellinen genomi, isolaatti: p621 $ blastn -db 20170821 -query Q.fasta -task blastn -max_hsign 1 | grep LC074724LC074724.1 Hepatiitti B -viruksen DNA, täydellinen genomi, isolaatti: p621 2581 0.0>LC074724.1 Hepatiitti B -viruksen DNA, täydellinen genomi, isolaatti: p621  

Joten BLAST löytää ilmeisesti LC074724 vastaa myös ilman suurta -max_target_seqs -vaihtoehtoa, mutta se ei näytä sitä, ellei ole korkeaa -num_alignments tai -num_descriptions arvo. ( Pidä mielessä, tämä on viides paras hitti! Ei jonnekin> 500 )

Vain vahvistamiseksi, kun mitään kolmesta vaihtoehdosta ei anneta eikä vaihtoehtoa -outfmt ole joko , ottelua ei löydy:

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

Tl; dr:

Yhteenvetona vaihtoehdot

  -value -max_target_seqs -num_alignments -num_descriptions

EI sovelleta vain tuloksiin suodattimia, vaan vaikuttavat suoraan löydettyihin tuloksiin.

Tämä tarkoittaa, että voit päätyä bakteerien sekvenssiin PARAS-osumana , kun käytät arvoa x ja ilman bakteerisekvenssit lainkaan top20: ssäsi, kun käytät arvoa y.

Lainataksesi NCBI-käyttäjäpalvelua:

Emme pidä tätä virheenä, mutta olen samaa mieltä siitä, että meidän pitäisi dokumentoida tämä mahdollisuus paremmin. Näin voi käydä, koska rajoituksia, mukaan lukien maksimikohdesekvenssit, sovelletaan sekä algoritmin varhaisessa aukottomassa vaiheessa että myöhemmin.

Ja

raja-arvoja käytetään avaamattoman jatko-vaiheen aikana, ja jotkut kohdistukset voivat parantaa pistemäärää aukon jatkamisen aikana. Turvallisin tapa on rentoutua (nostaa) kynnystä ja käsitellä suurempaa tulosjoukkoa.

Tämä oli minulle täysin odottamatonta käytäntöä, ja se on sikäli kuin tiedän, ettei missään ole dokumentoitu BLASTissa apua tai vastaavaa.



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...