Mercurial > repos > devteam > gffread
diff gffread.xml @ 0:baeea9c2ff0f draft
planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tool_collections/cufflinks/gffread commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
author | devteam |
---|---|
date | Mon, 09 Nov 2015 12:06:36 -0500 |
parents | |
children | 96c4d0e18546 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gffread.xml Mon Nov 09 12:06:36 2015 -0500 @@ -0,0 +1,444 @@ +<tool id="gffread" name="gffread" version="@VERSION@.0"> + <description>Filters and/or converts GFF3/GTF2 records</description> + <expand macro="requirements" /> + <expand macro="stdio" /> + <macros> + <import>cuff_macros.xml</import> + <xml name="fasta_output_select"> + <param name="fa_outputs" type="select" display="checkboxes" multiple="true" label="Select fasta outputs"> + <option value="-w exons.fa">fasta file with spliced exons for each GFF transcript (-w exons.fa)</option> + <option value="-x cds.fa">fasta file with spliced CDS for each GFF transcript (-x cds.fa)</option> + <option value="-y pep.fa">protein fasta file with the translation of CDS for each record (-y pep.fa)</option> + <option value="-W">for each fasta: record the exon coordinates projected onto the spliced sequence (-W)</option> + </param> + </xml> + <xml name="ref_filtering_select"> + <param name="ref_filtering" type="select" display="checkboxes" multiple="true" label="reference based filters"> + <option value="-N">discard multi-exon mRNAs that have any intron with a non-canonical splice site consensus, i.e. not GT-AG, GC-AG or AT-AC (-N)</option> + <option value="-J">discard any mRNAs that either lack initial START codon or the terminal STOP codon, or have an in-frame stop codon (-J)</option> + <option value="-V">discard any mRNAs with CDS having in-frame stop codons (-V)</option> + <option value="-H">check and adjust the starting CDS phase if the original phase leads to a translation with an in-frame stop codon (-H with -V)</option> + <!-- gffread bug: B not in missing from param to the arg parser + <option value="-B">single-exon transcripts are also checked on the opposite strand (-B with -V)</option> + --> + </param> + </xml> + <xml name="trackname"> + <param name="tname" type="text" value="" optional="true" label="Trackname to use in the second column of each GFF output line" help="(-t track_name}"> + <validator type="regex">\w+</validator> + </param> + </xml> + <xml name="merge_opts"> + <option value="-K">also collapse shorter, fully contained transcripts with fewer introns than the container (-K)</option> + <option value="-Q">remove the containment restriction: multi-exon transcripts will be collapsed if just their introns match, while single-exon transcripts can partially overlap 80% (-Q)</option> + <option value="-d dupinfo">output collapsing info (-d dupinfo)</option> + </xml> + <xml name="cluster_opts"> + <option value="--force-exons"> make sure that the lowest level GFF features are printed as 'exon' features (--force-exons)</option> + <option value="-Z">merge close exons into a single exon (for intron size < 4) (-Z)</option> + </xml> + <xml name="merge_opt_sel"> + <param name="merge_options" type="select" display="checkboxes" multiple="true" label="Merge options"> + <expand macro="cluster_opts" /> + <expand macro="merge_opts" /> + </param> + </xml> + <xml name="cluster_opt_sel"> + <param name="merge_options" type="select" display="checkboxes" multiple="true" label="Cluster options"> + <expand macro="cluster_opts" /> + </param> + </xml> + </macros> + <command> +<![CDATA[ + #if $reference_genome.source == 'history': + ln -s $reference_genome.genome_fasta genomeref.fa && + #end if + gffread $input + #if $reference_genome.source == 'cached': + -g "${reference_genome.fasta_indexes.fields.path}" + #if $reference_genome.ref_filtering and str($reference_genome.ref_filtering) != '': + #echo ' '.join(str($reference_genome.ref_filtering).split(',')) + #end if + #elif $reference_genome.source == 'history': + -g genomeref.fa + #if $reference_genome.ref_filtering and str($reference_genome.ref_filtering) != '': + #echo ' '.join(str($reference_genome.ref_filtering).split(',')) + #end if + #end if + #if $filtering and str($filtering) != '': + #echo " " + #echo ' '.join(str($filtering).split(',')) + #end if + #if $maxintron and $maxintron > 0: + -i $maxintron + #end if + #if $region.region_filter == 'filter': + -r $region.range $region.discard_partial + #end if + #if $merging.merge_sel != 'none': + $merging.merge_cmd + #if $merging.merge_options: + #echo ' '.join(str($merging.merge_options).split(',')) + #end if + #end if + #if $chr_replace: + -m "$chr_replace" + #end if + ## + ## Although documented, does not appear to be used in the gffread code + ## #if $seq_info: + ## -A -s "$seq_info" + ## #end if + ## + ## outputs + #if $reference_genome.source != 'none': + #if $reference_genome.fa_outputs and str($reference_genome.fa_outputs) != '': + #echo ' ' + ' '.join(str($reference_genome.fa_outputs).split(',')) + #end if + #end if + #if $gffs.gff_fmt != 'none': + #if $gffs.tname: + -t "$gffs.tname" + #end if + #if $gffs.gff_fmt == 'gff': + #if $input.datatype.file_ext == 'gft': + $gffs.ensembl + #end if + $gffs.output_cmd + #elif $gffs.gff_fmt == 'gtf': + $gffs.output_cmd + #end if + #end if +]]> + </command> + <inputs> + <param name="input" type="data" format="gff3,gtf" label="Input GFF3 or GTF feature file"/> + <!-- filtering --> + <param name="filtering" type="select" display="checkboxes" multiple="true" label="filters"> + <option value="-U">discard single-exon transcripts (-U)</option> + <option value="-C">coding only: discard mRNAs that have no CDS feature (-C)</option> + <option value="-G">only parse additional exon attributes from the first exon and move them to the mRNA level (useful for GTF input) (-G)</option> + <option value="-O">process also non-transcript GFF records (by default non-transcript records are ignored) (-O)</option> + <option value="--no-pseudo">filter out records matching the 'pseudo' keyword (--no-pseudo)</option> + </param> + <conditional name="region"> + <param name="region_filter" type="select" label="Filter by genome region"> + <option value="none">No</option> + <option value="filter">Yes</option> + </param> + <when value="none"/> + <when value="filter"> + <param name="range" type="text" value="" label="Only show transcripts overlapping coordinate range"> + <help><![CDATA[ + (-r [['strand']'chr':]'start'..'end') <br> + examples: <br> + 1000..500000 <br> + chr1:1000..500000 <br> + +chr1:1000..500000 <br> + -chr1:1000..500000 + ]]> + </help> + <validator type="regex">(([+-])?(\w+:))?\d+\.\.\d+</validator> + </param> + <param name="discard_partial" type="boolean" truevalue="-R" falsevalue="" check="false" + label="discard all transcripts that are not fully contained within the given range" help="(-R)"/> + </when> + </conditional> + <param name="maxintron" type="integer" value="" optional="true" min="0" label="Filter out transcipts with large introns" + help="If set, discard transcripts having an intron larger (-i max_intron)"/> + <param name="chr_replace" type="data" format="tabular" optional="true" label="Replace reference sequence names" > + <help><![CDATA[(-m chr_replace) <br> + chr_replace is a reference sequence replacement table consisting of 2 columns: "original_ref_ID" "new_ref_ID"<br> + It is useful for switching between Ensembl and UCSC naming conventions <br> + NOTE: GFF records on reference sequences that are not found among the "original_ref_ID" entries in this file will be filtered out + ]]> + </help> + </param> + + <!-- Although documented, does not appear to be used in the gffread code + <param name="seq_info" type="data" format="tabular" optional="true" label="Use the description field as the value for a 'descr' attribute to the GFF record"> + <help> + (-s seq_info.fsize -A) useful with mRNA/EST/protein mappings <br> + seq_info input file is a 3 column tab-delimited file providing this info for each of the mapped sequences: <br> + "seq-name" "seq-length" "seq-description" <br> + </help> + </param> + --> + + <!-- merging --> + <conditional name="merging"> + <param name="merge_sel" type="select" label="Transcript merging" help="(-M/--merge or --cluster-only)"> + <option value="none">none</option> + <option value="merge">merge: cluster the input transcripts into loci, collapsing matching transcripts</option> + <option value="cluster">cluster-only: merge but without collapsing matching transcripts</option> + </param> + <when value="none"/> + <when value="merge"> + <param name="merge_cmd" type="hidden" value="--merge"/> + <expand macro="merge_opt_sel" /> + </when> + <when value="cluster"> + <param name="merge_cmd" type="hidden" value="--cluster-only"/> + <expand macro="cluster_opt_sel" /> + </when> + </conditional> + <!-- reference sequence file --> + <!-- Error: -g option is required for options -w, -x, -y, -V, -N, -M --> + <conditional name="reference_genome"> + <param name="source" type="select" label="Reference Genome" help="(-g genome.fasta) NOTE: Required for fasta outputs"> + <option value="none">none</option> + <option value="cached"></option> + <option value="history">From your history</option> + </param> + <when value="none"> + </when> + <when value="cached"> + <param name="fasta_indexes" type="select" label="Source FASTA Sequence"> + <options from_data_table="all_fasta"/> + </param> + <expand macro="ref_filtering_select" /> + <expand macro="fasta_output_select" /> + </when> + <when value="history"> + <param name="genome_fasta" type="data" format="fasta" label="Genome Reference Fasta"/> + <expand macro="ref_filtering_select" /> + <expand macro="fasta_output_select" /> + </when> + </conditional> + + <!-- outputs --> + <conditional name="gffs"> + <param name="gff_fmt" type="select" optional="true" label="Feature File Output" help="(-o output.gff3|output.gtf)"> + <option value="none">none</option> + <option value="gff">GFF</option> + <option value="gtf">GTF</option> + </param> + <when value="none"> + </when> + <when value="gff"> + <param name="output_cmd" type="hidden" value="-o output.gff3"/> + <param name="ensembl" type="boolean" truevalue="-L" falsevalue="" check="false" label="Ensembl GTF to GFF3 conversion" help="(-L)"/> + <expand macro="trackname" /> + </when> + <when value="gtf"> + <param name="output_cmd" type="hidden" value="-T -o output.gtf"/> + <expand macro="trackname" /> + </when> + </conditional> + + <param name="full_gff_attribute_preservation" type="boolean" truevalue="-F" falsevalue="" check="false" + label="full GFF attribute preservation (all attributes are shown)" help="(-F)"/> + <param name="decode_url" type="boolean" truevalue="-D" falsevalue="" check="false" + label="decode url encoded characters within attributes" help="(-D)"/> + <param name="expose" type="boolean" truevalue="-E" falsevalue="" check="false" + label="warn about duplicate transcript IDs and other potential problems with the given GFF/GTF records" help="(-E)"/> + + </inputs> + <outputs> + <data name="output_gff" format="gff3" metadata_source="input" label="${tool.name} on ${on_string}: gff3" from_work_dir="output.gff3"> + <filter>gffs['gff_fmt'] == 'gff'</filter> + </data> + <data name="output_gtf" format="gtf" metadata_source="input" label="${tool.name} on ${on_string}: gtf" from_work_dir="output.gtf"> + <filter>gffs['gff_fmt'] == 'gtf'</filter> + </data> + <data name="output_exons" format="fasta" label="${tool.name} on ${on_string}: exons.fa" from_work_dir="exons.fa"> + <filter>'fa_outputs' in reference_genome and str(reference_genome['fa_outputs']).find('exons.fa') > 0 </filter> + </data> + <data name="output_cds" format="fasta" label="${tool.name} on ${on_string}: cds.fa" from_work_dir="cds.fa"> + <filter>'fa_outputs' in reference_genome and str(reference_genome['fa_outputs']).find('cds.fa') > 0</filter> + </data> + <data name="output_pep" format="fasta" label="${tool.name} on ${on_string}: pep.fa" from_work_dir="pep.fa"> + <filter>'fa_outputs' in reference_genome and str(reference_genome['fa_outputs']).find('pep.fa') > 0</filter> + </data> + <data name="output_dupinfo" format="txt" label="${tool.name} on ${on_string}: dupinfo" from_work_dir="dupinfo"> + <filter>'merge_options' in merging and merging['merge_options'].find('dupinfo') > 0</filter> + </data> + </outputs> + <tests> + <test> + <param name="input" ftype="gtf" value="Homo_sapiens.GRCh37_19.71.gtf"/> + <param name="gff_fmt" value="gff"/> + <output name="output_gff" file="Homo_sapiens.GRCh37_19.71.gff3" ftype="gff3" /> + </test> + + <test> + <param name="input" ftype="gtf" value="Homo_sapiens.GRCh37_19.71.gtf"/> + <param name="filtering" value="--no-pseudo"/> + <param name="gff_fmt" value="gtf"/> + <output name="output_gtf"> + <assert_contents> + <not_has_text text="pseudo" /> + </assert_contents> + </output> + </test> + + <test> + <param name="input" ftype="gtf" value="Homo_sapiens.GRCh37_19.71.gtf"/> + <param name="region_filter" value="filter"/> + <param name="range" value="19:496500..504965"/> + <param name="gff_fmt" value="gtf"/> + <output name="output_gtf"> + <assert_contents> + <has_text text="ENST00000587541" /> + <has_text text="ENST00000382683" /> + </assert_contents> + </output> + </test> + + <test> + <param name="input" ftype="gtf" value="Homo_sapiens.GRCh37_19.71.gtf"/> + <param name="region_filter" value="filter"/> + <param name="range" value="19:496500..504965"/> + <param name="discard_partial" value="true"/> + <param name="gff_fmt" value="gtf"/> + <output name="output_gtf"> + <assert_contents> + <has_text text="ENST00000587541" /> + <has_text text="ENST00000382683" /> + </assert_contents> + </output> + </test> + + <test> + <param name="input" ftype="gtf" value="Homo_sapiens.GRCh37_19.71.gtf"/> + <param name="filtering" value="-C"/> + <param name="region_filter" value="filter"/> + <param name="range" value="19:496500..504965"/> + <param name="gff_fmt" value="gtf"/> + <output name="output_gtf"> + <assert_contents> + <not_has_text text="ENST00000587541" /> + <has_text text="ENST00000382683" /> + </assert_contents> + </output> + </test> + + <test> + <param name="input" ftype="gtf" value="Homo_sapiens.GRCh37_19.71.gtf"/> + <param name="source" value="history"/> + <param name="genome_fasta" ftype="fasta" value="Homo_sapiens.GRCh37.71.dna.chromosome.19.fa"/> + <param name="fa_outputs" value="-w exons.f,-x cds.fa,-y pep.fa"/> + <param name="region_filter" value="filter"/> + <param name="range" value="19:496500..504965"/> + <param name="gff_fmt" value="gtf"/> + <output name="output_gtf"> + <assert_contents> + <not_has_text text="ENST00000587541" /> + <has_text text="ENST00000382683" /> + </assert_contents> + </output> + <output name="output_exons"> + <assert_contents> + <has_text text="ENST00000346144 gene=MADCAM1 CDS=47-932" /> + <has_text text="CTATTTAAGCGGCTTCCCCGCGGCCTCGGGACAGAGGGGACTGAGCATGGATTTCGGACTGGCCCTCCTG" /> + </assert_contents> + </output> + <output name="output_cds"> + <assert_contents> + <has_text text="ENST00000346144 gene=MADCAM1" /> + <has_text text="ATGGATTTCGGACTGGCCCTCCTGCTGGCGGGGCTTCTGGGGCTCCTCCTCGGCCAGTCCCTCCAGGTGA" /> + </assert_contents> + </output> + <output name="output_pep"> + <assert_contents> + <has_text text="ENST00000346144 gene=MADCAM1" /> + <has_text text="MDFGLALLLAGLLGLLLGQSLQVKPLQVEPPEPVVAVALGASRQLTCRLACADRGASVQWRGLDTSLGAV" /> + </assert_contents> + </output> + </test> + + </tests> + <help> +<![CDATA[ +**gffread Filters and/or converts GFF3/GTF2 records** + +The gffread command is distributed with the cufflinks_ package. + +.. _cufflinks: http://cole-trapnell-lab.github.io/cufflinks/ + +Usage: :: + + gffread "input_gff" [-g "genomic_seqs_fasta" | "dir"][-s "seq_info.fsize"] + [-o "outfile.gff"] [-t "tname"] [-r [["strand"]"chr":]"start".."end" [-R]] + [-CTVNJMKQAFGUBHZWTOLE] [-w "exons.fa"] [-x "cds.fa"] [-y "tr_cds.fa"] + [-i "maxintron"] + +Options: :: + + -g full path to a multi-fasta file with the genomic sequences + for all input mappings, OR a directory with single-fasta files + (one per genomic sequence, with file names matching sequence names) + -s <seq_info.fsize> is a tab-delimited file providing this info + for each of the mapped sequences: + <seq-name> <seq-length> <seq-description> + (useful for -A option with mRNA/EST/protein mappings) + -i discard transcripts having an intron larger than <maxintron> + -r only show transcripts overlapping coordinate range <start>..<end> + (on chromosome/contig <chr>, strand <strand> if provided) + -R for -r option, discard all transcripts that are not fully + contained within the given range + -U discard single-exon transcripts + -C coding only: discard mRNAs that have no CDS feature + -F full GFF attribute preservation (all attributes are shown) + -G only parse additional exon attributes from the first exon + and move them to the mRNA level (useful for GTF input) + -A use the description field from <seq_info.fsize> and add it + as the value for a 'descr' attribute to the GFF record + + -O process also non-transcript GFF records (by default non-transcript + records are ignored) + -V discard any mRNAs with CDS having in-frame stop codons + -H for -V option, check and adjust the starting CDS phase + if the original phase leads to a translation with an + in-frame stop codon + -B for -V option, single-exon transcripts are also checked on the + opposite strand + -N discard multi-exon mRNAs that have any intron with a non-canonical + splice site consensus (i.e. not GT-AG, GC-AG or AT-AC) + -J discard any mRNAs that either lack initial START codon + or the terminal STOP codon, or have an in-frame stop codon + (only print mRNAs with a fulll, valid CDS) + --no-pseudo: filter out records matching the 'pseudo' keyword + + -M/--merge : cluster the input transcripts into loci, collapsing matching + transcripts (those with the same exact introns and fully contained) + -d <dupinfo> : for -M option, write collapsing info to file <dupinfo> + --cluster-only: same as --merge but without collapsing matching transcripts + -K for -M option: also collapse shorter, fully contained transcripts + with fewer introns than the container + -Q for -M option, remove the containment restriction: + (multi-exon transcripts will be collapsed if just their introns match, + while single-exon transcripts can partially overlap (80%)) + + --force-exons: make sure that the lowest level GFF features are printed as + "exon" features + -E expose (warn about) duplicate transcript IDs and other potential + problems with the given GFF/GTF records + -D decode url encoded characters within attributes + -Z merge close exons into a single exon (for intron size<4) + -w write a fasta file with spliced exons for each GFF transcript + -x write a fasta file with spliced CDS for each GFF transcript + -W for -w and -x options, also write for each fasta record the exon + coordinates projected onto the spliced sequence + -y write a protein fasta file with the translation of CDS for each record + -L Ensembl GTF to GFF3 conversion (implies -F; should be used with -m) + -m <chr_replace> is a reference (genomic) sequence replacement table with + this format: + <original_ref_ID> <new_ref_ID> + For example from UCSC naming to Ensembl naming: + chr1 1 + chr2 2 + GFF records on reference sequences that are not found among the + <original_ref_ID> entries in this file will be filtered out + -o the "filtered" GFF records will be written to <outfile.gff> + (use -o- for printing to stdout) + -t use <trackname> in the second column of each GFF output line + -T -o option will output GTF format instead of GFF3 + +]]> + </help> + <citations> + <citation type="doi">10.1038/nbt.1621</citation> + </citations> +</tool>