Mercurial > repos > charles_s_test > seqsero2
annotate libs/sratoolkit.2.8.0-centos_linux64/example/perl/splitfastq.pl @ 3:38ad1130d077 draft
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
author | charles_s_test |
---|---|
date | Mon, 27 Nov 2017 11:21:07 -0500 |
parents | |
children |
rev | line source |
---|---|
3
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
1 #!/usr/bin/perl -w |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
2 |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
3 use IO::File; |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
4 |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
5 my $line; |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
6 my $state = 0; |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
7 my %filehandles; |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
8 my $current_filehandle; |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
9 my $base = $ARGV[ 0 ]; |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
10 |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
11 if ( !defined ( $base ) ) |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
12 { |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
13 $base = "out"; |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
14 } |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
15 |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
16 while ( defined ( $line = <STDIN> ) ) |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
17 { |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
18 #remove line-feeds, white space etc. |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
19 chomp( $line ); |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
20 |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
21 if ( $state == 0 ) |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
22 { |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
23 # get the first word |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
24 my $word0 = ( split( /\s+/, $line ) )[ 0 ]; |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
25 |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
26 # start with the beginning of the word, until '/' found, continue with numbers to end of string |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
27 if ( $word0 =~ /^[^\/]+\/(\d+)$/ ) |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
28 { |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
29 # grep what matched after the '/' |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
30 my $selector = $1; |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
31 if ( !defined ( $filehandles{$selector}) ) |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
32 { |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
33 $filehandles{$selector} = new IO::File( "$base.$selector.fastq", "w" ); |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
34 } |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
35 $current_filehandle = $filehandles{$selector}; |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
36 } |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
37 } |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
38 |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
39 if ( defined( $current_filehandle ) ) |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
40 { |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
41 $current_filehandle -> print( "$line\n" ); |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
42 } |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
43 |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
44 $state ++; |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
45 $state &= 0x3; |
38ad1130d077
planemo upload commit a4fb57231f274270afbfebd47f67df05babffa4a-dirty
charles_s_test
parents:
diff
changeset
|
46 } |