为什么seq(vector ) ≡ 1:length(vector) .
时间: 2023-11-24 12:06:16 浏览: 75
在数学中,seq(vector) 表示从 1 到向量 vector 的长度的序列。也就是说,如果 vector 的长度为 n,则 seq(vector) = [1, 2, 3, ..., n]。这是因为在大多数编程语言中,向量的索引从 1 开始而不是从 0 开始,所以我们可以将向量的索引看作从 1 到 n 的整数序列。因此,seq(vector) 等价于 1:length(vector)。
相关问题
翻译代码: class AutocorrelationTest(Test):def init(self, seq_length: int ,shift: int = 1): # Generate base Test class self._shift = shift super(AutocorrelationTest, self).init(“Autocorrelation”, 0.01, seq_length) def _execute(self, bits: numpy.ndarray): """ Overridden method of Test class: check its docstring for further information. """ original_vector : numpy.ndarray = bits[:bits.size - self._shift] shifted_vector: numpy.ndarray = numpy.roll(bits, -self._shift)[:bits.size - self._shift] result_vector: numpy.ndarray = numpy.bitwise_xor(original_vector, shifted_vector) # Compute ones int result vector ones: int = numpy.count_nonzero(result_vector) tmp: float = 2 * (ones - (bits.size - self._shift) / 2.0) / math.sqrt(bits.size - self._shift) # Compute score score: float = math.erfc(abs(tmp) / (math.sqrt(2.0))) # Compute q_value q_value: float = math.erfc(tmp / (math.sqrt(2.0))) / 2.0 # Return result if score >= self.significance_value: return Result(self.name, True, numpy.array([score]), numpy.array([q_value])) return Result(self.name, False, numpy.array([score]), numpy.array([q_value])) def repr(self) -> str: return f’{self.name} (k={self._shift})
这段代码定义了一个类AutocorrelationTest,继承自Test类。它有两个参数:seq_length表示序列的长度,shift表示计算自相关系数时的偏移值,默认为1。在类的构造函数__init__中进行初始化。
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 中。
需要注意的是,这段代码的实际效果可能需要根据实际应用场景进行修改。