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.