annotate mytools/align2multiple.xml @ 9:87eb5c5ddfe9

Uploaded
author xuebing
date Fri, 09 Mar 2012 20:01:43 -0500
parents f0dc65e7f6c0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
1 <tool id="align2multiple" name="align-to-multiple">
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
2 <description>features</description>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
3 <command>cat $script_file | R --vanilla --slave > $logfile </command>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
4 <inputs>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
5 <param name="query" type="data" format="interval" label="Query intervals" help= "keep it small (less than 1,000,000 lines)"/>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
6 <param name="label" type="text" value="" size="30" label="Data Label"/>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
7 <param name="windowsize" size="10" type="integer" value="5000" label="radius of the window" help="will create new intervals of w bp flanking the original center. set to 0 will not change input interval size)"/>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
8 <param name="nbins" size="10" type="integer" value="20" label="Number of bins dividing the window"/>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
9 <param name="sort" label="Sort intervals" help="Sort by the center of the first input, then the second input, then third..." type="boolean" truevalue="sort" falsevalue="none" checked="True"/>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
10 <repeat name="series" title="input file">
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
11 <param name="label" type="text" value="" size="30" label="Data Label"/>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
12 <param name="input" type="data" format="interval" label="Dataset"/>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
13 </repeat>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
14 </inputs>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
15
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
16 <configfiles>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
17 <configfile name="script_file">
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
18 ## Setup R error handling to go to stderr
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
19 cat('\n[',date(),'] Start running job\n')
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
20 options(warn=-1)
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
21 windowsize = as.integer("$windowsize")
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
22 labels = '$label'
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
23 ## align query to itself
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
24 cmd = 'python /Users/xuebing/galaxy-dist/tools/mytools/alignr.py -a $query -b $query -o $label-$label --profile-only -q -w $windowsize -n $nbins'
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
25 cat('\n[',date(),'] ',cmd,'\n')
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
26 system(cmd)
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
27 ## align other sets to query
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
28 #for $i,$s in enumerate( $series )
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
29 labels = c(labels,'$s.label.value')
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
30 cmd = 'python /Users/xuebing/galaxy-dist/tools/mytools/alignr.py -a $s.input.file_name -b $query -o $label-$s.label.value --profile-only -q -w $windowsize -n $nbins'
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
31 cat('\n[',date(),'] ',cmd,'\n')
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
32 system(cmd)
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
33 #end for
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
34 cat('\n[',date(),'] Read output\n')
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
35 ## read output of query2query
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
36 print(paste(labels[1],labels[1],sep='-'))
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
37 x = read.table(paste(labels[1],labels[1],sep='-'))
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
38 ids = as.character(x[,1])
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
39 nfeat = nrow(x)
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
40 x = as.matrix(x[,3:ncol(x)])
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
41 nbin = ncol(x)
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
42
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
43 ## a table mapping id to position
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
44 ind = list()
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
45 for (i in 1:nfeat){
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
46 ind[[ids[i]]] = i
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
47 }
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
48 ## read other output files
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
49 for (i in 2:length(labels)){
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
50 print(paste(labels[1],labels[i],sep='-'))
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
51 x0 = read.table(paste(labels[1],labels[i],sep='-'))
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
52 ids0 = as.character(x0[,1])
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
53 x0 = as.matrix(x0[,3:ncol(x0)])
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
54 x1 = matrix(0,nfeat,nbin)
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
55 for (j in 1:nrow(x0)){
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
56 #cat(j,'\t',ids0[j],'\t',ind[[ids0[j]]],'\n')
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
57 x1[ind[[ids0[j]]],] = x0[j,]
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
58 }
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
59 x = cbind(x,x1)
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
60 }
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
61 ## reorder
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
62 if ("${sort}" == "sort"){
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
63 cat('\n[',date(),'] Sort intervals\n')
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
64 for (i in rev(2:length(labels))){
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
65 x = x[order(x[,i*nbin-nbin/2]>0),]
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
66 }
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
67 }
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
68 png("${out_file1}")
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
69 ##par(mfrow=c(2,length(labels)),mar=c(1,1,4,1))
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
70 layout(matrix(seq(2*length(labels)),nrow=2,byrow=T),heights=c(1,5))
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
71 cat('\n[',date(),'] Plot summary\n')
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
72 par(mar=c(0,0,4,0)+0.1)
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
73 for (i in 1:length(labels)){
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
74 plot(colSums(x[,((i-1)*nbin+1):(i*nbin)]),type='l',axes=F,main=labels[i])
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
75 }
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
76 cat('\n[',date(),'] Plot heatmap\n')
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
77 par(mar=c(0,0,0,0)+0.1)
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
78 for (i in 1:length(labels)){
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
79 image(-t(log2(1+x[,((i-1)*nbin+1):(i*nbin)])),axes=F)
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
80 }
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
81 dev.off()
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
82 cat('\n[',date(),'] Finished\n')
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
83
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
84 </configfile>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
85 </configfiles>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
86
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
87 <outputs>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
88 <data format="txt" name="logfile" label="${tool.name} on ${on_string}: (log)" />
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
89 <data format="png" name="out_file1" label="${tool.name} on ${on_string}: (plot)" />
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
90 </outputs>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
91
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
92 <help>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
93 .. class:: infomark
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
94
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
95 This tool allows you to check the co-localization pattern of multiple interval sets. All interval sets are aligned to the center of the intervals in the query interval set.
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
96
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
97 Each row represents a window of certain size around the center of one interval in the query set, such as ChIP peaks. Each heatmap shows the position of other features in the SAME window (the same rows in each heatmap represent the same interval/genomic position).
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
98
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
99
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
100 The example below shows that of all Fox2 peaks, half of them are within 1kb of TSS. Of the half outside TSS, about one half has H3K4me1, two thirds of which are further depleted of H3K4me3.
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
101
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
102 -----
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
103
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
104 **Example**
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
105
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
106 .. image:: ./static/images/align2multiple.png
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
107
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
108 </help>
f0dc65e7f6c0 Uploaded
xuebing
parents:
diff changeset
109 </tool>