1. 程式人生 > 實用技巧 >將peaks轉換為基因活躍矩陣

將peaks轉換為基因活躍矩陣

轉自:https://blog.csdn.net/u012110870/article/details/100171472

1.讀取檔案

讀取h5檔案使用函式:

Read10X_h5(atac_peak_file)

讀取稀疏矩陣檔案

Read10X('路徑')

2.求基因活躍矩陣

但是在讀取過程中出現了問題,所以嘗試下載樣例中所用的gtf檔案。

但是在Rsutdio中下載超時,則使用https://blog.csdn.net/u011262253/article/details/89363809

wget ftp://ftp.ensembl.org/pub/grch37/release-82/gtf/homo_sapiens/Homo_sapiens.GRCh37.82.gtf.gz

可正常下載。

首先嚐試檢視小鼠的基因標註檔案,https://blog.csdn.net/tanzuozhev/article/details/46536457

可以看到染色體的名字。那麼對應的人類檔案中:

這和生物知識也是相符合的,人類有23對染色體,其中22對常染色體,一對性染色體;小鼠有20對染色體,19對常染色體,1對性染色體。

那麼範圍從c(1:22)修改為c(1:19)即可。也嘗試讀取一下新下載的小鼠基因註釋檔案。

可以發現這裡有chr字首,如果使用它的話,那麼seq.levels引數肯定是要改變的。

3.記憶體溢位問題

https://stackoverflow.com/questions/62097506/error-in-asmethodobject-cholmod-error-problem-too-large-at-file-core-ch

https://github.com/jumphone/BEER/issues/6,遇到了同樣的問題,給出的解決辦法是,先存入rds檔案中,然後再讀取,中間的過程可以釋放記憶體。

嘗試使用saveRDS函式:

還是同樣的錯誤。嘗試重啟一下Rstudio

.rs.restartR()

還是不行。

https://github.com/quadbiolab/simspec/issues/4,看到這個終於知道問題出現在哪裡了,因為我的這個是稀疏矩陣,它會有轉換為as.Matrix的,那麼太大,就會出現溢位的情況,那麼我先將peaks矩陣轉換為rds檔案,然後讀取。

嘗試將其先存入rds,但是它無法轉換為matrix檔案,實在是太大了,所以最終我選擇其子集讀取操作。我吐了。