feat(plugins): New plugins for samtools and bedtools (#3574)

* Add first impl of samtools autocompletion

* Just autocomplete with files all the time

* Add init impl of bedtools completion

* Add readme.md for bedtools plugin

* Add readme for samtools

Co-authored-by: Rolf Schroeder <rolf.schroeder@centogene.com>
This commit is contained in:
Rolf Schröder 2021-06-12 16:12:07 +02:00 committed by GitHub
parent 26e9cead1a
commit e701fa49e7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 114 additions and 0 deletions

View file

@ -0,0 +1,5 @@
# Bedtools plugin
This plugin adds support for the [bedtools suite](http://bedtools.readthedocs.org/en/latest/):
* Adds autocomplete options for all bedtools sub commands.

View file

@ -0,0 +1,64 @@
#compdef bedtools
#autoload
local curcontext="$curcontext" state line ret=1
local -a _files
_arguments -C \
'1: :->cmds' \
'2:: :->args' && ret=0
case $state in
cmds)
_values "bedtools command" \
"--contact[Feature requests, bugs, mailing lists, etc.]" \
"--help[Print this help menu.]" \
"--version[What version of bedtools are you using?.]" \
"annotate[Annotate coverage of features from multiple files.]" \
"bamtobed[Convert BAM alignments to BED (& other) formats.]" \
"bamtofastq[Convert BAM records to FASTQ records.]" \
"bed12tobed6[Breaks BED12 intervals into discrete BED6 intervals.]" \
"bedpetobam[Convert BEDPE intervals to BAM records.]" \
"bedtobam[Convert intervals to BAM records.]" \
"closest[Find the closest, potentially non-overlapping interval.]" \
"cluster[Cluster (but don't merge) overlapping/nearby intervals.]" \
"complement[Extract intervals _not_ represented by an interval file.]" \
"coverage[Compute the coverage over defined intervals.]" \
"expand[Replicate lines based on lists of values in columns.]" \
"fisher[Calculate Fisher statistic b/w two feature files.]" \
"flank[Create new intervals from the flanks of existing intervals.]" \
"genomecov[Compute the coverage over an entire genome.]" \
"getfasta[Use intervals to extract sequences from a FASTA file.]" \
"groupby[Group by common cols. & summarize oth. cols. (~ SQL "groupBy")]" \
"igv[Create an IGV snapshot batch script.]" \
"intersect[Find overlapping intervals in various ways.]" \
"jaccard[Calculate the Jaccard statistic b/w two sets of intervals.]" \
"links[Create a HTML page of links to UCSC locations.]" \
"makewindows[Make interval "windows" across a genome.]" \
"map[Apply a function to a column for each overlapping interval.]" \
"maskfasta[Use intervals to mask sequences from a FASTA file.]" \
"merge[Combine overlapping/nearby intervals into a single interval.]" \
"multicov[Counts coverage from multiple BAMs at specific intervals.]" \
"multiinter[Identifies common intervals among multiple interval files.]" \
"nuc[Profile the nucleotide content of intervals in a FASTA file.]" \
"overlap[Computes the amount of overlap from two intervals.]" \
"pairtobed[Find pairs that overlap intervals in various ways.]" \
"pairtopair[Find pairs that overlap other pairs in various ways.]" \
"random[Generate random intervals in a genome.]" \
"reldist[Calculate the distribution of relative distances b/w two files.]" \
"sample[Sample random records from file using reservoir sampling.]" \
"shuffle[Randomly redistrubute intervals in a genome.]" \
"slop[Adjust the size of intervals.]" \
"sort[Order the intervals in a file.]" \
"subtract[Remove intervals based on overlaps b/w two files.]" \
"tag[Tag BAM alignments based on overlaps with interval files.]" \
"unionbedg[Combines coverage intervals from multiple BEDGRAPH files.]" \
"window[Find overlapping intervals within a window around an interval.]" \
ret=0
;;
*)
_files
;;
esac
return ret

View file

@ -0,0 +1,5 @@
# Samtools plugin
This plugin adds support for [samtools](http://www.htslib.org/):
* Adds autocomplete options for all samtools sub commands.

View file

@ -0,0 +1,40 @@
#compdef samtools
#autoload
local curcontext="$curcontext" state line ret=1
local -a _files
_arguments -C \
'1: :->cmds' \
'2:: :->args' && ret=0
case $state in
cmds)
_values "samtools command" \
"view[SAM<->BAM conversion]" \
"sort[sort alignment file]" \
"mpileup[multi-way pileup]" \
"depth[compute the depth]" \
"faidx[index/extract FASTA]" \
"tview[text alignment viewer]" \
"index[index alignment]" \
"idxstats[BAM index stats (r595 or later)]" \
"fixmate[fix mate information]" \
"flagstat[simple stats]" \
"calmd[recalculate MD/NM tags and '=' bases]" \
"merge[merge sorted alignments]" \
"rmdup[remove PCR duplicates]" \
"reheader[replace BAM header]" \
"cat[concatenate BAMs]" \
"bedcov[read depth per BED region]" \
"targetcut[cut fosmid regions (for fosmid pool only)]" \
"phase[phase heterozygotes]" \
"bamshuf[shuffle and group alignments by name]"
ret=0
;;
*)
_files
;;
esac
return ret