Tässä on 'nopea' python3
-ratkaisu, joka vaatii BLASTN: n asennuksen ja pip3 asennus biopython
. Tulokset lähetetään FASTA-muodossa tiedostoon stdout
.
Tallenna seuraava python3
-koodi kansioon hit_finder.py
#! / usr / bin / env python3import sysfrom Bio import SeqIO from Bio.Blast.Applications import NcbiblastnCommandlinecline = NcbiblastnCommandline (kysely = sys.argv [1], aihe = sys.argv [2], outfmt = "'6 qseqid pituus qstart'", max_hsps = 1, sanan koko = 4) tulos = [j [0] j: lle [i.split ('\ t') i: lle klinissä () [0] .rrip ((split. '\ n')] jos int (j [1]) > = int (sys.argv [3]) ja int (j [2]) < = int (sys.argv [4])] SeqIO.parse-tietueelle (sys.argv [1], 'fasta'): jos record.id tuloksessa: print (record.format ('fasta'))
Tee siitä suoritettava: chmod + x hit_finder.py
.
Tässä komentosarjassa on neljä argumenttia (joita tulevissa versioissa voidaan parantaa käyttämällä argparse
-kohtaa sys.argv
):
a rg1 = kyselyn_fasta_tiedosto (haettava tiedosto) arg2 = aihe_fasta_tiedosto (tietokantatiedosto, joka sisältää sekvenssin, joka vastaa 5 ') arg3 = min_alignment_length (tämä tarkoittaa osuman pituutta, sallii merkkijonon yhteensopimattomuuden blastn: n kanssa ja sana_koko 4) arg4 = start_of_hit_at_5prime (mistä kohdistusosuman pitäisi alkaa?)
Oletetaan, että halusit hakea kyselyjaksoilla AATCTGTAGTACGACTCACTATAGC
. Tallenna tämä jakso hakemistoon subject.fa
nimellä:
>subjectAATCTGTAGTACGACTCACTATAGC
Kyselyjaksosi tallennetaan kohtaan queries.fa
as:
>1-69050-454.08GTACGGGGAAGGACGTCAATAGTC>2-65989-433.95AATCTGTAGTACGACTCACTATAGC>3-62181-408.ATGATCTGACT
>4-49959-328.53GGGGAAGGACGTCAATAGTCACAC
Jos haluat etsiä vähintään 23 bp: n osumia alkaen enintään 1 emäksestä sekvenssin 5'-päästä, suoritat tämän haun käyttämällä:
./hit_finder.py queries.fa subject.fa 23 1
Voit etsiä vähintään 30 bp ja enintään 10 bp osumia Tee kyselyidesi 5 'lopussa:
./hit_finder.py queries.fa subject.fa 30 10
Tulosten tallentamiseksi tulosta stdout
tiedostoon, esimerkiksi:
./hit_finder.py queries.fa subject.fa 30 10 > results.fa