annotate split.pl @ 0:efd5c022b54d draft

planemo upload
author mingchen0919
date Mon, 09 Apr 2018 12:27:49 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
1 #!/usr/bin/perl
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
2
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
3
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
4 if($ARGV[0] eq "" || $ARGV[1] eq ""){
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
5 die "\n\t Usage : perl <thisScript.pl> <file to be split> <number of partitions> \n\n";
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
6 }
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
7
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
8
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
9 $homfile = $ARGV[0];
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
10 $numOfFiles = $ARGV[1];
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
11
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
12
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
13 system("grep -c '^>' $homfile > out");
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
14 open IN, "out" || die "File not found - 2\n";
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
15 $numOfSeqs = <IN>;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
16 close IN;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
17
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
18 print "Number of seqs is $numOfSeqs\n";
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
19 my $numPerFile = $numOfSeqs/$numOfFiles;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
20 print "Num per File is $numPerFile\n";
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
21
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
22 open IN, $homfile || die "File not found - 1\n";
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
23 $lineIn = <IN>;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
24
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
25 for($i = 1; $i <= $numOfFiles; $i++){
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
26 print "$i\n";
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
27 open FILE, ">".$homfile.".".$i || die "Can't open file";
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
28 print FILE $lineIn;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
29 $seqs = 1;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
30 $lineIn = <IN>;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
31 while(defined $lineIn && $seqs < $numPerFile){
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
32 print FILE $lineIn;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
33 if ($lineIn =~ /^>/) { $seqs++; }
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
34 $lineIn = <IN>;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
35 }
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
36 while(defined $lineIn && $lineIn !~ /^>/){
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
37 print FILE $lineIn;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
38 $lineIn = <IN>;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
39 }
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
40 close FILE;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
41 }
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
42 $i = $i -1;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
43 open FILE, ">>".$homfile.".".$i;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
44 while ($lineIn = <IN>){
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
45 print FILE $lineIn;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
46 }
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
47 close FILE;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
48
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
49 close IN;
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
50
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
51
efd5c022b54d planemo upload
mingchen0919
parents:
diff changeset
52