Kysymys:
Sekvenssien poimiminen FASTA: sta alkaen yhteisestä 5'-päästä
hunter92
2018-10-04 01:13:49 UTC
view on stackexchange narkive permalink

Yritän selvittää parhaan tavan poimia sekvenssejä FASTA-tiedostosta, jotka alkavat 43 nukleotidin yhteisellä 5'-alueella. Haluan mieluummin sallia "epäselvyyden" tällä alueella mutaatioiden tai lukemien päällekkäisyyksien sallimiseksi. Ajatuksena on, että kaikki tällä alueella alkavat sekvenssit koosta riippumatta voidaan purkaa uuteen tiedostoon.

Esimerkki FASTA-tiedostosta:

  >1-69050 -454.08GTACGGGGAAGGACGTCAATAGTC>2-65989-433.95AATCTGTAGTACGACTCACTATAGC>3-62181-408.91GATCTGTAATACGACTCACTATAGG>4-49959-328.53GG code> >2-65989-433.95AATCTGTAGTACGACTCACTATAGC>3-62181-408.91GATCTGTAATACGACTCACTATAGG  

FASTA-tiedosto on melko suuri, ja olen yrittänyt käyttää useita grep- ja awk-menetelmiä hakeaksesi sekvenssin. Kaikki tarjoamasi apu on erittäin arvostettua.

Mikä on yhteinen alue, jonka odotat näkevänne? Haluatko myös sallia lisäykset ja poistot tai vain perusmuokkaukset?
üks vastaus:
user3479780
2018-10-05 08:02:39 UTC
view on stackexchange narkive permalink

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  
Tätä etsin juuri, arvostan apuasi ja kiitos, että käytit aikaa kirjoittamiseen.


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