Küsimus:
Teisendage kohalikud joondused splaissitud joondusteks SAM-failis
aechchiki
2017-08-30 18:24:42 UTC
view on stackexchange narkive permalink

Kaardistasin RNA loetud võrdlusgenoomi, kasutades LAST jagatud režiimis, ja teisendasin MAF-i joondamise SAM-i maf-konverteerimise abil.

Minu probleem on see, et ärakirju ei edastata splaissitult, see tähendab, et transcript_ID esitatakse joondamise SAM-failis mitu korda identse bitipikkusega lipuga 2 dollarit . Minu arusaamist mööda on see tingitud asjaolust, et kaardistatakse ainult eksonid (üks ekson rea kohta) ja esitatakse kohalike joondustena, kuna tarkvara ei saa tegeleda spoonimismudelite kombinatsiooniga exon-intron (veel), mis käitumisest on selge sigar CIGAR.

Konkreetsema ja visuaalse näite saamiseks kaalume transkripti FBtr0344900 vastendamist võrdlusgenoomile, nagu on andnud LAST:

  $ cat last_aln .sam | grep FBtr0344900FBtr0344900 0 4 42774 100 384 = 144 tundi * 0 0 TGCGACATTGTTCTACGATGACTACAAAAAATGACCAATAACTTCTATAAACCAATACGATATGTCAGGAGTTTCGGTCCCATACGAAGTCGCCGACTTAAGTATTTTATttttattttgatATGTGTTTGCTATTTTACCTTGTCGAATGCTTCCACACGCTATGAGAATACCATCGTGAGCGTAGCTTACTACTAGAATTTTGTTGAAGTTATTGACAAGCGATGTCTCAATATCTTCCGGACAGCCTCCAGCGTGACATTGCGGGGAATCATGTAACGGCCCAGTAACAGCCTCGGCCAGCACTCGAAGGTTTTCGTTAAGTTTAAGTATTTTATTTGTAGCACCCGCAAACAAAACATTGTGCATAAAGTCGAAGCTCAT * NM: i: 0 AS: i: 2304FBtr0344900 0 4 43231 100 384H144 = * 0 0 CTGGAAGCTGTTGATTGAACTGGTATTGATGGCAAGTTAAACTGGGCGACTATGTCATTTAAGGGAGATAACGCCTGAGCCGGCAGTTCTTCAATGCAGTTAACGCAATAATGCTGAGAACCGAGTATGATAATAATACACAGT * NM: i: 0 AS: i: 864  

Ja siin on sama ärakirja FBtr0344900 kaardistamine, mille andis STAR - tarkvara, mis annab joondamisest teada just nii, nagu mul seda vaja on:

  kass star_aln.sam | grep FBtr0344900
FBtr0344900 0 4 42774 255 384M73N144M * 0 * NH: i: 1 HI: i: 1 NM: i: 0 MD: Z: 528  

arutelust autor, tundub, et ma ei saa praegusest LAST versioonist otse vajalikku ega ole tehniline probleem. Seega pean väljundit ise modifitseerima. Eesmärk oleks saada vähemalt CIGAR-rida, mis esindaks täielikku ärakirja.

Minu küsimus on, kas teate mõnda tarkvara selleks? Vaja oleks faili, mis sisaldab ühte rida kordumatult kaardistatud ärakirjade kohta ja sisaldab kolme välja: transcript_ID , start position ja CIGAR string .

Ma toimisin järgmiselt:

1) eraldage SAM-failist huvitatavad väljad:

  $ cut -f1,4,6FBtr0344900 42774 384 = 144HFBtr0344900 43231 384H144 =  

2) jagage rida CIGAR, et eemaldada üksused, mis mind ei huvita - lihtsustan siin käsku, eeldades, et mul on ainult täiuslikud vasted (mis mind huvitavad) ja kõvasti lõigatud (mis mind ei huvita):

  $ cut -f3 | sed 's / H / _ / g' | sed 's / = / = / g' | sed 's / \ w * _ \ s * //' | sed 's / = // g'384144  

3) kleepige muudetud sigar originaalfaili koos koodiga paste , mille tulemuseks on:

  $ paste (1) (2) | lõika -f1,2,4FBtr0344900 42774 384FBtr0344900 43231 144  

4) ühendage read, mis algavad ba sama transcript_id :

  $ awk -F '\ t' -v OFS = '\ t' '{x = 1 dollar; $ 1 = ""; a [x] = a [x] $ 0} LÕPP {for (x in a) print x, a [x]} '| FBtr0344900 42774 384 43231 144 

5) arvutage uus sigar, arvutades introni pikkuse aritmeetilise valemina intron_length = (next_exon_start_coordinate - exon_length - previous_exon_start_coordinate) , selles ülaltoodud lihtne juhtum: intron_length = 43231-384-42774

  $ awk '{printf ("% s", $ 1)}; {for (i = 4; i< = NF; i + = 2) {printf ("% s% d% s% d", OFS, $ (i-1), OFS, $ i - $ (i-1) - $ (i-2))}}; {printf ("% s% d% s% s", OFS, $ NF, OFS, RS)} 'FBtr0344900 384 73 144  

6) ideaalis, mõne meetodiga, mille ma teen aru saada, ma muudan stringi CIGAR (lisades iga välja, välja arvatud esimese välja, alternatiivse M, N, nii peaks lõplik fail välja nägema:

  FBtr0344900 42774 384M73N144M  

Minu põhiline lähenemisviis on järgmine:

  1. Ma pole kindel, kuidas arveldada 1-põhist SAM-i: kas peaksin lisama + 1 iga exon_start_coordinate juures? Ei näe välja, kuna STAR-väljundil on täpselt sama sigaristring, mille arvutasin STAR-i väljundi järgi.
  2. SUUR probleem: see töötab ainult ettepoole suunatud kaardil olevate lugemite puhul: kuidas muuta see tagurpidi ühendatud kaardil olevate lugudega teostatavaks? Kui jätkan oma praeguse lähenemisviisi, on mul introni negatiivsed suurused ...

Kõik soovitused on teretulnud!

Soovitan tungivalt, et te ei teeks seda tavaliste unix-tööriistadega ja kodeeriksite selle asemel midagi Pythonis (või mis tahes keeles, mida eelistate).
Ma kasutaksin joondajat, mis väljastab õige SAM-i, näiteks täht, gmap, spaln või minimap2.
jah, ma juba käivitan sama joonduse GMAP-i, STAR-iga. meil on kahtlus, et LAST võib üsna hästi töötada, kuid praeguseks pole väljund otseselt kasulik. Proovin minimap2 (tore teada, et saate seda kasutada ka RNA jaoks)
@user172818 minimap2 töötab hämmastavalt hästi ... suured tänud, et mind sellele suunati
üks vastus:
winni2k
2018-11-18 14:35:09 UTC
view on stackexchange narkive permalink

Lugemiste joondamiseks kasutage jagatud joondusrežiimis lihtsalt funktsiooni minimap2.

Kui see pole valik, võite proovida kasutada CIGAR-stringide muutmiseks pysam -i. Ma ei soovita seda, kuna peent vigade leidmiseks on palju võimalusi, kuna SAM-i spetsifikatsioon on keeruline. Peaksite:

  1. sorteerima lugemise ID-l oleva BAM-i, et saaksite tõhusalt kätte ühendada soovitud lugemised
  2. kõigi lugemiste laadimisel BAM-i kaudu kordada pysamiga sama lugemise ID-st
  3. iga sama lugemis-ID-ga lugemiskomplekti kohta:
    1. järjestage sama lugemis-ID lugemised kõvasti lõigatud aluste arvu järgi CIGAR-stringi alguses.
    2. Ehitage järjestatud CIGAR-stringidest uus CIGAR-string
    3. Ühendage järjestatud lugemiste metasildid
    4. Kirjutage välja üksik, ühendatud lugemine
Ma tegin seda lõpus. Sel ajal tahtsin lihtsalt vormistada liitmata joondused LAST-ist (näiteks) splaissitud joondusteks. Miks? Võrdle võimalikult palju tööriistu. Aga see on ok, loobusin lõpus ja lihtsalt kasutasin tööriistu, mis selle splaissitud joonduse juba andsid.
See on suurepärane. Kuid SE eesmärk on aidata ka teisi, kellel võivad tulevikus olla sarnased probleemid, pakkudes vastuseid küsimustele, et kasutajad saaksid häid vastuseid hääletada. Kui tunnete, et minu vastus teie esitatud küsimusele on hea, kaaluge palun hääletamist ja selle aktsepteerimist.
Kui tunnete, et see vastus ei vasta teie tegelikult küsitud küsimusele, kaaluge selguse huvides küsimuse uuesti kirjutamist.


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