Küsimus:
Käivitage gffread mitme lõimega režiimis
aechchiki
2018-03-14 19:21:09 UTC
view on stackexchange narkive permalink

Kas on võimalik käivitada gffread mitme lõimega režiimis? Tundub, et vastus on "ei" käsiraamatust (või gffread -h ), kuna ühtegi mitmelõngalist võimalust pole mainitud.

I " Enamasti kasutasin seda utiliiti transkriptsioonijärjestuste (FASTA) väljavõtmiseks annotatsioonifailidest (GTF). Ühe lõimega režiimis on käituse aeg enamikul juhtudel vastuvõetav, kuid sooviks mõnel juhul natuke kiirendada (eriti suurte genoomide puhul).

Pange tähele, et proovisin juba, nagu käsiraamatus mainitud, Esmalt genoomi indekseerimiseks (mis jällegi vähendab tööaega enamikul, kuid mitte kõigil juhtudel):

Pange tähele, et sel viisil saab transkriptsioonijärjestuste otsimine palju kiiremini, kui fasta indeksfail (selles näites genome.fa.fai) asub samas kataloogis genoomse fasta failiga.

Sellise indeksfaili saab enne gffreadi käivitamist luua utiliidiga samtools, näiteks: samtools faidx genome.fa

Seejärel järgmistes jooksudes Valik -g gffread leiab selle FASTA indeksi ja kasutab seda transkriptsioonijärjestuste väljavõtte kiirendamiseks.

Olen avatud ka erinevatele alternatiividele kui gffread GTF teisendamiseks -> FASTA.

Olen paar korda gffreadi kasutanud. Minu mulje on, et see on kiire. Nagu ma just proovisin, saab Ensembli inimmärkuste jaoks kõik ärakirjad 29 sekundiga. See peaks olema kiirem kui paljud teised inimese genoomiga tehtavad operatsioonid. Kui tihti soovite gffreadi käivitada?
Aitäh. Jah, tavaliselt on see üsna kiire. Tegelikult tegelesin selle küsimusega, kuna mul läks üle 8 minuti, et saada transkriptsioonid oletatava genoomi suurusest 1,4 Gb, kuid ei suutnud aeglast käitusaega teises serveris reprodutseerida (kus mul kulus umbes 110 sekundit). Veider.
üks vastus:
terdon
2018-03-15 04:30:12 UTC
view on stackexchange narkive permalink

Kuna selle paralleelseks käitamiseks pole lihtsat viisi, võiksite selle asemel jaotada töö osadeks. Näiteks eraldage iga kromosoom oma gtf-failiks, ekstraheerige järjestused selle faili abil ja kassige need siis kõik koos.

Käsud oleksid umbes sellised (kasutades inimese hg38 genoomi ja gff GENCODE märkusi alla laaditud siit):

Jagage fail kromosoomi kohta üheks failiks (või muuks, mis teil on gff / gtf-faili esimese väljana):

  tmp = $ (mktemp -d); ## luua temp-kataloogawaw -vtmp = "$ tmp" '($ 1! ~ / ^ # /) {print > tmp "/" $ 1 ".gff"}' gencode.v27.annotation.gtf  

Ekstraheerige igas failis kirjeldatud järjestused, käivitades iga käsu taustal ( & ):

  f jaoks $ tmp / *; tee gffread -w "$ f.fa" -g hg38.fa "$ f" & valmis  

Liida need ühte faili:

  cat " $ tmp / * fa "> all.fa  

Selle saate ühendada üheks käsuks, kasutades wait , veendumaks, et te ei liitu enne, kui kõik alamkäskudest on lõpetatud:

  tmp = $ (mktemp -d); awk -vtmp = "$ tmp" '($ 1! ~ / ^ # /) {print > tmp "/" $ 1 ".gff"}' gencode.v27.annotation.gtf && for f kohta "$ tmp" / *; tee gffread-0.9.12.Linux_x86_64 / gffread -w $ f.fa -g hg38.fa "$ f" & valmis ootel kass "$ tmp" / * fa > all.fa  

Või salvestage see lihtsalt skriptina nimega pgffread.sh (või mis iganes):

  #! / Bin / shgtf = "$ 1" genoom = "$ 2" tmp = $ (mktemp -d); awk -vtmp = "$ tmp" '($ 1! ~ / ^ # /) {Print > tmp "/" $ 1 ".gff"} "" $ gtf "&& f failis "$ tmp" / *; tee gffread -w "$ f" .fa -g "$ genome" "$ f" & donewaitcat "$ tmp" / * fa rm -rf "$ tmp"  

Ja siis jookse see annab parameetriteks genoomi ja märkuste failid:

  pgffread.sh gencode.v27.annotation.gtf hg38.fa > all.fa  

Süsteemis, kus ma selle käitusin ja millel on 48 südamikku, on ajavahe oli märkimisväärne (kuigi see on niikuinii nii kiire, ei tea ma tõesti, kas see on vaeva väärt, kui just seda väga ei tee):

  $ time gffread -w out.fa -g hg38 .fa gencode.v27.annotation.gtfreal 1m52.072suser 1m3.160ssys 0m47.257s $ time ./pgffread.sh gencode.v27.annotation.gtf hg38.fa > all.fareal 0m17.533suser 1m5.228sys  
aitäh! jah, oleksin pidanud mõtlema viite väiksemateks osadeks jagamise.


See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...