Küsimus:
Kuidas teisendada BED GFF3-ks
aechchiki
2017-08-08 14:59:08 UTC
view on stackexchange narkive permalink

Soovin teisendada BED vormingu GFF3 -ks.

ainus kasulik tööriist, mille leidsin google'i otsingu kaudu, näib olevat Galaxy ja ma ei tunne end veebitööriistade kasutamisel eriti mugavalt, lisaks on veebiserver hoolduses.

Kas keegi teab käsurea tööriista kohta, mis suudab selle teisendusega hakkama saada?

Muuda: siin on mõned minu BED-faili read:

  $ peaga -4 last_minion-r7_sort.bed211000022278137 175 211 8e5d0959-7cdb-49cf-9298-94ed3b2aedb5_Basecall_2D_000_2d 42 +211000022279134 0 503 e8a9c6b8-bad2-4a7e-97d8-ca4acb34ff70_Basecall_2D_000_2d 69 -211000022279134 24 353 e258783d-95a3-41f5-9ad5-bb12311dbaf4_Basecall_2D_000_2d 45 - 211000022279134 114 429 26601afb-581a-41df-b42b-b366148ea06f_Basecall_2D_000_2d 100 -  

Voodifailil on seega praegu 6 veergu: kromosoom, alguskoordinaat, lõpu koordinaat, loe nimi, skoor, suund . See fail saadi vormingu MAF teisendamisel (kuna RNA-seq joondamise väljund loeb võrdlusgenoomi, kasutades LAST ), teisendati SAM , kasutades maf-convert , seejärel BAM , kasutades samtools , lõpuks BED , kasutades bedtools .

Minu teisendamise eesmärk on põhimõtteliselt SAM -> GTF teisendamine järeltöötluseks. Kuna selleks pole sirgjoonelist viisi, käin läbi sammud, ja minu teada on ainus viis seda teha: SAM -> BAM -> Voodi -> GFF3 -> GTF aga praeguseks olen ma kinni BED -> GFF3 osa.

Selleks pole tingimata väga sisukas viis. Kas saate oma BED-failist paar rida postitada? Mis on lõppeesmärk?
Jah, oleks kasulik mõnda BED-i näha. Kas see on BED12 või BED6, mida see esindab? Kes peavad GFF3-s ütlema, mida teie intervallid tähistavad. Pole põhjust, et seda ei saa siiski teha. Oh, ja kas olete koodiga rahul?
@DevonRyan Olen redigeerinud küsimust, loodetavasti vastan teie kommentaaridele.
@AminaEchchiki Kuigi ma saaksin koodi anda (või võite tööriista lihtsalt Galaxy kaudu kasutada), ei usu ma, et SAM-faili teavet edastatakse täpselt BED-ile viisil, mis on vajalik kasuliku GFF3- või GTF-faili loomiseks. Soovitan tungivalt kirjutada tööriist GTF / GFF tootmiseks otse SAM-ist või MAF-ist (eeldades, et neid pole).
kui see on organism, millel on splaissinguid, pole teie voodisse sattumine tõenäoliselt täpne. Postitan BAM -> GTF-koodi ja BED-i GFF3-sse, kuid andke teada, kas teie lugemid on ühendatud /
@IanSudbery jah, minu lugemid on ühendatud (D. melanogaster)
Õige, sel juhul peaksite oma voodifailid genereerima `bamtobed ​​--bed12` abil, kuid tegelikult peaksite minema BAM-ist otse GFF / GTF-i.
@IanSudbery tänab vihje eest, teeb seda
Neli vastused:
Severian
2017-08-09 01:27:37 UTC
view on stackexchange narkive permalink

Galaxy on API-d ja API-d tarbivad teegid (näiteks BioBlend), mis võimaldavad teil selle vastu interaktiivselt skriptida ilma graafilist liidest üldse avamata.

Siiski saate ka peaaegu kõik tööriistad Galaxy ja kasutage seda iseseisvalt, kuna kõik on avatud lähtekoodiga. Mainitud muundur on saadaval Pythoni skriptina siin ja tööriist 'ümbris', mille abil saate aru saada, kuidas pythoni skripti kutsuda, on selle kõrval.

Ian Sudbery
2017-08-08 16:42:34 UTC
view on stackexchange narkive permalink

Küsimusele vastamiseks, nagu küsitakse, inimeste jaoks, kes guugeldavad. BED6 puhul püütonis:

  # contigs.tsv contians kromosoomide nimed ja pikkused kaks veergu reale avatud ("contigs.tsv"): väljad = line.strip (). split ("\ t") printiväljad [0], ".", "contig", "1", str (väljad [ 1]), ".", "+", ".", "ID =% s"% väljad [0] reale avatud ("my_bed_file.bed"): väljad = line.strip (). Split (" \ t ") # märkus: Voodi on 0-põhine, pooleldi avatud, GFF on 1-põhine, suletud algus = str (int (väljad [1]) + 1) prindiväljad [0]," voodi "," intervall ", väljad [1], väljad [2], väljad [4], väljad [5],". "," ID =% s; vanem =% s "% (väljad [3], väljad [0])  

bed12 puhul pütoonis:

  # contigs.tsv contians kromosoomide nimed ja pikkused kahes veerus rea jaoks avatud ("contigs.tsv"): väljad = line.strip (). split ("\ t") printimisväljad [0], ".", "contig", "1", str (väljad [1]), ".", "+", ".", "ID =% s"% väljad [0] reale avatud ("my_bed12.bed"): väljad = line.strip (). split ("\ t") contig = väljad [0] # märkus: BED on 0-põhine, poolavatud, GFF on 1-põhine, suletud algus = int (väljad [1]) + 1 ) end = väljad [2] nimi = väljad [3] tulemus = väljad [4] haru = väljad [5] print contig, "bed", "interval", str (start), end, score, strand, "." , "ID =% s; parent =% s"% (name, contig) eredarts = map (int, väljad [11] .split (",")) block_sizes = map (int, väljad [10] .split (" , ")) for (block, (bstart, blen)) in enumerate (zip (visiškaiarts, block_sizes)): bend = start + bstart + blen print contig," bed "," block ", str (start + bstart), str (paind), skoor, haru, ".", "ID =% s_% i; vanem =% s"% (nimi, plokk, nimi)  
Ian Sudbery
2017-08-08 17:00:47 UTC
view on stackexchange narkive permalink

BAM-i teisendamiseks GTF-i, mis on parim viis faili saamiseks mansetiga võrdlemiseks:

  import pysambamfile = pysam.AlignmentFile ( "my_bam_file.bam") joondamiseks failis bamfile.fetch (): kui joondus.on_kaardistamata: jätkake contig = bamfile.get_reference_name (joondus.referentide_id) nimi = joondus.päringu_nimi, kui joondus.is_reverse: strand = "-" veel: strand = "+" alguseks, lõpuni joondusega. getblocks (): # märkus: Voodi on 0-põhine, pooleldi avatud, GFF on 1-põhine, suletud printimise jätk, "BAM", "exon", str (algus + 1 ), str (lõpp), "0", ahel, ".", "geen_id"% s "; transkript_id "% s"; ' % (nimi, nimi)  

Pange tähele, see töötab ka SAM-failiga, kui see on päises.

Tuleb märkida, et kui teie bam-fail pärineb torujuhtmelt, mis toodab kaardistamata BAM-sid, tagastab tulevane googlerite märkus tõrke "ValueError: faili päis on tühi (mode =" rb ") - kas see on SAM / BAM-vorming?" . Lahendusena tuleb bami lugemise ajal lisada valikud `check_header = False`,` check_sq = False`. @IanSudbery võib olla kasulik, kui lisate selle oma koodi kommentaariks
@Amina Echchiki, see viga ei tulene sellest, et teie BAM sisaldab kaardistamata lugemisi, vaid seetõttu, et teie BAM-il pole päist. Päisteta BAM-id pole kehtivad BAM-failid. Olen üllatunud, kui contig-nime toomine toimis, kui failil pole päist, isegi kui määrate `check_header = False, check_sq = False ', kuna see kasutab selleks päist.
story
2017-08-09 20:56:32 UTC
view on stackexchange narkive permalink

Biojuht teeb selle nii lihtsaks. See teeb impordil koordinaatide teisendamise.

  teek (rtracklayer) ## importige voodi filebed.ranges <- import.bed ('region.bed') ## eksportige gff3 failiekspordina. gff3 (bed.ranges, 'region.gff3')  

Ja inimesed imestavad, miks R on bioinformaatika jaoks nii populaarne ...

Samuti võite vajadusel minna otse failist BAM faili gff3 ka R-s.

Niikaua kui teil on piisavalt mälu, et kogu voodi korraga mälus hoida (mitte antud, kui see pärineb BAM-ist), on see tõepoolest lihtne võimalus.


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...