annotate filter_by_susceptibility_loci_pipe @ 0:6411ca16916e default tip

initial commit
author Yusuf Ali <ali@yusuf.email>
date Wed, 25 Mar 2015 13:23:29 -0600
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
1 #!/usr/bin/env perl
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
2
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
3 # Reports SNPs associated with susceptibility loci determined by GWAS
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
4 use strict;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
5 use warnings;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
6
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
7 @ARGV == 4 or die "Usage: $0 <GWAS db.txt> <input.annotated.hgvs.txt> <output.txt> <pheno query>\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
8 my $gwas_file = shift @ARGV;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
9 my $hgvs_file = shift @ARGV;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
10 my $outfile = shift @ARGV;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
11 my $pheno_query = shift @ARGV;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
12
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
13 $pheno_query =~ s/^\s+|\s+$//g; # trim leading and trailing whitespace
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
14 my $s;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
15 $pheno_query =~ s/\(.*?\)/$s=$&; $s=~s#\s+or\s+#|#g; $s/eg;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
16 my @or_terms = split /\s+or\s+/i, $pheno_query;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
17 for my $term (@or_terms){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
18 $term = and_query($term); # recursively convert Boolean AND to equivalent regex
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
19 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
20
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
21 # Date Added to Catalog PUBMEDID First Author Date Journal Link Study Disease/Trait Initial Sample Size Replication Sample Size Region Chr_id Chr_pos Reported Gene(s) Mapped_gene Upstream_gene_id Downstream_gene_id Snp_gene_ids Upstream_gene_distance Downstream_gene_distance Strongest SNP-Risk Allele SNPs Merged Snp_id_current Context Intergenic Risk Allele Frequency p-Value Pvalue_mlog p-Value (text) OR or beta 95% CI (text) Platform [SNPs passing QC] CNV
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
22 open(GWAS, $gwas_file)
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
23 or die "Cannot open GWAS file for reading: $!\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
24 my $header = <GWAS>;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
25 chomp $header;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
26 my @columns = split /\t/, $header;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
27 my $trait_column_index = -1;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
28 my $study_column_index = -1;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
29 my $chr_column_index = -1;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
30 my $pos_column_index = -1;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
31 my $allele_column_index = -1;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
32 my $context_column_index = -1;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
33 my $odds_column_index = -1;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
34 my $pubmed_column_index = -1;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
35 for(my $i = 0; $i < $#columns; $i++){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
36 if($columns[$i] eq "Disease/Trait"){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
37 $trait_column_index = $i;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
38 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
39 elsif($columns[$i] eq "Study"){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
40 $study_column_index = $i;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
41 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
42 elsif($columns[$i] eq "Chr_id"){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
43 $chr_column_index = $i;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
44 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
45 elsif($columns[$i] eq "Chr_pos"){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
46 $pos_column_index = $i;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
47 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
48 elsif($columns[$i] eq "Strongest SNP-Risk Allele"){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
49 $allele_column_index = $i;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
50 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
51 elsif($columns[$i] eq "p-Value (text)"){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
52 $context_column_index = $i;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
53 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
54 elsif($columns[$i] eq "OR or beta"){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
55 $odds_column_index = $i;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
56 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
57 elsif($columns[$i] eq "PUBMEDID"){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
58 $pubmed_column_index = $i;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
59 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
60 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
61 if($trait_column_index == -1){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
62 die "Could not find Trait column header in provided GWAS catalog file $gwas_file, aborting\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
63 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
64 if($study_column_index == -1){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
65 die "Could not find Study column header in provided GWAS catalog file $gwas_file, aborting\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
66 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
67 if($chr_column_index == -1){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
68 die "Could not find chromosome name column header in provided GWAS catalog file $gwas_file, aborting\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
69 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
70 if($pos_column_index == -1){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
71 die "Could not find chromosomal position column header in provided GWAS catalog file $gwas_file, aborting\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
72 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
73 if($allele_column_index == -1){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
74 die "Could not find risk allele column header in provided GWAS catalog file $gwas_file, aborting\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
75 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
76 if($context_column_index == -1){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
77 die "Could not find p-value context column header in provided GWAS catalog file $gwas_file, aborting\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
78 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
79 if($odds_column_index == -1){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
80 die "Could not find odds ratio column header in provided GWAS catalog file $gwas_file, aborting\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
81 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
82 if($pubmed_column_index == -1){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
83 die "Could not find PubMed ID column header in provided GWAS catalog file $gwas_file, aborting\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
84 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
85
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
86 my %snp2desc;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
87 while(<GWAS>){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
88 chomp;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
89 next unless /\S/;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
90 my @F = split /\t/, $_;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
91 my $chr = $F[$chr_column_index];
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
92 $chr =~ s/^chr//; # drop prefix if present
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
93 my $strongest_risk_allele = $F[$allele_column_index];
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
94 $strongest_risk_allele =~ s/^.*-//; # initially looks like rs4345897-G, strip to just letter
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
95 $snp2desc{$chr.":".$F[$pos_column_index].":".$strongest_risk_allele} = [$F[$trait_column_index], $F[$context_column_index], $F[$study_column_index], $F[$odds_column_index], $F[$pubmed_column_index]];
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
96 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
97 close(GWAS);
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
98
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
99 open(MATCHOUT, ">$outfile")
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
100 or die "Cannot open $outfile for writing: $!\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
101
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
102 open(HGVS, $hgvs_file)
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
103 or die "Cannot open $hgvs_file for reading: $!\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
104 $header = <HGVS>;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
105 chomp $header;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
106 my @header_columns = split /\t/, $header;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
107 my ($chr_column, $obs_column, $pos_column);
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
108 for(my $i = 0; $i <= $#header_columns; $i++){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
109 if($header_columns[$i] eq "DNA From"){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
110 $pos_column = $i;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
111 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
112 elsif($header_columns[$i] eq "Obs base"){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
113 $obs_column = $i;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
114 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
115 elsif($header_columns[$i] eq "Chr"){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
116 $chr_column = $i;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
117 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
118 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
119 if(not defined $chr_column){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
120 die "Could not find 'Chr' column in the input header, aborting\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
121 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
122 if(not defined $pos_column){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
123 die "Could not find 'DNA From' column in the input header, aborting\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
124 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
125 if(not defined $obs_column){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
126 die "Could not find 'Obs base' column in the input header, aborting\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
127 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
128
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
129 print MATCHOUT $header, "\tPhenotype GWAS Catalog text matches (matching $pheno_query)\tGWAS odds ratio\tGWAS susceptibility description for this SNP\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
130 while(<HGVS>){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
131 chomp;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
132 my @F = split /\t/, $_, -1;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
133 my $allele = $F[$obs_column];
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
134 $allele =~ s(/.*$)(); # ignore ref allele in het calls
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
135 my $chr = $F[$chr_column];
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
136 $chr =~ s/^chr//; # remove chr name prefix if present
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
137 my $key = $chr.":".$F[$pos_column].":".$allele;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
138 #print STDERR "$key\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
139 if(not exists $snp2desc{$key}){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
140 print MATCHOUT join("\t", @F, "", "", ""), "\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
141 next;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
142 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
143 my @matches;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
144 for my $term (@or_terms){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
145 next if grep {$_ eq $term} @matches;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
146 #print STDERR "Checking match for term $term...\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
147 if($snp2desc{$key}->[0] =~ /\b$term/i or # trait
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
148 $snp2desc{$key}->[1] =~ /\b$term/i or # p-value context
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
149 $snp2desc{$key}->[2] =~ /\b$term/i){ # study name
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
150 push @matches, $term;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
151 last;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
152 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
153 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
154 chomp $F[$#F];
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
155 # print all GWAS, whether they match query or not
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
156 print MATCHOUT join("\t", @F, join("; ", sort @matches), $snp2desc{$key}->[3], "PubMedID ".$snp2desc{$key}->[4].": trait '".$snp2desc{$key}->[0]."'".($snp2desc{$key}->[1] =~ /\S/ ? " in context of '".$snp2desc{$key}->[1]."'" : "").". Study: ".$snp2desc{$key}->[2]), "\n";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
157 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
158 close(HGVS);
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
159 close(MATCHOUT);
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
160
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
161 sub and_query{
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
162 my ($query) = @_;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
163 if($query =~ /^(.+)\s+and\s+(.+)$/){
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
164 my $t1 = $1;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
165 my $t2 = $2;
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
166 my $term1 = and_query($t1);
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
167 my $term2 = and_query($t2);
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
168 return "($term1.*$term2|$term2.*$term1)";
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
169 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
170 else{
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
171 return $query; # base case: single term
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
172 }
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
173 return
6411ca16916e initial commit
Yusuf Ali <ali@yusuf.email>
parents:
diff changeset
174 }