Mercurial > repos > bigrna > gpsrna
comparison matching.pl @ 0:87fe81de0931 draft default tip
Uploaded
author | bigrna |
---|---|
date | Sun, 04 Jan 2015 02:47:25 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:87fe81de0931 |
---|---|
1 #!/usr/bin/perl -w | |
2 #Filename: | |
3 #Author: Tian Dongmei | |
4 #Email: tiandm@big.ac.cn | |
5 #Date: 2013/7/19 | |
6 #Modified: | |
7 #Description: | |
8 my $version=1.00; | |
9 | |
10 use strict; | |
11 use Getopt::Long; | |
12 | |
13 my %opts; | |
14 GetOptions(\%opts,"i=s","g=s","index:s","v:i","p:i","r:s","o=s","h"); | |
15 if (!(defined $opts{i} and defined $opts{o} ) || defined $opts{h}) { #necessary arguments | |
16 &usage; | |
17 } | |
18 | |
19 my $filein=$opts{'i'}; | |
20 my $fileout=$opts{'o'}; | |
21 unless ($fileout=~/\/$/) {$fileout.="/";} | |
22 my $genome=$opts{'g'}; | |
23 my $mis=defined $opts{'v'}? $opts{'v'} : 0; | |
24 my $hits=defined $opts{'r'}? $opts{'r'} : 25; | |
25 my $index=defined $opts{'index'} ? $opts{'index'} : ""; | |
26 my $threads=defined $opts{'p'} ? $opts{'p'} : 1; | |
27 | |
28 | |
29 my $time=&Time(); | |
30 my $mapdir=$fileout."/genome_match"; | |
31 if(not -d $mapdir){ | |
32 mkdir $mapdir; | |
33 } | |
34 chdir $mapdir; | |
35 ###check genome index | |
36 if (-s $index.".1.ebwt") { | |
37 }else{ | |
38 `bowtie-build $genome $genome`; | |
39 $index="$genome"; | |
40 } | |
41 | |
42 ### genome mapping | |
43 `bowtie -v $mis -f -p $threads -m $hits -a --best --strata $index $filein --al genome_mapped.fa --un genome_not_mapped.fa --max genome_mapped_Mlimit.fa > genome_mapped.bwt 2> run.log`; | |
44 | |
45 #`convert_bowtie_to_blast.pl genome_mapped.bwt genome_mapped.fa $genome > genome_mapped.bst`; | |
46 | |
47 sub Time{ | |
48 my $time=time(); | |
49 my ($sec,$min,$hour,$day,$month,$year) = (localtime($time))[0,1,2,3,4,5,6]; | |
50 $month++; | |
51 $year+=1900; | |
52 if (length($sec) == 1) {$sec = "0"."$sec";} | |
53 if (length($min) == 1) {$min = "0"."$min";} | |
54 if (length($hour) == 1) {$hour = "0"."$hour";} | |
55 if (length($day) == 1) {$day = "0"."$day";} | |
56 if (length($month) == 1) {$month = "0"."$month";} | |
57 #print "$year-$month-$day $hour:$min:$sec\n"; | |
58 return("$year-$month-$day-$hour-$min-$sec"); | |
59 } | |
60 | |
61 sub usage{ | |
62 print <<"USAGE"; | |
63 Version $version | |
64 Usage: | |
65 $0 -i -o | |
66 options: | |
67 -i input file# input reads fasta/fastq file | |
68 -g input file# genome file | |
69 -index file-prefix #(must be indexed by bowtie-build) The parameter | |
70 string must be the prefix of the bowtie index. For instance, if | |
71 the first indexed file is called 'h_sapiens_37_asm.1.ebwt' then | |
72 the prefix is 'h_sapiens_37_asm'.##can be null | |
73 -v <int> report end-to-end hits w/ <=v mismatches; ignore qualities,default 0; | |
74 | |
75 -p/--threads <int> number of alignment threads to launch (default: 1) | |
76 | |
77 -r int a read is allowed to map up to this number of positions in the genome | |
78 default is 25 | |
79 | |
80 -o output directory | |
81 | |
82 -h help | |
83 USAGE | |
84 exit(1); | |
85 } | |
86 |