view bedtools-galaxy/multiIntersectBed.xml @ 0:26c21c634c51

Uploaded
author aaronquinlan
date Thu, 29 Dec 2011 10:20:07 -0500
parents
children
line wrap: on
line source

<tool id="bedtools_multiintersectbed" name="Intersect multiple sorted BED files" version="0.1.0">
	<description>
	</description>
	
	<requirements>
        <requirement type="binary">multiIntersectBed</requirement>
    </requirements>
    
	<command>multiIntersectBed
		$header
		#if $zero.value == True:
			-empty
			-g ${chromInfo}
		#end if
		
		-i '$input1'
		'$input2'
		#for $q in $beds
			'${q.input}'
		#end for

		-names
		#if $name1.choice == "tag":
			'${input1.name}'
		#else
			'${name1.custom_name}'
		#end if

		#if $name2.choice == "tag":
			'${input2.name}'
		#else
			'${name2.custom_name}'
		#end if

		#for $q in $beds
			#if $q.name.choice == "tag":
				'${q.input.name}'
			#else
				'${q.input.custom_name}'
			#end if
		#end for
		&gt; '$output'
	</command>
	
	<inputs>
		<!-- Make it easy for the user, first two input files are always shown -->
		<!-- INPUT 1 -->
		<param name="input1" format="bed" type="data" label="First sorted BED file" />
		
		<conditional name="name1">
			<param name="choice" type="select" label="Sample name">
				<option value="tag" selected="true">Use input's tag</option>
				<option value="custom">Enter custom table name</option>
			</param>
			<when value="tag">
			</when>
			<when value="custom">
				<param name="custom_name" type="text" area="false" label="Custom sample name"/>
			</when>
		</conditional>

		<!-- INPUT 2 -->
		<param name="input2" format="bed" type="data" label="Second sorted BED file" />
		
		<conditional name="name2">
			<param name="choice" type="select" label="Sample name">
				<option value="tag" selected="true">Use input's tag</option>
				<option value="custom">Enter custom table name</option>
			</param>
			<when value="tag">
			</when>
			<when value="custom">
				<param name="custom_name" type="text" area="false" label="Custom sample name"/>
			</when>
		</conditional>

		<!-- Additional files, if the user needs more -->
		<repeat name="beds" title="Add'l sorted BED files" >
			<param name="input" format="bed" type="data" label="BED file" />

			<conditional name="name">
				<param name="choice" type="select" label="Sample name">
					<option value="tag" selected="true">Use input's tag</option>
					<option value="custom">Enter custom table name</option>
				</param>
				<when value="tag">
				</when>
				<when value="custom">
					<param name="custom_name" type="text" area="false" label="Custom sample name"/>
				</when>
			</conditional>
		</repeat>

		<param name="header" type="boolean" checked="true" truevalue="-header" falsevalue="" label="Print header line" help="The first line will include the name of each sample." />

		<param name="zero" type="boolean" checked="true" label="Report regions that are not covered by any of the files" help="If set, regions that are not overlapped by any file will also be reported. Requires a valid organism key for all input datasets" />

	</inputs>

	<outputs>
		<data format="tabular" name="output"  metadata_source="input1" label="Common intervals identified from among ${input1.name}, ${input2.name} and so on." />
	</outputs>
	<help>
	
**What it does**

This tool identifies common intervals among multiple, sorted BED files. Intervals can be common among 0 to N of the N input BED files. The pictorial and raw data examples below illustrate the behavior of this tool more clearly.


.. image:: http://people.virginia.edu/~arq5x/files/bedtools-galaxy/mbi.png


.. class:: warningmark

This tool requires that each BED file is reference-sorted (chrom, then start).

.. class:: warningmark

This tool requires that `bedtools`__ has been installed on your system.

.. class:: infomark

The output file will contain five fixed columns, plus additional columns for each BED file:

    * 1. Chromosome name (or 'genome' for whole-genome coverage).
    * 2. The zero-based start position of the interval.
    * 3. The one-based end position of the interval.
    * 4. The number of input files that had at least one feature overlapping this interval.
    * 5. A list of input files or labels that had at least one feature overlapping this interval.
    * 6. For each input file, an indication (1 = Yes, 0 = No) of whether or not the file had at least one feature overlapping this interval.

------

**Example input**::

    # a.bed
    chr1  6   12
    chr1  10  20
    chr1  22  27
    chr1  24  30
    
    # b.bed
    chr1  12  32
    chr1  14  30
    
    # c.bed
    chr1  8   15
    chr1  10  14
    chr1  32  34


------

**Example without a header and without reporting intervals with zero coverage**::


    chr1	6	8	1	1	1	0	0
    chr1	8	12	2	1,3	1	0	1
    chr1	12	15	3	1,2,3	1	1	1
    chr1	15	20	2	1,2	1	1	0
    chr1	20	22	1	2	0	1	0
    chr1	22	30	2	1,2	1	1	0
    chr1	30	32	1	2	0	1	0
    chr1	32	34	1	3	0	0	1


**Example adding a header line**::


    chrom	start	end	num	list	a.bed	b.bed	c.bed
    chr1	6	8	1	1	1	0	0
    chr1	8	12	2	1,3	1	0	1
    chr1	12	15	3	1,2,3	1	1	1
    chr1	15	20	2	1,2	1	1	0
    chr1	20	22	1	2	0	1	0
    chr1	22	30	2	1,2	1	1	0
    chr1	30	32	1	2	0	1	0
    chr1	32	34	1	3	0	0	1


**Example adding a header line and custom file labels**::


    chrom	start	end	num	list	    joe	bob	sue
    chr1	6	8	1	joe	    1	0	0
    chr1	8	12	2	joe,sue	    1	0	1
    chr1	12	15	3	joe,bob,sue 1	1	1
    chr1	15	20	2	joe,bob	    1	1	0
    chr1	20	22	1	bob	    0	1	0
    chr1	22	30	2	joe,bob	    1	1	0
    chr1	30	32	1	bob	    0	1	0
    chr1	32	34	1	sue	    0	0	1


-----


This tool is part of the `bedtools package`__ from the `Quinlan laboratory`__. If you use this tool, please cite `Quinlan AR, and Hall I.M. BEDTools: A flexible framework for comparing genomic features. Bioinformatics, 2010, 26, 6.`__

    .. __: http://code.google.com/p/bedtools/
    .. __: http://code.google.com/p/bedtools/
    .. __: http://cphg.virginia.edu/quinlan/
    .. __: http://bioinformatics.oxfordjournals.org/content/26/6/841.short



 
</help>
</tool>