forked from kentnf/KTools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSAMtool.pl
executable file
·75 lines (56 loc) · 1.1 KB
/
SAMtool.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/perl
=head1
samtools -- connect command of samtools
=cut
use strict;
use warnings;
use IO::File;
use Getopt::Std;
my $debug = 1;
while(<>)
{
chomp;
mergeBAM($_);
}
sub mergeBAM
{
my $list = shift;
my ($plus_bam, $minus_bam, $out_bam) = ($list."_plus.bam", $list."_minus.bam", $list."_all.bam");
run_cmd("samtools merge $out_bam $plus_bam $minus_bam");
sortBAM($out_bam);
}
=head2
convertBAM2SAM
=cut
sub convertBAM2SAM
{
my ($inFiles, $param) = @_;
my @files = split(/,/ , $inFiles);
}
=head2
convertSAM2BAN
=cut
sub convertSAM2BAM
{
my ($inFiles, $param) = @_;
my @files = split(/,/, $inFiles);
}
=head2
sortBAM
=cut
sub sortBAM
{
my $input_bam = shift;
die "[ERR]input file name\n" unless $input_bam =~ m/\.bam$/;
my $sort_prefix = $input_bam; $sort_prefix =~ s/\.bam$/_sort/;
my $sort_bam = $sort_prefix.".bam";
run_cmd("samtools sort $input_bam $sort_prefix");
#die "[ERR]no sorted bam\n" unless -s $sort_bam;
run_cmd("mv $sort_bam $input_bam");
}
sub run_cmd
{
my $cmd = shift;
print $cmd."\n" and return(1) if $debug;
system($cmd) && die "[ERR]cmd: $cmd\n";
}