我有这个矩阵
map1.forEach( (key, value) -> { if(checkKey(key)) map3.put(key, value); });
我需要编写一个函数来检测给定序列是否是DNA(只有“C”,“G”,“A”和“T”字母)或RNA(只有“C”,“G”) “,”A“和”U“字母)。
如果是DNA序列,则功能应该是:
1.打印“Seq is DNA,转换为RNA ..”;
2.通过将字母“T”替换为“U”将其转换为RNA,并将结果保存到 seq.mat 对象的 RNASeq 列。
如果是RNA序列,则功能应该是:
1.打印“Seq is RNA”;
2.将序列的值保存到 seq.mat 对象的 RNASeq 列。
我知道这很邋but但是我在考虑这样的事情......
$comment = ($input -split "`r?`n") | Where-Object { $_.Trim() -ne "" }
虽然我在使用这个函数时遇到了很多麻烦...然后可能会将函数应用于saq.mat。或者将函数应用于seq.mat。
答案 0 :(得分:2)
您的功能有几个问题。我相信我已经解决了这些问题,而且它现在完成了你在问题中所描述的内容。
DNA.RNA = function(x) {
gr <- grepl("[^ACGT]", x[, 2])
sapply(gr, function(y){
if(y) print("Seq is RNA") else print("Seq is DNA, converting to RNA..")
})
x[, 3] = gsub("T", "U", x[, 2])
x
}
seq.mat.result <- DNA.RNA(seq.mat)