CloneTrack鉴定治疗扩展的高强度T细胞克隆

server/2025/2/21 4:50:58/

目录

介绍

代码 

复现


介绍

CloneTrack一种新的数学和免疫学方法,利用治疗前后外周血样本的T细胞受体(TCR) Vβ测序来鉴定治疗扩展的高强度T细胞克隆。

论文使用一种新的数学策略来跟踪T细胞克隆(CloneTrack)和功能分析,发现疫苗扩增的T细胞占所有血液T细胞的10%, 使用CloneTrack,在8名应答者中的8名和8名无应答者中的1名中检测到疫苗诱导的克隆扩增。

论文使用了P校正< 0.001的显著性阈值,其中P值使用Bonferroni校正进行调整来解释大量被筛选的T细胞克隆。

为了识别治疗扩展的T细胞克隆,论文使用了一种适应性Fisher精确检验,并使用双尾适应性Fisher精确检验(scipy.stats.fisher_exact实现)计算扩展T细胞克隆的P值,用于任意两个样本之间的T细胞克隆增加两倍的T细胞克隆。

定义倍数变化<2(\frac{m_{x}}{M}<2\times\frac{n_{x}}{N})的克隆的P值为1。然后使用Bonferroni校正对这些P值进行调整:P_{adjusted}=P\times\left | N\bigcup M \right |,其中\left | N\bigcup M \right |表示两个样本的并集中唯一克隆的个数。

代码 

http:// https://github.com/zsethna/CloneTrack

file_name

function

num_code

CloneTrack.py

126

TCellRepertoire.py

T细胞库

304

plotting.py

画图

646

tcr_errors.py

报错

90

tcr_seq_and_clone_definition.py

tcr序列与克隆定义

493

tcr_utils.py

辅助函数和工具函数

544

复现

构建数据:(部分截图)

第一列TCR的count数 第二列TCR序列

文件二(after)将文件一(before)中两种TCR序列调高模拟T细胞克隆扩增

CASSQGRRGELFF                 430 ->1230

CASSVDPDRYLYGYTF            201 -> 901

 构建clonetrack代码:

变量作用
file_path存储文件地址(文件必须包含TCR与count两列)
seq_columnTCR所在文件的列数
value_columncount所在文件的列数
sum_counter库中TCR count 总数
dict_

存储TCR与count对应关系

字典 key:TCR value:count

seq_list列表,存储库中出现过的TCR序列
函数作用
create_dict将TCR库装载到dict_中
collect_seq统计库中出现过的TCR序列
python">class One_Sample:def __init__(self, file_path: str, seq_column: int, value_column: int):self.file_path = file_pathself.seq_column = seq_columnself.value_column = value_columnself.sum_counter = 0self.dict_ = self.create_dict()self.seq_list = self.collect_seq()def create_dict(self):dict_ = {}data = pd.read_csv(self.file_path, header=None, sep='\t')for seq, value in zip(data.iloc[:, self.seq_column].tolist(), data.iloc[:, self.value_column].tolist()):if dict_.get(seq) is None:dict_[seq] = valueelse:dict_[seq] += valueself.sum_counter += valuereturn dict_def collect_seq(self):seq_list = []for key in self.dict_:seq_list.append(key)return seq_list
变量作用
file_path_b存储before信息的文件路径
file_path_a存储after信息的文件路径
fc确定克隆扩展的倍数变化,论文中为2
seq_columnTCR所在文件的列数
value_columncount所在文件的列数
seq_list列表,存储after与before出现过的TCR序列
sample_aafter的所有信息
sample_bbefore的所有信息
matrix

数据框,行为after与before出现过的TCR序列,

列为after与before两个库,将sample_a与sample_b

中TCR与count对应关系合并在一个表中

函数作用
collect_seq统计after与before库中出现过的TCR序列
create_matrix合并sample_a与sample_b中TCR与count对应关系
find_clonetrack

k:确定克隆扩展的显著P阈值,论文中为0.001

使用Fisher精确检验,Bonferroni校正,

在倍数变化大于fc的TCR序列中寻找显著扩增。

python">class Two_Sample:def __init__(self, file_path_b: str, file_path_a: str, fc:int,seq_column: int, value_column: int):self.file_path_b = file_path_bself.file_path_a = file_path_aself.fc = fcself.seq_column = seq_columnself.value_column = value_columnself.seq_list = []self.sample_a = One_Sample(file_path=self.file_path_a,seq_column=self.seq_column, value_column=self.value_column)self.sample_b = One_Sample(file_path=self.file_path_b,seq_column=self.seq_column, value_column=self.value_column)self.collect_seq()self.matrix = pd.DataFrame(columns=['b', 'a'], index=self.seq_list, data=0)self.create_matrix()def collect_seq(self):self.seq_list.append(self.sample_a.seq_list)self.seq_list.append(self.sample_b.seq_list)self.seq_list = list(set([element for sublist in self.seq_list for element in sublist]))def create_matrix(self):for seq, value in self.sample_b.dict_.items():self.matrix.loc[seq, 'b'] = valuefor seq, value in self.sample_a.dict_.items():self.matrix.loc[seq, 'a'] = valuedef find_clonetrack(self,k):result = {}for seq in tqdm.tqdm(self.matrix.index,total=len(self.matrix.index)):rb, ra = self.matrix.loc[seq, 'b'], self.matrix.loc[seq, 'a']if ra/self.sample_a.sum_counter >= self.fc*rb/self.sample_b.sum_counter:p = np.clip(fisher_exact(np.array([[rb, self.sample_a.sum_counter - rb],[ra, self.sample_b.sum_counter - ra]]))[1] * len(self.seq_list), 0,1)result[seq] = pelse:result[seq] = 1for seq, value in result.items():if value <= k:print('seq:',seq, '\tp:',value)

 对代码进行测试:

python">test = Two_Sample(file_path_b=r"D:\csdn\clonetrack\test1.txt",file_path_a=r"D:\csdn\clonetrack\test2.txt",fc=2,seq_column=1, value_column=0)
test.find_clonetrack(1e-3)

结果:

成功寻找到模拟T细胞克隆扩增的两条TCR。

python">seq: CASSQGRRGELFF      p: 8.667190017586962e-87
seq: CASSVDPDRYLYGYTF   p: 4.409099942894614e-103


http://www.ppmy.cn/server/36646.html

相关文章

免费的发票查验接口平台 PHP开发示例

信息爆炸的时代&#xff0c;发票管理工作也在不断走向数字化管理。传统手动录入的方式不仅耗时长&#xff0c;繁琐低效&#xff0c;且容易出现人为错漏的风险&#xff0c;让财务工作者头疼不已。人工智能时代&#xff0c;翔云推出了发票识别发票查验接口&#xff0c;以此来助力…

大模型改变了哪些工作方式?

大模型的崛起深刻改变了我们的工作方式。如今&#xff0c;许多行业已广泛应用大型机器学习模型&#xff0c;实现了自动化数据处理、智能决策和高效分析。这一变革不仅释放了大量人力资源&#xff0c;使得人们能够专注于更具创造性的任务&#xff0c;还大幅提升了工作效率和准确…

员工满意度调查:透视企业问题的明镜

在日益激烈的市场竞争中&#xff0c;企业的稳健发展离不开员工的支持与贡献。而员工满意度&#xff0c;作为衡量企业内部环境和谐与否的重要指标&#xff0c;往往能够反映出企业存在的各种问题。因此&#xff0c;民安智库&#xff08;第三方窗口测评&#xff09;建议企业定期开…

实验9-二叉树

写程序实现教材上算法&#xff1a;二叉树的创建、中序递归遍历、 中序非递归遍历、 中序线索化、中序线索化二叉树的遍历&#xff0c;并写程序验证。 线索化的相关操作太过复杂&#xff0c;是抄的&#xff0c;而且好像有点问题&#xff0c;慎用&#xff01; #include <ios…

Makefile

Makefile 安装 sudo apt install makeGCC 编译工具链在编译一个C源文件时需要经过以下 4 步&#xff1a; 预处理&#xff1a;为把头文件的代码、宏之类的内容转换成生成的.i文件&#xff0c;还是C代码。编译&#xff1a;把预处理后的.i文件通过编译成.s文件&#xff0c;汇编…

C++实现二叉搜索树(模型)

目录 1.二叉搜索树的概念 2.二叉搜索树的实现 2.1总体代码预览 2.2各个函数实现原理 链表结构体 二叉搜索树的成员变量 二叉搜索树的插入 二叉搜索树的查找 二叉搜索树的遍历 二叉搜索树的删除 1.二叉搜索树的概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#…

Linux网络-PXE高效批量网络装机(命令+截图详细版)

目录 一.部署PXE远程安装服务 1.PXE概述 1.1.PXE批量部署的优点 1.2.要搭建PXE网络体系的前提条件 2.搭建PXE远程安装服务器 2.1.修改相关网络配置&#xff08;仅主机模式&#xff09; 2.2.关闭防火墙&#xff08;老规矩&#xff09; 2.3.保证挂载上 2.4.准备好配置文…

java反射常被面试官问到的四个问题

文章目录 说一下反射机制&#xff1f;如何使用反射&#xff1f;反射有什么优缺点&#xff1f;目前常见的反射场景有哪些&#xff1f; 反射机制是指在运行时&#xff0c;动态地获取类的信息&#xff08;如类名、属性、方法等&#xff09;&#xff0c;并可以在运行时操作类或对象…