续: MS maxquant 处理之后找spectral counts

Words
320
Reading
2 min
Listen
Play
6y

昨天发现在evidance.txt中 找到spectral counts @jywahaha/ms-maxquant-spectral-counts
但今天,统计的时候,发现部分存在出入,于是开始排查(google找不到相关资料。。。)

补充20201117:
这样统计光谱是没有问题,但是还需要几个过滤条件:

微信截图_20201117174926.png
第一个框:oxidation 这里只保留0,其他修饰没有关系(公司给的数据中,似乎也同样是无oxidation的数据)
第二个框:所有的prey只考虑一种情况,如果出现了一条肽段对应多个蛋白的情况,则去掉这种蛋白

微信截图_20201117174952.png
最后,就是虽然evidance.txt中给出了某个结果,但是其中的intensity存在“无/NA/0”的情况,则对应的肽段过滤。

目前就这些过滤结果,其中为什么要过滤氧化修饰的肽段,找机会问问相关领域同学。

留两个小脚本。

use warnings;
use strict;

die "perl $0 [evidence.txt] [spec.result]\n" unless @ARGV == 2;

my ($in_f, $out_f) = @ARGV;
die "Overlap In-Output...\n" if $in_f eq $out_f;

open IN, $in_f or die $!;
open OT,">$out_f" or die $!;

my %hash;


  chomp(my $h = <IN>);
  while(<IN>){
    chomp;
    my @a = split /\t/,$_;
    my $name = $a[9];
    my $sample = $a[16];
    my $count = $a[45];
    if ($a[50] eq ''){next;}
    if ($a[7] > 0){next;}

    $hash{"$name\t$sample"} += $count;


  }
  close IN;

my @arr = keys %hash;
foreach my $i (@arr){
  print OT "$i\t$hash{$i}\n";
}

close OT;

maxquant 之后从evidence.txt中提取光谱信息


use warnings;
use strict;

die "perl $0 [spec.result] []\n" unless @ARGV == 2;

my ($in_f, $out_f) = @ARGV;
die "Overlap In-Output...\n" if $in_f eq $out_f;

open IN, $in_f or die $!;
open OT,">$out_f" or die $!;

my %sample;
my %prey;
my %total;

  while(<IN>){
    chomp;
    my @a = split /\t/,$_;
    if ($a[0] =~ /\;/){next;}
    $total{$a[0].$a[1]} += $a[2];
    $prey{$a[0]} = 1;
    $sample{$a[1]} = 1;
  }

my @arr_s = keys %sample;
my @arr_p = keys %prey;

foreach my $m (@arr_s){
  foreach my $n (@arr_p){
      if (exists $total{$n.$m}){
        print OT "$m\t$n\t$total{$n.$m}\n";
      }
  }
}

close IN;
close OT;

整理并统计结果。

目前就这样了,因为处理的公共数据集,这里就先这样了,之后有时间,把所有数据处理完,与文章比对一下看看是否还存在差异。

续: MS maxquant 处理之后找spectral counts | Ecency