zoukankan      html  css  js  c++  java
  • vsearch 去除重复序列和singleton 序列

    在16S数据分析中,为了减少聚类的时间,提高准确度,需要去除重复序列,而singleton序列因为没有其他的序列作为验证,可信度不是很高,也需要去除,通常情况下使用usearch 完成这2项任务,但是usearch 64位是收费的,而32为的usearch 在64位的red hat 上测试时,去除重复序列时报错了,libgomp: Thread creation failed: Resource temporarily unavailable

    百度之后了解到是由于进程数达到上限,修改了上限后还是报错,就放弃使用usearch 来去除重复序列,使用vsearch 来去除重复序列

    源代码:

      https://github.com/torognes/vsearch/releases

    安装:

      wget https://github.com/torognes/vsearch/archive/v1.11.1.tar.gz

          tar xzvf v1.11.1
          cd vsearch-1.11.1/
          ./autogen.sh
          ./configure
          make      
          make install
     
    测试:
      # 去除重复序列
          vsearch --derep_fulllength raw.reads.fasta  --output test.fasta --sizeout        
                
          # 去除singleton序列
          vsearch --sortbysize test.fasta  --output desingleton.fasta --minsize 2
     
    vsearch 和 mothur 去除重复序列的结果完全一致,其实去除重复序列就是就将那些序列完全一致的序列只取一条就可以了,去除singleton 序列就是将那些只出现一次的序列去除,为了加深理解,我写了个perl脚本
    来完成这2个任务,经过测试和vsearch的结果一致,代码如下:
    #!/usr/bin/perl
    
    use warnings;
    use strict;
    
    my ($fasta) = @ARGV;
    
    my %unique = ();
    local $/ = ">";
    open FASTA, $fasta or die "Can't open $fasta
    ";
    while (<FASTA>) {
        chomp;
        next if /^s*$/;
        my ($id, $seq) = split /
    /, $_, 2;
        $seq =~ s/s+//;
        push @{$unique{$seq}}, $id;
    }
    close FASTA;
    
    
    foreach my $x (keys %unique) {
        my $size = scalar @{$unique{$x}};
        unshift  @{$unique{$x}}, $size;
    }
    
    foreach my $x (sort {$unique{$b}->[0] <=>  $unique{$a}->[0] } keys %unique) {
        my $id   = $unique{$x}->[1];
        my $size = $unique{$x}->[0];
        next if $size = 1;
        print qq{>$id;size=$size;
    $xn};
    
    }
     

     

  • 相关阅读:
    Hypercall机制
    python 基础-----数字,字符串,if while 循环 数据类型的转换简单介绍
    计算机基础知识
    Proxmox初步了解
    Centos7-安装py3
    KVM-virsh常用命令
    Centos7-VNC安装
    Centos7-bond模式介绍
    KVM管理工具
    Win10-无法启动虚拟机
  • 原文地址:https://www.cnblogs.com/xudongliang/p/5412649.html
Copyright © 2011-2022 走看看