蛋白质序列处理程序之前得到的数据源太乱,这些天整理并重新摆放了一下,每一步的输入文件夹后缀都有一个-in,处理程序文件夹后缀为-run,输出文件夹后缀为-out,这样条理清晰了很多,今日记录,以方便日后查阅使用。

数据处理部分共分5步:

  • 下载并分类(set class)
  • 多步CD-hit
  • 正负样本1:1平衡(Dataset balance)
  • 特征计算(feature calculation)
  • 特征选择(feature selection)

下面分别详细地记录每步的具体作用及用法。


1)下载并分类(set class)

通过DownldProtSeq.javaEffectorsequencesdata.txt中读取所需的蛋白质序列信息,从http://www.uniprot.org/uniprot/上面下载对应的蛋白质序列数据。
下载完成后保存在fastafiles文件夹中,与之前的BPBAacBi_pro文件夹和sieve文件夹中的.fasta文件一起,组成set class这一步骤的输入数据。
set class的作用是将蛋白质序列分类为positive和negative数据,positive数据加上1标记,negative数据加上-1标记。
set class这一步用到的是setcls_integ.sh文件调用fasta_setclass.py以及eft3_setclass.py两个Python脚本。
输出了T3fastaPool_clfed.fastaT4posiNeg.fastaT6posneg.fasta三个文件,并且这三个文件将会在第二步中作为输入文件。

2)多步CD-hit

CD-hit这一步需要用到CD-hit软件包,详细信息见http://weizhongli-lab.org/cd-hit/。原本地文件中经过编译之后的cd-hit二进制文件在Linux上无法运行,故在删除了包内的.o文件以及所有的二进制文件后,在命令行中运行make openmp=yes将其重新编译,得到的cd-hit文件就可以使用了,使用方法如下:

./cd-hit -i <fasta-file> -o T6pn06snd.out -c 0.6 -n 4

这样会得到很多.out文件,这些文件将是第三步的输入文件。

3)正负样本1:1平衡(Dataset balance)

该步骤处理程序只有一个undersmple_neg.py脚本文件,目的是控制正负样本(positivenegative样本)的比例为1:1。平衡后的样本有三个:T3undrsmp.txtT4undrsmp.txtT6undrsmp.txt

4)特征计算(feature calculation)

第四步比较复杂,又可分为7小步。前6小步中,计算出6个特征向量文件(file of feature vectors),第7步将这些特征向量聚合在一起,形成一系列的.CSV文件,然后将这些.CSV文件按照T3T4T6分别放置。详见蛋白质序列特征向量计算—数据处理第(4)步

5)特征选择(feature selection)

特征选择这一步,分别用了两种算法。这两种算法互不干涉,无先后顺序。

  • mRMR算法,详见http://penglab.janelia.org/proj/mRMR/

    用法如下:

     python fts_select.py <T3_cdhit_N30_50fts.txt> <csv-before-selection> <csv-after-selection> <50/100/200>
    

    其中,<csv-before-selection>是第四步中得到的.CSV文件,<csv-after-selection>是本步得到的结果文件,<50/100/200>表示截取前<50/100/200>个特征,<T3_cdhit_N30_50fts.txt>是经过mrmr文件处理过后得到的一系列文件,全部在文件夹中。

  • InfoGain算法,用法如下:

     python weka_fts_slct.py <InfoGainFslct> <50/100/200> <csv-before-selection> <csv-after-selection>
    

    其中<csv-before-selection>是第四步中得到的.CSV文件,<csv-after-selection>是本步得到的结果文件,<50/100/200>表示截取前<50/100/200>个特征,<InfoGainFslct>这一系列文件在文件夹中。