将需要再克隆的细胞株自培养孔内吸出并作细胞计数,计出1mL的细胞数。
用HT培养液稀释, 使细胞浓度为50~60个/mL,于96孔培养板中每孔加0.1mL(五六个细胞/孔)。
接种2排,剩余细胞悬液用HT培养液作倍比稀释,再接种2排,如此类推,直至使每孔含0.5~1个细胞。
培养7~10d后,选择单个克隆生长的阳性孔再一次进行克隆。一般需要如此重复3~5次,直至达100%阳性孔率时即可,以确保抗体由单个克隆所产生。
例如:
实验细胞克隆化培养技术—有限稀释法
一、实验目的:
1、掌握用有限稀释法进行细胞克隆化培养技术; 2、学会细胞克隆形成的辩观察技能;
3、配合抗体分泌细胞筛选技术,确定抗体分泌细胞。 二、实验原理:
克隆化培养即单细胞培养技术,用有限稀释法进行杂交瘤细胞克隆化培养,可以及时确定阳性杂交瘤细胞株,同时淘汰因发生染色体丢失或抗体的轻、重链基因分离而出现无抗体分泌阴性细胞株。
一般杂交瘤细胞需经过52—3次反复克隆后,才能达到100%细胞阳性率。
该办法亦适用于一般细胞培养中的细胞纯化、突变细胞株的选择,识别和分离。是细胞株的常用方法。
三、实验材料:
杂交瘤细胞、25毫升培养瓶、96孔细胞培养板(天津有机玻璃厂)、移液管(1毫升、5毫升、10毫升)、弯头滴管、倒置显微镜、CO2培养箱、白细胞计数板、计数器、盖玻片、防水笔、RPMI-1640、小牛血清、青链霉素、10毫升刻度离心管,00橡胶塞,饲养细胞(3-6×105/ml、见腹腔细胞的制备)。
四、实验步骤:
1、分装了每孔0.1毫升腹腔细胞的96孔细胞培养板(可提前24小时准备就绪,置CO2培养箱中备用);
2、自细胞培养瓶中收集长势良好的杂交瘤细胞(亦可自24孔培养板孔中收集),制成悬液。
3、按白细胞计数方法准确计得细胞悬液的细胞数,一般在105/毫升左右。
4、取3支10毫升刻度离心管排列在超净工作台试管架上,先用无血清培养基将细胞稀释至103/毫升,再用含15%小牛血清的完全培养基稀释到101/毫升细胞,即每0.1毫升1个细胞。
5、每孔0.1毫升细胞悬液。
6、置37℃5%CO2培养箱,4天后取出观察,并在板盖上打上标记,做好记录并统计结果。
7、继续培养时,则在第4-5天更换1/2培养基,约第7-9天可以收获培养液上清用于检测抗体。并重复检测1-2次。
8、选择单克隆生长孔,生长良好,阳性强者,转移到24孔板再做克隆经培养或扩大培养。
五、实验结果:
实验结果以总细胞孔(如96孔)中出现克隆孔统计出克隆百分率,并可进一步按单细胞孔、双细胞孔、多细胞孔分别计算出百分率。
六、注意事项:
1、注意无菌 *** 作,一旦发现污染(孔)必须及时处理;
2、计数细胞要求准确,稀释量亦要准确,否则将造成一孔多细胞克隆或克隆百分离太低;
3、在计数克隆出现率之前,不宜更换培养液,也不宜强烈振动培养板; 4、做克隆化培养的小牛血清必须是优质血清;
5、若做克隆抗体检测时,特别要保护细胞的生长状况,防止细胞生长不良甚至丢失。 七、说明:
哺乳动物细胞通过分离、稀释接种,培养在适宜于单细胞生长的培养液中,形成细胞克隆。运用这项技术可以制作细胞成活曲线,即在接种相同数量细胞的培养瓶中,加入不同浓度的化学药品,或照以不同剂量的射线,观察其对细胞的听见害程度。由此可以在哺乳类细胞中进行诱变试验及分离突变细胞。
以下是LDA的m文件函数:你稍稍改改就能用了!
function [eigvector, eigvalue, elapse] = LDA(gnd,options,data)
% LDA: Linear Discriminant Analysis
%
% [eigvector, eigvalue] = LDA(gnd, options, data)
%
% Input:
% data - Data matrix. Each row vector of fea is a data point.
% gnd - Colunm vector of the label information for each
% data point.
% options - Struct value in Matlab. The fields in options
% that can be set:
%
%Regu - 1: regularized solution,
%a* = argmax (a'X'WXa)/(a'X'Xa+ReguAlpha*I)
% 0: solve the sinularity problem by SVD
% Default: 0
%
% ReguAlpha - The regularization parameter. Valid
% when Regu==1. Default value is 0.1.
%
%ReguType - 'Ridge': Tikhonov regularization
% 'Custom': User provided
% regularization matrix
% Default: 'Ridge'
%regularizerR - (nFea x nFea) regularization
% matrix which should be provided
% if ReguType is 'Custom'. nFea is
% the feature number of data
% matrix
%Fisherface - 1: Fisherface approach
% PCARatio = nSmp - nClass
% Default: 0
%
%PCARatio - The percentage of principal
%component kept in the PCA
%step. The percentage is
%calculated based on the
%eigenvalue. Default is 1
%(100%, all the non-zero
%eigenvalues will be kept.
%If PCARatio >1, the PCA step
%will keep exactly PCARatio principle
%components (does not exceed the
%exact number of non-zero components).
%
%
% Output:
% eigvector - Each column is an embedding function, for a new
% data point (row vector) x, y = x*eigvector
% will be the embedding result of x.
% eigvalue - The sorted eigvalue of LDA eigen-problem.
% elapse- Time spent on different steps
%
%Examples:
%
% fea = rand(50,70)
% gnd = [ones(10,1)ones(15,1)*2ones(10,1)*3ones(15,1)*4]
% options = []
% options.Fisherface = 1
% [eigvector, eigvalue] = LDA(gnd, options, fea)
% Y = fea*eigvector
%
%
% See also LPP, constructW, LGE
%
%
%
%Reference:
%
% P. N. Belhumeur, J. P. Hespanha, and D. J. Kriegman, 揈igenfaces
% vs. fisherfaces: recognition using class specific linear
% projection,� IEEE Transactions on Pattern Analysis and Machine
% Intelligence, vol. 19, no. 7, pp. 711-720, July 1997.
%
% Deng Cai, Xiaofei He, Yuxiao Hu, Jiawei Han, and Thomas Huang,
% "Learning a Spatially Smooth Subspace for Face Recognition", CVPR'2007
%
% Deng Cai, Xiaofei He, Jiawei Han, "SRDA: An Efficient Algorithm for
% Large Scale Discriminant Analysis", IEEE Transactions on Knowledge and
% Data Engineering, 2007.
%
% version 2.1 --June/2007
% version 2.0 --May/2007
% version 1.1 --Feb/2006
% version 1.0 --April/2004
%
% Written by Deng Cai (dengcai2 AT cs.uiuc.edu)
%
if ~exist('data','var')
global data
end
if (~exist('options','var'))
options = []
end
if ~isfield(options,'Regu') | ~options.Regu
bPCA = 1
if ~isfield(options,'PCARatio')
options.PCARatio = 1
end
else
bPCA = 0
if ~isfield(options,'ReguType')
options.ReguType = 'Ridge'
end
if ~isfield(options,'ReguAlpha')
options.ReguAlpha = 0.1
end
end
tmp_T = cputime
% ====== Initialization
[nSmp,nFea] = size(data)
if length(gnd) ~= nSmp
error('gnd and data mismatch!')
end
classLabel = unique(gnd)
nClass = length(classLabel)
Dim = nClass - 1
if bPCA &isfield(options,'Fisherface') &options.Fisherface
options.PCARatio = nSmp - nClass
end
if issparse(data)
data = full(data)
end
sampleMean = mean(data,1)
data = (data - repmat(sampleMean,nSmp,1))
bChol = 0
if bPCA &(nSmp >nFea+1) &(options.PCARatio >= 1)
DPrime = data'*data
DPrime = max(DPrime,DPrime')
[R,p] = chol(DPrime)
if p == 0
bPCA = 0
bChol = 1
end
end
%======================================
% SVD
%======================================
if bPCA
if nSmp >nFea
ddata = data'*data
ddata = max(ddata,ddata')
[eigvector_PCA, eigvalue_PCA] = eig(ddata)
eigvalue_PCA = diag(eigvalue_PCA)
clear ddata
maxEigValue = max(abs(eigvalue_PCA))
eigIdx = find(eigvalue_PCA/maxEigValue <1e-12)
eigvalue_PCA(eigIdx) = []
eigvector_PCA(:,eigIdx) = []
[junk, index] = sort(-eigvalue_PCA)
eigvalue_PCA = eigvalue_PCA(index)
eigvector_PCA = eigvector_PCA(:, index)
%=======================================
if options.PCARatio >1
idx = options.PCARatio
if idx <length(eigvalue_PCA)
eigvalue_PCA = eigvalue_PCA(1:idx)
eigvector_PCA = eigvector_PCA(:,1:idx)
end
elseif options.PCARatio <1
sumEig = sum(eigvalue_PCA)
sumEig = sumEig*options.PCARatio
sumNow = 0
for idx = 1:length(eigvalue_PCA)
sumNow = sumNow + eigvalue_PCA(idx)
if sumNow >= sumEig
break
end
end
eigvalue_PCA = eigvalue_PCA(1:idx)
eigvector_PCA = eigvector_PCA(:,1:idx)
end
%=======================================
eigvalue_PCA = eigvalue_PCA.^-.5
data = (data*eigvector_PCA).*repmat(eigvalue_PCA',nSmp,1)
else
ddata = data*data'
ddata = max(ddata,ddata')
[eigvector, eigvalue_PCA] = eig(ddata)
eigvalue_PCA = diag(eigvalue_PCA)
clear ddata
maxEigValue = max(eigvalue_PCA)
eigIdx = find(eigvalue_PCA/maxEigValue <1e-12)
eigvalue_PCA(eigIdx) = []
eigvector(:,eigIdx) = []
[junk, index] = sort(-eigvalue_PCA)
eigvalue_PCA = eigvalue_PCA(index)
eigvector = eigvector(:, index)
%=======================================
if options.PCARatio >1
idx = options.PCARatio
if idx <length(eigvalue_PCA)
eigvalue_PCA = eigvalue_PCA(1:idx)
eigvector = eigvector(:,1:idx)
end
elseif options.PCARatio <1
sumEig = sum(eigvalue_PCA)
sumEig = sumEig*options.PCARatio
sumNow = 0
for idx = 1:length(eigvalue_PCA)
sumNow = sumNow + eigvalue_PCA(idx)
if sumNow >= sumEig
break
end
end
eigvalue_PCA = eigvalue_PCA(1:idx)
eigvector = eigvector(:,1:idx)
end
%=======================================
eigvalue_PCA = eigvalue_PCA.^-.5
eigvector_PCA = (data'*eigvector).*repmat(eigvalue_PCA',nFea,1)
data = eigvector
clear eigvector
end
else
if ~bChol
DPrime = data'*data
% options.ReguAlpha = nSmp*options.ReguAlpha
switch lower(options.ReguType)
case {lower('Ridge')}
for i=1:size(DPrime,1)
DPrime(i,i) = DPrime(i,i) + options.ReguAlpha
end
case {lower('Tensor')}
DPrime = DPrime + options.ReguAlpha*options.regularizerR
case {lower('Custom')}
DPrime = DPrime + options.ReguAlpha*options.regularizerR
otherwise
error('ReguType does not exist!')
end
DPrime = max(DPrime,DPrime')
end
end
[nSmp,nFea] = size(data)
Hb = zeros(nClass,nFea)
for i = 1:nClass,
index = find(gnd==classLabel(i))
classMean = mean(data(index,:),1)
Hb (i,:) = sqrt(length(index))*classMean
end
elapse.timeW = 0
elapse.timePCA = cputime - tmp_T
tmp_T = cputime
if bPCA
[dumpVec,eigvalue,eigvector] = svd(Hb,'econ')
eigvalue = diag(eigvalue)
eigIdx = find(eigvalue <1e-3)
eigvalue(eigIdx) = []
eigvector(:,eigIdx) = []
eigvalue = eigvalue.^2
eigvector = eigvector_PCA*(repmat(eigvalue_PCA,1,length(eigvalue)).*eigvector)
else
WPrime = Hb'*Hb
WPrime = max(WPrime,WPrime')
dimMatrix = size(WPrime,2)
if Dim >dimMatrix
Dim = dimMatrix
end
if isfield(options,'bEigs')
if options.bEigs
bEigs = 1
else
bEigs = 0
end
else
if (dimMatrix >1000 &Dim <dimMatrix/10) | (dimMatrix >500 &Dim <dimMatrix/20) | (dimMatrix >250 &Dim <dimMatrix/30)
bEigs = 1
else
bEigs = 0
end
end
if bEigs
%disp('use eigs to speed up!')
option = struct('disp',0)
if bChol
option.cholB = 1
[eigvector, eigvalue] = eigs(WPrime,R,Dim,'la',option)
else
[eigvector, eigvalue] = eigs(WPrime,DPrime,Dim,'la',option)
end
eigvalue = diag(eigvalue)
else
[eigvector, eigvalue] = eig(WPrime,DPrime)
eigvalue = diag(eigvalue)
[junk, index] = sort(-eigvalue)
eigvalue = eigvalue(index)
eigvector = eigvector(:,index)
if Dim <size(eigvector,2)
eigvector = eigvector(:, 1:Dim)
eigvalue = eigvalue(1:Dim)
end
end
end
for i = 1:size(eigvector,2)
eigvector(:,i) = eigvector(:,i)./norm(eigvector(:,i))
end
elapse.timeMethod = cputime - tmp_T
elapse.timeAll = elapse.timePCA + elapse.timeMethod
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)