seq_alignment = function(sequence) { shell("del /f my_needle_file") for (i in 1:length(sequences[,1])) { cat(as.character(paste(">", as.vector(sequences[i,1]), sep="")), as.character(as.vector(sequences[i,6])), file = "file1", sep = "\n") for(j in 1:length(sequences[,1])) { cat(as.character(paste(">", as.vector(sequences[i,1]), sep="")), as.character(as.vector(sequences[i,6])), file = "file2", sep = "\n") shell("needle file1 file2 stdout -gapopen 10.0 -gapextend 0.5 >> my_needle_file") } } #提示结果 cat("Needle程序完成所有序列的两两比对,结果存入文件\"my_needle_file\"\n") }
时间: 2024-01-03 18:05:21 浏览: 15
这段代码看起来像是一个用R语言编写的序列比对的函数。该函数接受一个序列作为输入,然后使用needle程序进行该序列与其他所有序列的两两比对,并将比对结果存储在名为"my_needle_file"的文件中。在这个过程中,该函数使用了shell命令来调用needle程序。最后,该函数输出一个提示,告诉用户比对结果已经存储在文件中。
相关问题
seq_alignment(sequences = hit_sequences) seq_alignment = function(sequences) { shell("del /f my_needle_file") for (i in 1:length(sequences[,1])) { cat(as.character(paste(">", as.vector(sequences[i,1]), sep="")), as.character(as.vector(sequences[i,6])), file = "file1", sep = "\n") for(j in 1:length(sequences[,1])) { cat(as.character(paste(">", as.vector(sequences[i,1]), sep="")), as.character(as.vector(sequences[i,6])), file = "file2", sep = "\n") shell("needle file1 file2 stdout -gapopen 10.0 -gapextend 0.5 >> my_needle_file") } } 输出乱码文件
这段代码的作用是对一组序列进行 Needleman-Wunsch 全局比对,并将比对结果输出到一个乱码文件中。其中,输入的序列信息存储在 sequences 变量中,每行包含了序列的 ID(第一列)和序列本身(第六列)。在函数中,首先删除之前可能存在的名为 "my_needle_file" 的文件,然后对每个序列两两进行比对,并将比对结果追加到 "my_needle_file" 文件中。但是,由于比对结果是直接输出到文件而不是变量中,所以函数输出的是乱码文件而不是比对结果。
seq_alignment = function(sequences) { shell("del /f my_needle_file") for (i in 1:length(sequences[,1])) { cat(as.character(paste(">", as.vector(sequences[i,1]), sep="")), as.character(as.vector(sequences[i,6])), file = "file1", sep = "\n") for(j in 1:length(sequences[,1])) { cat(as.character(paste(">", as.vector(sequences[i,1]), sep="")), as.character(as.vector(sequences[i,6])), file = "file2", sep = "\n") shell("needle file1 file2 stdout -gapopen 10.0 -gapextend 0.5 >> my_needle_file") } }
这段代码看起来像是一个用于序列比对的脚本。它首先定义了一个名为 seq_alignment 的函数,该函数接受一个包含序列的矩阵作为参数。接着,函数使用 shell 命令删除名为 my_needle_file 的文件(如果存在的话)。
接下来的循环使用 cat 函数将每个序列写入名为 file1 的文件中。然后,内部循环迭代每个序列,并使用 cat 函数将当前序列写入名为 file2 的文件中。然后,shell 命令调用 needle 程序,使用 file1 和 file2 中的序列进行 Needleman-Wunsch 序列比对,并将结果追加到 my_needle_file 中。
需要注意的是,这段代码的实际效果可能需要根据实际应用场景进行修改。