修改 bam 檔案中染色體名
問題描述
在分析的過程中,有些資料的染色體命名為“chr1、chr2、…、chrX、chrY”,而有些資料的染色體命名則為“1、2、…、X、Y” (也就是不包含 chr 字元)。這裡,通過程式碼對 bam 檔案作為修改,實現染色體名的統一。
程式碼實現
假設我們有一個名為
test.bam
的檔案,其中染色體名不包含chr
字元,需要在染色體名前加上chr
字元。
通過 samtools
和 shell
實現 (注:samtools reheader 需要給一個-
的引數,不給會報錯):
samtools view -H test.bam | sed -e 's/SN:\([0-9XY]\)/SN:chr\1/' -e 's/SN:MT/SN:chrM/' | samtools reheader - test.bam > test.CHR.bam
程式碼封裝
因為會經常碰到這樣的情況,因此就將上面的這段程式碼封裝到一個名為 bam_add_chr.sh
的指令碼,放在 bin
目錄下面,方便呼叫。
#! /usr/bin/bash
samtools view -H $1 | sed -e 's/SN:\([0-9XY]\)/SN:chr\1/' -e 's/SN:MT/SN:chrM/' | samtools reheader - $1 > $2
echo "Finished!"
呼叫方法:
bam_add_chr.sh test.bam test.CHR.bam
其它方法
可以通過 Python 的 Pysam 模組進行修改,但計算速度相對更低。
相關文章
- 檢視BAM檔案頭部資訊
- git修改檔案的名稱Git
- 批次修改檔案字尾名
- find 批次修改檔案後輟名
- win10系統修改錄音檔案中的檔名的方法Win10
- node實現檔案屬性批量修改(檔名)
- Python批量修改檔名和檔案型別Python型別
- 批量修改檔名 與 批量檔案字元替換字元
- Linux 批量修改檔案字尾名Linux
- 批量修改檔名
- win10怎麼修改檔案字尾名_win10系統如何修改副檔名Win10
- PowerShell快速修改多個檔案的名稱
- Git修改檔名稱Git
- java批量修改檔名Java
- win10如何修改檔案字尾名 win10修改字尾名的方法Win10
- 如何修改solaris 10的主機名---涉及檔案
- 修改Oracle資料檔名及資料檔案存放路徑Oracle
- 快速批量修改檔名[機器學習]機器學習
- 批量修改檔名實踐
- Linux 批量修改檔名Linux
- Windows修改新建.txt檔名Windows
- 不修改加密檔名的勒索軟體TeslaCrypt 4.0加密
- dos命令:ren或rename,批量修改檔案字尾名
- Ubuntu系統中修改hosts檔案Ubuntu
- win10批次修改檔名的步驟_win10如何批次修改檔名Win10
- win10批量修改檔名的步驟_win10如何批量修改檔名Win10
- Mac檔案修改軟體——File Peek for macMac
- bam檔案出錯行(takes from 3 to 5 positional arguments but 6 were given)
- samtools flagstat引數對比對的bam檔案進行統計
- webpack打包時如何修改檔名Web
- 快速修改檔名稱的方法,自動批量給檔案重新命名
- python中修改檔案行內容Python
- 批量修改檔案中的圖片名稱
- 使用vim修改linux中的檔案Linux
- 在xcode5中修改整個專案名XCode
- win10 更改檔案字尾方法 win10 檔案如何修改字尾名Win10
- ar——建立或修改備存檔案,或是從備存檔案中抽取檔案
- Android 程式設計下如何修改 jar 檔案的包名Android程式設計JAR