changeset 0:7fbff19b4485 draft default tip

planemo upload for repository https://github.com/galaxyproject/mvdbeek/tree/master/tools/zerone commit 35b6256bc4fe6138f03228795e88da46068ac14e
author mvdbeek
date Fri, 14 Sep 2018 04:52:55 -0400
parents
children
files r-zerone.py test-data/c1.bed test-data/c2.bed test-data/d1.bed test-data/d2.bed test-data/discrete.bed zerone_damid.xml
diffstat 7 files changed, 592 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/r-zerone.py	Fri Sep 14 04:52:55 2018 -0400
@@ -0,0 +1,51 @@
+from collections import OrderedDict
+import click
+import pandas as pd
+from rpy2.robjects import pandas2ri
+from rpy2.robjects.packages import importr
+
+
+pandas2ri.activate()
+zerone = importr('zerone')
+
+
+def generate_dataframe(controls, treatments):
+    c = OrderedDict()
+    for control in controls:
+        c[control] = pd.read_csv(control, usecols=[3], sep='\t', header=None, dtype=int)[3]
+
+    t = OrderedDict()
+    for treatment in treatments:
+        t[treatment] = pd.read_csv(treatment, usecols=[3], sep='\t', header=None, dtype=int)[3]
+
+    control_series = pd.DataFrame(c).sum(axis=1)
+    control_df = pd.DataFrame(control_series)
+    control_df.columns = ['Control']
+    treatment_df = pd.DataFrame(t)
+    chroms = pd.read_csv(treatments[0], usecols=[0], sep='\t', header=None)
+    chroms.columns = ['chrom']
+    df = pd.DataFrame.merge(control_df, treatment_df, left_index=True, right_index=True)
+    df = chroms.merge(df, left_index=True, right_index=True)
+    return df
+
+
+def discretize(df):
+    r = zerone.zerone(df, returnall=True)
+    return pandas2ri.ri2py_dataframe(r.rx('path'))['path'] == 2
+
+
+@click.command()
+@click.option('--control_files', type=click.Path(exists=True), multiple=True)
+@click.option('--fusion_files', type=click.Path(exists=True), multiple=True, required=True)
+@click.option('--output', type=click.Path(exists=False), required=True)
+def main(control_files, fusion_files, output):
+    """Run zerone discretization for control and fusion files"""
+    df = generate_dataframe(controls=control_files, treatments=fusion_files)
+    s = discretize(df)
+    template = pd.read_csv(control_files[0], usecols=[0, 1, 2], sep='\t', header=None)
+    template['result'] = s.astype(int)
+    template.to_csv(output, header=None, sep='\t', index=None)
+
+
+if __name__ == '__main__':
+    main()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/c1.bed	Fri Sep 14 04:52:55 2018 -0400
@@ -0,0 +1,100 @@
+2L	3577117	3577121	22
+2L	3577145	3577149	29
+2L	3577620	3577624	40
+2L	3578036	3578040	45
+2L	3578294	3578298	92
+2L	3578397	3578401	67
+2L	3578620	3578624	57
+2L	3578803	3578807	25
+2L	3578858	3578862	2
+2L	3578870	3578874	5
+2L	3579809	3579813	26
+2L	3579876	3579880	30
+2L	3580547	3580551	38
+2L	3580718	3580722	12
+2L	3580751	3580755	16
+2L	3580814	3580818	14
+2L	3580841	3580845	18
+2L	3580881	3580885	24
+2L	3581488	3581492	8
+2L	3581512	3581516	0
+2L	3581620	3581624	35
+2L	3582291	3582295	7
+2L	3582307	3582311	0
+2L	3582337	3582341	0
+2L	3582395	3582399	0
+2L	3582410	3582414	0
+2L	3582432	3582436	0
+2L	3582440	3582444	0
+2L	3582469	3582473	3
+2L	3582633	3582637	1
+2L	3582772	3582776	18
+2L	3583074	3583078	248
+2L	3583281	3583285	238
+2L	3583287	3583291	2
+2L	3583341	3583345	0
+2L	3583378	3583382	0
+2L	3583388	3583392	0
+2L	3583392	3583396	0
+2L	3583450	3583454	0
+2L	3583505	3583509	76
+2L	3583691	3583695	85
+2L	3583718	3583722	1
+2L	3583799	3583803	0
+2L	3583884	3583888	0
+2L	3583936	3583940	0
+2L	3583945	3583949	0
+2L	3583963	3583967	7
+2L	3584281	3584285	0
+2L	3584332	3584336	219
+2L	3584575	3584579	290
+2L	3585069	3585073	16
+2L	3585074	3585078	2
+2L	3585084	3585088	12
+2L	3585244	3585248	14
+2L	3585251	3585255	3
+2L	3586867	3586871	0
+2L	3586894	3586898	0
+2L	3586958	3586962	0
+2L	3586999	3587003	1
+2L	3587101	3587105	19
+2L	3587618	3587622	22
+2L	3587743	3587747	0
+2L	3587845	3587849	1
+2L	3587850	3587854	0
+2L	3587870	3587874	0
+2L	3587999	3588003	10
+2L	3588914	3588918	8
+2L	3588922	3588926	12
+2L	3589436	3589440	24
+2L	3589528	3589532	12
+2L	3590002	3590006	36
+2L	3590240	3590244	24
+2L	3590901	3590905	19
+2L	3591543	3591547	56
+2L	3591548	3591552	14
+2L	3591763	3591767	54
+2L	3592558	3592562	18
+2L	3592568	3592572	1
+2L	3592576	3592580	10
+2L	3592580	3592584	14
+2L	3592900	3592904	15
+2L	3593036	3593040	18
+2L	3593301	3593305	18
+2L	3593349	3593353	3
+2L	3593459	3593463	16
+2L	3593892	3593896	8
+2L	3595027	3595031	7
+2L	3595392	3595396	2
+2L	3595399	3595403	52
+2L	3595661	3595665	70
+2L	3596137	3596141	19
+2L	3596294	3596298	3
+2L	3596634	3596638	22
+2L	3596855	3596859	28
+2L	3597836	3597840	4
+2L	3597872	3597876	43
+2L	3598168	3598172	50
+2L	3598268	3598272	7
+2L	3598588	3598592	19
+2L	3599008	3599012	15
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/c2.bed	Fri Sep 14 04:52:55 2018 -0400
@@ -0,0 +1,100 @@
+2L	3577117	3577121	49
+2L	3577145	3577149	68
+2L	3577620	3577624	66
+2L	3578036	3578040	39
+2L	3578294	3578298	63
+2L	3578397	3578401	52
+2L	3578620	3578624	52
+2L	3578803	3578807	21
+2L	3578858	3578862	15
+2L	3578870	3578874	26
+2L	3579809	3579813	65
+2L	3579876	3579880	34
+2L	3580547	3580551	48
+2L	3580718	3580722	7
+2L	3580751	3580755	15
+2L	3580814	3580818	16
+2L	3580841	3580845	16
+2L	3580881	3580885	37
+2L	3581488	3581492	8
+2L	3581512	3581516	2
+2L	3581620	3581624	86
+2L	3582291	3582295	24
+2L	3582307	3582311	1
+2L	3582337	3582341	1
+2L	3582395	3582399	1
+2L	3582410	3582414	1
+2L	3582432	3582436	0
+2L	3582440	3582444	0
+2L	3582469	3582473	7
+2L	3582633	3582637	19
+2L	3582772	3582776	24
+2L	3583074	3583078	148
+2L	3583281	3583285	140
+2L	3583287	3583291	12
+2L	3583341	3583345	0
+2L	3583378	3583382	0
+2L	3583388	3583392	0
+2L	3583392	3583396	2
+2L	3583450	3583454	3
+2L	3583505	3583509	84
+2L	3583691	3583695	80
+2L	3583718	3583722	9
+2L	3583799	3583803	7
+2L	3583884	3583888	0
+2L	3583936	3583940	1
+2L	3583945	3583949	1
+2L	3583963	3583967	26
+2L	3584281	3584285	13
+2L	3584332	3584336	84
+2L	3584575	3584579	171
+2L	3585069	3585073	51
+2L	3585074	3585078	1
+2L	3585084	3585088	69
+2L	3585244	3585248	86
+2L	3585251	3585255	11
+2L	3586867	3586871	7
+2L	3586894	3586898	2
+2L	3586958	3586962	1
+2L	3586999	3587003	22
+2L	3587101	3587105	61
+2L	3587618	3587622	57
+2L	3587743	3587747	13
+2L	3587845	3587849	13
+2L	3587850	3587854	5
+2L	3587870	3587874	6
+2L	3587999	3588003	11
+2L	3588914	3588918	11
+2L	3588922	3588926	8
+2L	3589436	3589440	48
+2L	3589528	3589532	25
+2L	3590002	3590006	37
+2L	3590240	3590244	34
+2L	3590901	3590905	47
+2L	3591543	3591547	96
+2L	3591548	3591552	34
+2L	3591763	3591767	118
+2L	3592558	3592562	40
+2L	3592568	3592572	11
+2L	3592576	3592580	19
+2L	3592580	3592584	38
+2L	3592900	3592904	72
+2L	3593036	3593040	35
+2L	3593301	3593305	28
+2L	3593349	3593353	21
+2L	3593459	3593463	25
+2L	3593892	3593896	9
+2L	3595027	3595031	5
+2L	3595392	3595396	2
+2L	3595399	3595403	84
+2L	3595661	3595665	118
+2L	3596137	3596141	17
+2L	3596294	3596298	21
+2L	3596634	3596638	20
+2L	3596855	3596859	30
+2L	3597836	3597840	11
+2L	3597872	3597876	28
+2L	3598168	3598172	38
+2L	3598268	3598272	33
+2L	3598588	3598592	45
+2L	3599008	3599012	29
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/d1.bed	Fri Sep 14 04:52:55 2018 -0400
@@ -0,0 +1,100 @@
+2L	3577117	3577121	417
+2L	3577145	3577149	455
+2L	3577620	3577624	603
+2L	3578036	3578040	537
+2L	3578294	3578298	424
+2L	3578397	3578401	784
+2L	3578620	3578624	750
+2L	3578803	3578807	1180
+2L	3578858	3578862	84
+2L	3578870	3578874	147
+2L	3579809	3579813	551
+2L	3579876	3579880	428
+2L	3580547	3580551	548
+2L	3580718	3580722	167
+2L	3580751	3580755	271
+2L	3580814	3580818	146
+2L	3580841	3580845	140
+2L	3580881	3580885	227
+2L	3581488	3581492	49
+2L	3581512	3581516	3
+2L	3581620	3581624	553
+2L	3582291	3582295	92
+2L	3582307	3582311	0
+2L	3582337	3582341	0
+2L	3582395	3582399	0
+2L	3582410	3582414	0
+2L	3582432	3582436	0
+2L	3582440	3582444	4
+2L	3582469	3582473	153
+2L	3582633	3582637	103
+2L	3582772	3582776	84
+2L	3583074	3583078	1682
+2L	3583281	3583285	1650
+2L	3583287	3583291	59
+2L	3583341	3583345	2
+2L	3583378	3583382	0
+2L	3583388	3583392	0
+2L	3583392	3583396	1
+2L	3583450	3583454	2
+2L	3583505	3583509	920
+2L	3583691	3583695	791
+2L	3583718	3583722	17
+2L	3583799	3583803	11
+2L	3583884	3583888	1
+2L	3583936	3583940	1
+2L	3583945	3583949	2
+2L	3583963	3583967	142
+2L	3584281	3584285	80
+2L	3584332	3584336	844
+2L	3584575	3584579	1730
+2L	3585069	3585073	132
+2L	3585074	3585078	1
+2L	3585084	3585088	1
+2L	3585244	3585248	56
+2L	3585251	3585255	24
+2L	3586867	3586871	6
+2L	3586894	3586898	0
+2L	3586958	3586962	0
+2L	3586999	3587003	83
+2L	3587101	3587105	193
+2L	3587618	3587622	103
+2L	3587743	3587747	24
+2L	3587845	3587849	26
+2L	3587850	3587854	16
+2L	3587870	3587874	17
+2L	3587999	3588003	54
+2L	3588914	3588918	205
+2L	3588922	3588926	59
+2L	3589436	3589440	350
+2L	3589528	3589532	292
+2L	3590002	3590006	458
+2L	3590240	3590244	268
+2L	3590901	3590905	90
+2L	3591543	3591547	293
+2L	3591548	3591552	57
+2L	3591763	3591767	352
+2L	3592558	3592562	120
+2L	3592568	3592572	7
+2L	3592576	3592580	63
+2L	3592580	3592584	90
+2L	3592900	3592904	163
+2L	3593036	3593040	156
+2L	3593301	3593305	138
+2L	3593349	3593353	24
+2L	3593459	3593463	179
+2L	3593892	3593896	130
+2L	3595027	3595031	50
+2L	3595392	3595396	25
+2L	3595399	3595403	673
+2L	3595661	3595665	809
+2L	3596137	3596141	139
+2L	3596294	3596298	72
+2L	3596634	3596638	145
+2L	3596855	3596859	273
+2L	3597836	3597840	55
+2L	3597872	3597876	550
+2L	3598168	3598172	545
+2L	3598268	3598272	69
+2L	3598588	3598592	211
+2L	3599008	3599012	174
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/d2.bed	Fri Sep 14 04:52:55 2018 -0400
@@ -0,0 +1,100 @@
+2L	3577117	3577121	200
+2L	3577145	3577149	222
+2L	3577620	3577624	265
+2L	3578036	3578040	204
+2L	3578294	3578298	163
+2L	3578397	3578401	192
+2L	3578620	3578624	126
+2L	3578803	3578807	190
+2L	3578858	3578862	52
+2L	3578870	3578874	84
+2L	3579809	3579813	286
+2L	3579876	3579880	204
+2L	3580547	3580551	246
+2L	3580718	3580722	16
+2L	3580751	3580755	23
+2L	3580814	3580818	37
+2L	3580841	3580845	40
+2L	3580881	3580885	78
+2L	3581488	3581492	17
+2L	3581512	3581516	4
+2L	3581620	3581624	319
+2L	3582291	3582295	89
+2L	3582307	3582311	0
+2L	3582337	3582341	0
+2L	3582395	3582399	1
+2L	3582410	3582414	1
+2L	3582432	3582436	0
+2L	3582440	3582444	0
+2L	3582469	3582473	42
+2L	3582633	3582637	48
+2L	3582772	3582776	73
+2L	3583074	3583078	474
+2L	3583281	3583285	393
+2L	3583287	3583291	3
+2L	3583341	3583345	0
+2L	3583378	3583382	0
+2L	3583388	3583392	0
+2L	3583392	3583396	9
+2L	3583450	3583454	20
+2L	3583505	3583509	269
+2L	3583691	3583695	265
+2L	3583718	3583722	61
+2L	3583799	3583803	53
+2L	3583884	3583888	2
+2L	3583936	3583940	1
+2L	3583945	3583949	1
+2L	3583963	3583967	62
+2L	3584281	3584285	26
+2L	3584332	3584336	152
+2L	3584575	3584579	389
+2L	3585069	3585073	128
+2L	3585074	3585078	1
+2L	3585084	3585088	0
+2L	3585244	3585248	28
+2L	3585251	3585255	15
+2L	3586867	3586871	3
+2L	3586894	3586898	2
+2L	3586958	3586962	2
+2L	3586999	3587003	71
+2L	3587101	3587105	120
+2L	3587618	3587622	93
+2L	3587743	3587747	11
+2L	3587845	3587849	8
+2L	3587850	3587854	3
+2L	3587870	3587874	3
+2L	3587999	3588003	34
+2L	3588914	3588918	98
+2L	3588922	3588926	23
+2L	3589436	3589440	199
+2L	3589528	3589532	108
+2L	3590002	3590006	158
+2L	3590240	3590244	67
+2L	3590901	3590905	70
+2L	3591543	3591547	132
+2L	3591548	3591552	22
+2L	3591763	3591767	196
+2L	3592558	3592562	75
+2L	3592568	3592572	1
+2L	3592576	3592580	1
+2L	3592580	3592584	18
+2L	3592900	3592904	92
+2L	3593036	3593040	60
+2L	3593301	3593305	62
+2L	3593349	3593353	30
+2L	3593459	3593463	71
+2L	3593892	3593896	39
+2L	3595027	3595031	14
+2L	3595392	3595396	5
+2L	3595399	3595403	195
+2L	3595661	3595665	299
+2L	3596137	3596141	41
+2L	3596294	3596298	42
+2L	3596634	3596638	33
+2L	3596855	3596859	109
+2L	3597836	3597840	30
+2L	3597872	3597876	97
+2L	3598168	3598172	106
+2L	3598268	3598272	66
+2L	3598588	3598592	158
+2L	3599008	3599012	114
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/discrete.bed	Fri Sep 14 04:52:55 2018 -0400
@@ -0,0 +1,100 @@
+2L	3577117	3577121	0
+2L	3577145	3577149	0
+2L	3577620	3577624	0
+2L	3578036	3578040	0
+2L	3578294	3578298	0
+2L	3578397	3578401	0
+2L	3578620	3578624	0
+2L	3578803	3578807	0
+2L	3578858	3578862	1
+2L	3578870	3578874	1
+2L	3579809	3579813	1
+2L	3579876	3579880	0
+2L	3580547	3580551	0
+2L	3580718	3580722	0
+2L	3580751	3580755	0
+2L	3580814	3580818	0
+2L	3580841	3580845	0
+2L	3580881	3580885	0
+2L	3581488	3581492	0
+2L	3581512	3581516	0
+2L	3581620	3581624	0
+2L	3582291	3582295	0
+2L	3582307	3582311	0
+2L	3582337	3582341	0
+2L	3582395	3582399	0
+2L	3582410	3582414	0
+2L	3582432	3582436	0
+2L	3582440	3582444	0
+2L	3582469	3582473	0
+2L	3582633	3582637	0
+2L	3582772	3582776	0
+2L	3583074	3583078	0
+2L	3583281	3583285	0
+2L	3583287	3583291	1
+2L	3583341	3583345	1
+2L	3583378	3583382	1
+2L	3583388	3583392	1
+2L	3583392	3583396	1
+2L	3583450	3583454	1
+2L	3583505	3583509	0
+2L	3583691	3583695	0
+2L	3583718	3583722	0
+2L	3583799	3583803	0
+2L	3583884	3583888	0
+2L	3583936	3583940	0
+2L	3583945	3583949	0
+2L	3583963	3583967	0
+2L	3584281	3584285	0
+2L	3584332	3584336	0
+2L	3584575	3584579	0
+2L	3585069	3585073	1
+2L	3585074	3585078	1
+2L	3585084	3585088	1
+2L	3585244	3585248	1
+2L	3585251	3585255	1
+2L	3586867	3586871	1
+2L	3586894	3586898	1
+2L	3586958	3586962	1
+2L	3586999	3587003	1
+2L	3587101	3587105	1
+2L	3587618	3587622	1
+2L	3587743	3587747	1
+2L	3587845	3587849	1
+2L	3587850	3587854	1
+2L	3587870	3587874	1
+2L	3587999	3588003	1
+2L	3588914	3588918	1
+2L	3588922	3588926	1
+2L	3589436	3589440	1
+2L	3589528	3589532	1
+2L	3590002	3590006	1
+2L	3590240	3590244	1
+2L	3590901	3590905	1
+2L	3591543	3591547	1
+2L	3591548	3591552	1
+2L	3591763	3591767	1
+2L	3592558	3592562	1
+2L	3592568	3592572	1
+2L	3592576	3592580	1
+2L	3592580	3592584	1
+2L	3592900	3592904	1
+2L	3593036	3593040	1
+2L	3593301	3593305	1
+2L	3593349	3593353	1
+2L	3593459	3593463	0
+2L	3593892	3593896	0
+2L	3595027	3595031	0
+2L	3595392	3595396	0
+2L	3595399	3595403	0
+2L	3595661	3595665	0
+2L	3596137	3596141	0
+2L	3596294	3596298	0
+2L	3596634	3596638	0
+2L	3596855	3596859	0
+2L	3597836	3597840	0
+2L	3597872	3597876	0
+2L	3598168	3598172	0
+2L	3598268	3598272	1
+2L	3598588	3598592	1
+2L	3599008	3599012	1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/zerone_damid.xml	Fri Sep 14 04:52:55 2018 -0400
@@ -0,0 +1,41 @@
+<tool id="zerone_damid" name="Discretize DamID experiments with Zerone" version="1.0">
+    <requirements>
+        <requirement type="package" version="1.0">r-zerone</requirement>
+        <requirement type="package" version="2.9.3">rpy2</requirement>
+        <requirement type="package" version="0.23">pandas</requirement>
+        <requirement type="package" version="6.7">click</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+python '$__tool_directory__/r-zerone.py'
+#for c in $control_files:
+--control_files '$c'
+#end for
+#for d in $fusion_files:
+--fusion_files '$d'
+#end for
+--output '$output'
+    ]]></command>
+    <inputs>
+        <param argument="--control_files" type="data" format="bed" multiple="true" label="BED file(s) containing GATC counts for DamID control" help="You can produce these files uing bedtools coverageBed"/>
+        <param argument="--fusion_files" type="data" format="bed" multiple="true" label="BED file(s) containing GATC counts for DamID fusion" help="You can produce these files uing bedtools coverageBed"/>
+    </inputs>
+    <outputs>
+        <data name="output" label="Discretized DamID profile for ${on_string}" format="bed"/>
+    </outputs>
+    <tests>
+        <test>
+            <param name="control_files" value="c1.bed,c2.bed" ftype="bed"/>
+            <param name="damid_files" value="d1.bed,d2.bed" ftype="bed"/>
+            <output name="output" value="discrete.bed" ftype="bed"/>
+        </test>
+    </tests>
+    <help><![CDATA[
+
+Zerone discretizes several ChIP-seq replicates simultaneously and resolves conflicts between them. After the job is done, Zerone checks the results and tells you whether it passes the quality control.
+
+This wrapper uses the zerone R package to discretize quantified GATC counts.
+    ]]></help>
+    <citations>
+        <citation type="doi">10.1093/bioinformatics/btw336</citation>
+    </citations>
+</tool>