我是編碼新手,并且掙扎了一個月。請幫我解決一下這個。樣本 fasta 序列(近 100M 讀取)
Line_1 CGAATTCGCCTTTGAGATTGAGTGTGAAGTTAATATTCATAGCTTCACGCTCGATCTCAAAGGCTTTTTTT GGCAAGCAAAAGACGGCATACGAGATAT CAACCACATGTGTGCATGACT AGCCGATCG CAGCGGCCGCATACGATTGCT
Line_2 CGAATTCGCCTTTGAGATTGAGTGTGAAGTTAATATTCATAGCTTCACGCTCGATCTCAAAGGCTTTTTT GGCAAGCAAAAGACGGCATACGAGATAT CAACCACATGTGTGCATGACT ATGCCGTAC CAGCGGCCGCATACGATTGCT
Line_3 CGAATTCGCCTTTGAGATTGAGTGTGAAGTTAATATTCATAGCTTCACGCTCGATCTCAAAGGCTTTTTTT GGCAAGCAAAAGACGGCATACGAGATAT GTACCACATGTGTGACGTACT TTACGTACG CAGCGGCCGCATACGATTGCT
我希望找到模式“GGCAAGCAAAAGACGGCATACGAGATAT”然后立即在模式之后,18nt(ACT之前)需要被捕獲并寫入帶有“18nt bases”列的excel表中,并在下一列中計數。喜歡,
| 條碼 | Count_in_reads |
|---|---|
| CAACCACATGTGTGCCATG | 2 |
| GTACCACATGTGTGACGT | 1 |
像這樣的東西。
在第二部分中,我希望利用這個 18nt 列再次搜索要查找的序列(ACT 后 9bp,即 18nt 之后),并在每個 18nt 條碼型別中對其進行計數。
| 條碼 | 隨機條形碼 | Frequency_random_barcode |
|---|---|---|
| CAACCACATGTGTGCCATG | AGCGATCG | 1 |
| CAACCACATGTGTGCCATG | ATGCCGTAC | 1 |
| GTACCACATGTGTGACGT | TTACGTACG | 1 |
所以一個 18nt 條碼可以有幾個隨機的 9bp 序列。顯示為具有相同 18nt 條碼的 2 行,但隨機條碼不同,每行的頻率為 1。
如果我能解釋這個問題,請告訴我。
謝謝您的幫助!!!
uj5u.com熱心網友回復:
假設您的資料存盤在名為的 data.frame 中df,而序列位于名為 的列中sequence。
library(dplyr)
library(stringr)
df %>%
mutate(Barcodes = str_extract(sequence, "(?<=GGCAAGCAAAAGACGGCATACGAGATAT).{18}")) %>%
count(Barcodes)
回傳
# A tibble: 2 x 2
Barcodes n
<chr> <int>
1 CAACCACATGTGTGCATG 2
2 GTACCACATGTGTGACGT 1
和
df %>%
mutate(
Barcodes = str_extract(sequence, "(?<=GGCAAGCAAAAGACGGCATACGAGATAT).{18}"),
Random_barcode = str_extract(sequence, "(?<=GGCAAGCAAAAGACGGCATACGAGATAT.{18}ACT).{9}")
) %>%
count(Barcodes, Random_barcode)
回傳
# A tibble: 3 x 3
Barcodes Random_barcode n
<chr> <chr> <int>
1 CAACCACATGTGTGCATG AGCCGATCG 1
2 CAACCACATGTGTGCATG ATGCCGTAC 1
3 GTACCACATGTGTGACGT TTACGTACG 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/324560.html
上一篇:計算周時差
下一篇:將電話國家代碼轉換為國家名稱
