美文网首页
2022-03-14 TCRdist

2022-03-14 TCRdist

作者: 千容安 | 来源:发表于2022-03-15 22:18 被阅读0次

    转接过来的数据,要跑如下三条命令:


    根据数据内容对路径进行修改:

    两个P10_Healthy_TCR是后来产生的,原先没有。
    学姐说先不跑bash了,还缺少文件。
    在code路径下输入
    ls /mnt/Ocean/Shared/tcrdist/tcrdist/data/health/*.txt|perl TCR.Select.pl > P10_Healthy_TCR.xls
    与code并列的data底下是health和covid19文件夹,里面是txt文件。用相同方式生成“secl_TCR_cov.xls”和“secl_TCR_cov.csv”
    1647337239(1).png
    第三条命令不改动:
    cut -f 4 P10_Healthy_TCR.xls|grep -v "V_CDR3"|sort|uniq >P10_Healthy_TCR.csv

    接下来就是配置tcrdist,GitHub网站:https://github.com/phbradley/tcr-dist
    更新:不配置tcrdist了,老师说从学姐那边把可执行文件拷过来,通过编译便可以使用。学姐给我的文件已经编译好。
    原命令:

    chmod -R 777 ./bin/tcrdists
    进行修改:
    ./bin/tcrdists -i code/secl_TCR_cov.csv -j code/P10_Healthy_TCR.csv -d ./db/ |sed "s/\ /\t/g"|cut -f 1- >CtoH_TCR.tcrdist.tab
    报错:

    我的版本只到3.4.21

    问题处理
    执行以下命令,查找编译gcc时生成的最新动态库:
    find / -name "libstdc++.so*"
    输出如下:

    将上面的最新动态库最后一条内容复制到/usr/lib64目录下:
    cp /home/wangnan/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so /usr/lib64
    报错'/usr/lib64': Permission denied
    解决:chmod -R 777 /usr/lib64

    老师说这个是根目录。不解决这个问题了。把tcrdist的源代码拉下来,重新编译。这个工作学姐也没有接触过,让老师帮我完成了。
    另外,tcrdist3也有了:
    https://tcrdist3.readthedocs.io/en/latest/index.html
    编译后,切换到cd /mnt/Ocean/Shared/tcrdist/pubtcrs输入上面run TCRdist的命令


    可执行文件在/mnt/Ocean/Shared/tcrdist/pubtcrs/bin/,工作路径不一定在这里,现在工作在pubtcrs,文件在code里,所以应该把-i后面的路径补充完整。

    因为文件可能太大,跑了很久都不动,学姐建议可以把文件切小一点,这样运行快。根据“head -1000 输入文件路径 > 输出文件路径”,代码如下:

    head -1000 /mnt/Ocean/Shared/tcrdist/tcrdist/code/secl_TCR_cov.csv > /mnt/Ocean/Shared/tcrdist/tcrdist/code/secl_TCR_cov_0.csv
    

    用新生成的文件很快就运行好了。
    想移动文件到code文件夹:

    mv CtoH_TCR.tcrdist.tab /mnt/Ocean/Shared/tcrdist/tcrdist/code
    

    得到的文件是这样的:



    输入文件是cdr3序列。得到的已经是距离了。
    接下来开始分析。准备看懂学姐给的analysis文件。
    先在linux下把距离进行奇数偶数的处理,code路径下。

    cut -f 4- CtoH_TCR.tcrdist.tab > P_H_TCRs_dists.csv
    sed '1~2!d' P_H_TCRs_dists.csv > P_H_TCRs_dists_matrix.csv  #奇数
    sed '1~2d' P_H_TCRs_dists.csv > P_H_TCRs_dists_info.csv   #偶数
    

    得到的奇数是距离矩阵部分,纯数字。偶数是其余信息部分。
    先来看看P_H_TCRs_dists_info.csv用xls打开的样子:



    把它读入jupyter,万恶之源就来了

    pd.read_csv("P_H_TCRs_dists_info.csv",sep = '\s+',header = None)
    

    出现了占位符“:\t”和在xls里没有的双引号,导致第四列数值后面带上了引号,不是数值型数据。
    代码是学姐写的,她读入后的内容与我不同:



    第一列和第二列以冒号分开,第三列和第五列是TCR的距离。
    一种对第四列求和的办法,把第四列数值化。依次读取第四列里的每个数,然后把它转为浮点型。[:-1]是一直到倒数第一行

    for i in range(len(df)):
        df[4][i]=float(df[4][i][:-1]) 
    print(sum(df[4])/df.shape[0])
    

    第二种办法更好,可以一劳永逸。把列以引号和占位符分割,再重新赋值。

    d1,d2=data[0].str.split(r'\t',1).str
    d3,d4=data[4].str.split('"',1).str
    # data.reset_index(drop=False, inplace=True)
    data[4]=d3
    data[0]=d1
    data.insert(1,'1',d2)
    

    选file_info第4列画直方图



    file_info.shape[0]是info矩阵的行,就是第四列求和除以它的行数



    loc[i,1]是取i+1行 第2列

    相关文章

      网友评论

          本文标题:2022-03-14 TCRdist

          本文链接:https://www.haomeiwen.com/subject/hjuydrtx.html