2015-08-25 16 views
0

我進行了小RNA測序並嘗試分析結果fastq文件。來自vcountPattern的正確命中的提取序列R

首先,我使用ShortRead包導入的文件的fastq成R,並轉換爲DNAstringSet

reads <- readFastq("test.fq") 
seq <- sread(reads) 

要查找讀取包含序列的特定字符串中,我使用vcountPattern從Biostrings庫。爲了我的分析目的,我必須允許突變和插入。

hit <-vcountPattern("TCTGCATTTAAGGCAAGTT", seq, max.mismatch=5, with.indels=TRUE) 

我可以在這裏做的是數數的讀取包含 「TCTGCATTTAAGGCAAGTT」

sum (hit) 

返回

[1] 11500

因此,有11500序列讀取包含「TCTGCATTTAAGGCAAGTT」

但在此之上,w我想要的帽子是從fastq文件中提取對應於11500次讀取的實際序列。

我該如何做到這一點?

hit 

如果我只是這樣做,它會給出一堆'0',少量'1',很少'2'。所以我相信這基本上是一個對應於每次閱讀中點擊次數的向量。

我試圖使用這些信息提取序列信息,但無法實現。

任何幫助被讚賞!

+0

供參考:用戶正在使用Bioconducter軟件包「ShortRead」https://darrenjw.wordpress.com/2010/11/29/a-quick-introduction-to-the-bioconductor-shortread-package-for-the-分析-的-NGS-數據/。除非你能給我們一個玩具fq文件,否則不容易複製這些代碼。序列分析知識在這裏很有用。 – Sean

+0

親愛的霍姆斯,我準備了一個玩具fastq文件,您可以從這裏下載[link](https://drive.google.com/file/d/0ByEbUQPY_T_oci1fbDFHSHQ4WUk/view?usp=sharing)。當我使用這個fastq文件嘗試我的腳本時,有3個正面點擊。基本上我只想從fastq文件中提取正面的點擊。我的原始fastq文件的大小比這大200倍。 – gdy

+0

不要介意福爾摩斯,我看着你提供的鏈接,我已經從中得到了答案。 (讀[hit])解決了問題 – gdy

回答

1

顧名思義,vcountPattern只有計數模式匹配。它不會提供你的位置。使用vmatchPattern。不幸的是,這個功能不支持with.indels = TRUE(還?) - 這既煩人又難以理解。

但是,您可以改用matchPattern。由於matchPattern只能對一個序列進行操作,而不是一組,你需要的功能,手動應用到XStringSet

hits = lapply(seq, matchPattern, 
       pattern = "TCTGCATTTAAGGCAAGTT", 
       max.mismatch = 5, with.indels = TRUE) 

的表面上的原因可能是vmatchPattern使用不同的算法來實現比matchPattern,並且該算法不支持indels。然而,沒有一個很好的理由不僅僅是爲我們上面使用的lapply提供一個包裝。

+0

謝謝康拉德,我認爲你的方法應該可以工作,但它沒有。基本上它不會選擇正面命中,而是顯示所有fastq序列,例如「關於31個字母的DNAString主題的視圖 主題:GCATTGGTGGATCAGTGGTAGAATTCTCGCC views:NONE」。這種條目的數量與原始fastq的序列數量相同。 – gdy

+0

我準備了玩具fastq文件,這是我的fastq文件的一小部分。如果你嘗試這個,我有3個積極的命中。基本上我想從這個fastq文件中提取三個正面點擊的序列信息,並丟棄大多數其他負面點擊。你可以在下面的鏈接下載玩具fastq文件[鏈接](https://drive.google.com/file/d/0ByEbUQPY_T_oci1fbDFHSHQ4WUk/view?usp=sharing) – gdy

+0

親愛的康拉德,我看了一下福爾摩斯提供的鏈接和我已經從中得到了答案。 sread(讀取[hit])將僅提取正序列讀數。但我感謝你的幫助! – gdy