ลองสร้างกราฟความถี่นิวคลีโอไทด์ด้วยตัวเอง
ถึงเวลาเจาะลึกความถี่ของนิวคลีโอไทด์ในแต่ละรอบการอ่าน (cycle) วิธีที่ดีที่สุดคือการสร้างภาพแสดงข้อมูล โดยทั่วไปแล้ว รอบแรกๆ มักจะสุ่มค่อนข้างมาก และความถี่ของนิวคลีโอไทด์จะเริ่มคงที่ขึ้นในรอบถัดไป
แบบฝึกหัดนี้ใช้ไฟล์ fastq ฉบับสมบูรณ์ SRR1971253 โดยมีการเตรียมข้อมูลล่วงหน้าให้แล้ว ดังนี้:
library(ShortRead)
fqsample <- readFastq(dirPath = "data",
pattern = "SRR1971253.fastq")
# extract reads
abc <- alphabetByCycle(sread(fqsample))
# Transpose nucleotides A, C, G, T per column
nucByCycle <- t(abc[1:4,])
# Tidy dataset
nucByCycle <- nucByCycle %>%
as_tibble() %>% # convert to tibble
mutate(cycle = 1:50) # add cycle numbers
งานของคุณคือสร้างกราฟแสดงความถี่นิวคลีโอไทด์ตามรอบการอ่าน โดยใช้ฟังก์ชันจาก tidyverse!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Bioconductor เบื้องต้นใน R
คำแนะนำการฝึกหัด
- ใช้
glimpse()กับออบเจกต์nucByCycleเพื่อดูภาพรวมของข้อมูล - แปลงคอลัมน์ตัวอักษรนิวคลีโอไทด์ให้อยู่ในคอลัมน์
alphabetโดยใช้pivot_longer()และสร้างคอลัมน์countใหม่ - สร้างกราฟเส้นโดยให้
cycleอยู่บนแกน x และcountอยู่บนแกน y โดยแบ่งสีตามalphabet
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Glimpse nucByCycle
___
# Create a line plot of cycle vs. count
nucByCycle %>%
# Gather the nucleotide letters in alphabet and get a new count column
pivot_longer(-cycle, names_to = ___, values_to = ___) %>%
ggplot(aes(x = ___, y = ___, color = ___)) +
geom_line(size = 0.5 ) +
labs(y = "Frequency") +
theme_bw() +
theme(panel.grid.major.x = element_blank())