r - 替换 FASTA 文件中的核苷酸
问题描述
我正在尝试使用从 gnoMAD 中提取的 CSV 文件为基因的每个变体制作 fasta 文件。在这个函数中,x 是一个包含每个变体坐标的列表,Y 是使用 seqinr 库中的 read.fasta 函数打开的 fasta 文件,data 是我从 gnomAD 下载的文件。我在使用最后一个 if 语句时遇到问题,应该管理 SNV。由于某种原因,不是在指定位置插入核苷酸,而是在 fasta 文件的末尾连接该值。我已经阅读了该库的文档,但没有找到有关 fasta 文件的内部表示的任何信息。输出示例:
t" "t" "g" "c" "t" "c" "a" "c" "a" "g" "t" "g" "t" "t" "t" "g"
"a" "g" "c" "a" "g" "t" "g" "c" "t" "g" "a" "g" "c" "a" "c" "a" "a" "a" "g" "c"
"a" "g" "a" "c" "a" "c" "t" "c" "a" "a" "t" "a" "a" "a" "t" "g" "c" "t" "a" "g"
9
"a" "t" "t" "t" "a" "c" "a" "c" "a" "c" "t" "c" "C"
索引为 9 的 C 应位于序列的第九位
files<-function(x,y,data){
test<-str_detect(data[ ,"Consequence"],"[del]")
names<-paste(data[ ,"Chromosome"],data[ ,"Position"],data[ ,"Reference"],data[ ,"Alternate"],"ACE2",sep="-")
for (j in 1:length(x)){
copy<-y
if(length(x[[j]])!=1 && test[j]==TRUE){
for(i in x[[j]][1]:x[[j]][2]){
copy[[1]][i]<-NA
}
copy<-copy[[1]][!is.na(copy[[1]])]
}
if(length(x[[j]])==1 && test[j]==TRUE){
copy[[1]][x[[j]][1]]<-NA
copy<-copy[[1]][!is.na(copy[[1]])]
}
if(test[j]==FALSE){
n<-x[[j]][1]
copy[[1]][n]<-complementary(data[j,"Alternate"])
print(copy[[1]][n])
}
putz<-paste(names[j],"fasta",sep=".")
write.fasta(copy,names[j],putz)
}
}
解决方案
推荐阅读
- c++ - boost::managed_shared_memory 是否使用我硬盘上的文件?
- javascript - 将简单的php日期变量传递给javascript
- javascript - 匹配尚未引用的标识符
- mongodb - MongoDB 在对非索引字段进行过滤或排序时性能极慢
- ios - iOS Xcode SPM 未能解开超类
- connection-string - 如何在 PRODUCTION 中保持连接字符串和 API 密钥的安全
- jenkins - Jenkins Pipeline - ssh-agent 找不到凭据
- ios - Xcode 11.1 错误:产生多个命令
- sql - 带有子字符串的棘手 SQL
- c# - 为什么从应用程序调用时 sql 过程会返回 0 行?