保加利亚乳杆菌β-Hexcase基因克隆:简并引物法与应用

需积分: 13 0 下载量 51 浏览量 更新于2024-08-12 收藏 956KB PDF 举报
本文档主要探讨了一项在2013年的研究,标题为"简并引物法克隆保加利亚乳杆菌β-N-乙酰氨基己糖苷酶基因"。这项研究关注的是β-N-乙酰氨基己糖苷酶(β-Hexcase),这是一种在细菌、植物和动物中普遍存在的重要酶,它具备外切酶活性,能够催化去除β-N-乙酰氨基己糖的非还原性氨基己糖残基,对于细菌细胞分裂过程具有关键作用。研究人员选择了一种与保加利亚乳杆菌LJJ有相近亲缘关系的菌种,目的是克隆这种酶的基因片段。 研究团队利用在线的简并引物设计工具,如ICODEHOP和CODEHOP,设计了一对简并引物,即Hex1-f和Hex1-r,作为PCR扩增的引物。他们使用LJJ菌株的基因组DNA作为模板,通过PCR技术成功扩增出了一段614bp的产物。这个PCR产物随后被连接到pGEM-T质粒载体上,并成功克隆到了大肠杆菌DH5α中,这一过程属于基因工程中的常规操作,是基因克隆和表达的基础步骤。 这项研究的意义在于,通过对β-Hexcase基因的克隆,有助于理解其在保加利亚乳杆菌中的生物学功能,以及可能在食品工业中的应用,例如在乳制品生产中的细胞自溶调控作用。此外,它也为我国乳酸菌资源的开发利用提供了理论支持,特别是对于传统发酵乳制品的品质控制和安全检测技术的研究。 该论文发表在《食品科学技术学报》上,作者包括崔文明、刘摇鹭、张书文等人,他们来自中国农业科学院农产品加工研究所,强调了这项工作的科学价值和实际应用前景。文章的引用格式为:CUI Wen-ming, et al., Cloning of β-N-Acetylhexosaminidase Gene Fragment from Lactobacillus delbrueckii subsp. bulgaricus LJJ with Degenerate Oligonucleotide Primers. Journal of Food Science and Technology, 2013, 31(1): 33-37。 这篇论文揭示了通过简并引物技术在保加利亚乳杆菌中克隆特定酶基因的技术细节,对于了解该酶的生物学功能及其在食品工业中的作用具有重要价值,同时也展示了我国在乳品产业技术研发方面的进展。

class SVDRecommender: def __init__(self, k=50, ncv=None, tol=0, which='LM', v0=None, maxiter=None, return_singular_vectors=True, solver='arpack'): self.k = k self.ncv = ncv self.tol = tol self.which = which self.v0 = v0 self.maxiter = maxiter self.return_singular_vectors = return_singular_vectors self.solver = solver def svds(self, A): if self.which == 'LM': largest = True elif self.which == 'SM': largest = False else: raise ValueError("which must be either 'LM' or 'SM'.") if not (isinstance(A, LinearOperator) or isspmatrix(A) or is_pydata_spmatrix(A)): A = np.asarray(A) n, m = A.shape if self.k <= 0 or self.k >= min(n, m): raise ValueError("k must be between 1 and min(A.shape), k=%d" % self.k) if isinstance(A, LinearOperator): if n > m: X_dot = A.matvec X_matmat = A.matmat XH_dot = A.rmatvec XH_mat = A.rmatmat else: X_dot = A.rmatvec X_matmat = A.rmatmat XH_dot = A.matvec XH_mat = A.matmat dtype = getattr(A, 'dtype', None) if dtype is None: dtype = A.dot(np.zeros([m, 1])).dtype else: if n > m: X_dot = X_matmat = A.dot XH_dot = XH_mat = _herm(A).dot else: XH_dot = XH_mat = A.dot X_dot = X_matmat = _herm(A).dot def matvec_XH_X(x): return XH_dot(X_dot(x)) def matmat_XH_X(x): return XH_mat(X_matmat(x)) XH_X = LinearOperator(matvec=matvec_XH_X, dtype=A.dtype, matmat=matmat_XH_X, shape=(min(A.shape), min(A.shape))) #获得隐式定义的格拉米矩阵的低秩近似。 eigvals, eigvec = eigsh(XH_X, k=self.k, tol=self.tol ** 2, maxiter=self.maxiter, ncv=self.ncv, which=self.which, v0=self.v0) #格拉米矩阵有实非负特征值。 eigvals = np.maximum(eigvals.real, 0) #使用来自pinvh的小特征值的复数检测。 t = eigvec.dtype.char.lower() factor = {'f': 1E3, 'd': 1E6} cond = factor[t] * np.finfo(t).eps cutoff = cond * np.max(eigvals) #获得一个指示哪些本征对不是简并微小的掩码, #并为阈值奇异值创建一个重新排序数组。 above_cutoff = (eigvals > cutoff) nlarge = above_cutoff.sum() nsmall = self.k - nlarge slarge = np.sqrt(eigvals[above_cutoff]) s = np.zeros_like(eigvals) s[:nlarge] = slarge if not self.return_singular_vectors: return np.sort(s) if n > m: vlarge = eigvec[:, above_cutoff] ularge = X_matmat(vlarge) / slarge if self.return_singular_vectors != 'vh' else None vhlarge = _herm(vlarge) else: ularge = eigvec[:, above_cutoff] vhlarge = _herm(X_matmat(ularge) / slarge) if self.return_singular_vectors != 'u' else None u = _augmented_orthonormal_cols(ularge, nsmall) if ularge is not None else None vh = _augmented_orthonormal_rows(vhlarge, nsmall) if vhlarge is not None else None indexes_sorted = np.argsort(s) s = s[indexes_sorted] if u is not None: u = u[:, indexes_sorted] if vh is not None: vh = vh[indexes_sorted] return u, s, vh def _augmented_orthonormal_cols(U, n): if U.shape[0] <= n: return U Q, R = np.linalg.qr(U) return Q[:, :n] def _augmented_orthonormal_rows(V, n): if V.shape[1] <= n: return V Q, R = np.linalg.qr(V.T) return Q[:, :n].T def _herm(x): return np.conjugate(x.T) 将上述代码修改为使用LM,迭代器使用arpack

2023-06-08 上传