cut chromosome to scanffolds.

#!/usr/bin/perl
use strict;
use warnings;

die "\nUsage: cut chromosome to scaffolds;\ncommands:\nperl $0 snpdata scafflod.use.list pb/bb\n\n" if ( @ARGV != 3 );

my $snpdb = shift;
my $scaf_list = shift;
my $aa = shift; # $aa = pb or bb

open AA, $snpdb or die " can not open the snpdb file: $!";
open BB, $scaf_list or die " can not open the scaffold list file :$!";

my %chr = ();
my %scaf = ();
my %start = ();
my %end = ();

my $i = 0;
while ( <BB> ) {
        $i++;
        my @tt = split /\s+/;
        $chr{$i} = $tt[0];
        $scaf{$i} = $tt[1];
        $start{$i} = $tt[2];
        $end{$i} = $tt[3];
}
close BB;
my $num = keys %chr;

my $outfile = "/ifs5/ST_COMG/USER/yanzengli/tajima/data/$chr{1}/$scaf{1}/$chr{1}.$scaf{1}.$aa.snp";
open OUT,">", $outfile or die $!;

my $flag = 1;
my $judge = 1;

while ( <AA> ) {
        my @tt = split /\s+/;
        while ( $flag <= $num ) {
                if ( ($start{$flag} <= $tt[1]) && ($tt[1] <= $end{$flag}) ) {
                        $tt[1] = $tt[1] - $start{$flag} + 1;
                        if ( $judge == $flag ) {
                                foreach ( @tt ) { print OUT "$_\t"; }
                                print OUT "\n";
                                last;
                        }else{
                                $judge = $flag;
                                close OUT;
                                $outfile = "/ifs5/ST_COMG/USER/yanzengli/tajima/data/$chr{$flag}/$scaf{$flag}/$chr{$flag}.$scaf{$flag}.$aa.snp";
                                open OUT, ">", $outfile or die $!;
                                foreach ( @tt ) { print OUT "$_\t"; }
                                print OUT "\n";
                                last;
                        }
                }
                $flag++;
        }
}
close AA;
close OUT;

cut chromosome to scanffolds.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值