grep fonksiyonu – örüntü arama

Unix – grep fonksiyonu

grep 'örüntü' aratacağımız_dosya
#'CTAC' örüntüsünü N7LCO4.txt dosyasında aratalım
echo 'CAAGCAGAAGACGGCATACGAGATCGGTCTCGGCATTCCTGCTGAACCGCTCTTCCGATCTCTACGGTCAACAAATCATAAAGATATTGG' > N7LCO4.txt  
grep 'CTAC' N7LCO4.txt  

Rgrep fonksiyonunda TAAC örüntüsünün füzyon primerdeki yerini saptayalım.

> grep (aranan ifade, metin)
#N5HCO0 isimli füzyon primerde, *HCO* primeri baz başlangıcı olan TAAAC bazlarını arayalım.
#bu çalışma için füzyon primer; Miseq flow cell bind, sequencing primer binding bölgeleri ve etiket içeren HCO/LCO primerlerinden oluşur.
> N5HCO0 <- "AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCTTAAACTTCAGGGTGACCAAAAAATCA"
> grep (“TAAAC”, “N5HCO0”)
[1] 1
#1 aranan “TAAAC” örüntüsünün “N5HCO0” primeri içinde yer aldığını gösterir. 

İki farklı primerde örüntünün varlığına ya da yokluğuna bakalım.

> N5HCO0 <- "AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCTTAAACTTCAGGGTGACCAAAAAATCA"
> N7LCO4 <- "CAAGCAGAAGACGGCATACGAGATCGGTCTCGGCATTCCTGCTGAACCGCTCTTCCGATCTCTACGGTCAACAAATCATAAAGATATTGG"
> comb_fusion_primers <- c("AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCTTAAACTTCAGGGTGACCAAAAAATCA", "CAAGCAGAAGACGGCATACGAGATCGGTCTCGGCATTCCTGCTGAACCGCTCTTCCGATCTCTACGGTCAACAAATCATAAAGATATTGG")
> grep ("TAAAC", comb_fusion_primers)
[1] 1 
#1 TAAAC örüntüsünün ilk primerde yer aldığını gösterir.
#grep fonksiyonuna value=TRUE parametresini eklersek;
> grep ("TAAAC", value=TRUE, comb_fusion_primers)
[1] "AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCTTAAACTTCAGGGTGACCAAAAAATCA"
#TAAAC örüntüsünün yer aldığı primerin dizisini; grep fonksiyonuna bir de invert=TRUE eklersek;
grep("TAAAC", comb_fusion_primers, value=TRUE invert=TRUE)
> [1] "CAAGCAGAAGACGGCATACGAGATCGGTCTCGGCATTCCTGCTGAACCGCTCTTCCGATCTCTACGGTCAACAAATCATAAAGATATTGG"
#TAAAC örüntüsünün yer almadığı primer dizisini yani N7LCO4 primeri buluruz.
#primerlerimizden "TAAAC" örüntüsü için mantıksal çıkarımlar almak için grepl fonksiyonuna başvuralım.
> grepl("TAAAC", comb_fusion_primers)
[1]  TRUE FALSE
#"TAAAC" örüntümüzün hangi primerde kaçıncı karakterden itibaren başladığını bulmak için regexpr fonksionunu kullanalım
> regexpr("TAAAC", comb_fusion_primers) 
[1] 59 -1 
#İlk primerde 59. karakterden itibaren
attr(,"match.length") 
[1]  5 -1 
#5 bazlık bir eşleşme olduğunu belirtirken -1 ikinci primerde eşleşme olmadığını belirtir.
> print(comb_fusion_primers)
[1] "AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCTTAAACTTCAGGGTGACCAAAAAATCA"      
[2] "CAAGCAGAAGACGGCATACGAGATCGGTCTCGGCATTCCTGCTGAACCGCTCTTCCGATCTCTACGGTCAACAAATCATAAAGATATTGG"

#Son olarak primerlerdeki baz sayılarına bir göz atalım.
>nchar(comb_fusion_primer)
[1] 84 90

Örneklerdeki primerler ve primerlerdeki örüntüler Elbrecht, V., & Leese, F. (2015) çalışmasından alınmıştır.

Farklı dillerdeki uzantıları eklemek için…