Skip to content

clindet/bioctl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Life cycle: experimental GoDoc

bioctl

bioctl is a simple command line tool to facilitate the data analysis.

Installation

# windows
wget https://github.com/clindet/bioctl/releases/download/v0.1.2/bioctl_0.1.2_Windows_64-bit.tar.gz

# osx
wget https://github.com/clindet/bioctl/releases/download/v0.1.2/bioctl_0.1.2_Darwin_64-bit.tar.gz

# linux
wget https://github.com/clindet/bioctl/releases/download/v0.1.2/bioctl_0.1.2_Linux_64-bit.tar.gz

# get latest version
go get -u github.com/clindet/bioctl

Usage

Simple parallel tasks

# concurent 2 tasks with total 8 tasks
echo 'touch /tmp/$1 /tmp/$2; sleep ${1}' > job.sh && bioctl par --cmd "sh job.sh" -t 2 --index 1,2,5-10
# concurent 4 tasks with total 8 tasks and env parse
bioctl par --cmd 'sh job.sh {{index}} {{key2}}' -t 4 --index 1,2,5-10 --env "key2:123"

# concurent 4 tasks with total 8 tasks (direct) and env parse (more log)
bioctl par --cmd 'echo {{index}} {{key2}}; sleep {{index}}' -t 4 --index 1,2,5-10 --env "key2:123" --verbose 2 --save-log

# concurent 4 tasks with total 8 tasks, env
# and not to force add {{index}} at the end of cmd
bioctl par --cmd 'echo {{key2}}; sleep {{index}}' -t 4 --index 1,2,5-10 --env "key2:123" --force-idx false --save-log

# pipe usage
echo 'sh job.sh' | bioctl par -t 4 --index 1,2,5-10 -

Convert function

  • support convert PubMed and SRA abstract from XML => JSON
# convert PubMed XML to JSON
bget api ncbi -q "Galectins control MTOR and AMPK in response to lysosomal damage to induce autophagy OR MTOR-independent autophagy induced by interrupted endoplasmic reticulum-mitochondrial Ca2+ communication: a dead end in cancer cells. OR The PARK10 gene USP24 is a negative regulator of autophagy and ULK1 protein stability OR Coordinate regulation of autophagy and the ubiquitin proteasome system by MTOR." | bioctl cvrt --xml2json pubmed -

# convert SRA XML to JSON
bget api ncbi -d 'sra' -q PRJNA527715 | bioctl cvrt --xml2json sra -

Format function

  • support to prettify JSON stream
  • support convert key-value JSON to slice JSON
# json pretty
echo '{"a": {"a": 123}, "b": {"b": 567}}' | bioctl fmt --json-pretty --indent 2 -
# key:value => slice
echo '{"a": {"a": 123}, "b": {"b": 567}}' | bioctl fmt --json-to-slice --indent 4 -

Simple file stat

# file stat
# equal to wc -l
bioctl fn -l *

bioctl fn -l * --verbose 0

Uncompress files

mkdir a
mkdir b

zip -q -r -o myfile.zip a
tar -czvf myfile.tar.gz b
rmdir a
rmdir b

bioctl -u 'myfile.zip myfile.tar.gz'

ls -l

rmdir a
rmdir b
rm myfile.zip myfile.tar.gz

Random

# UUID
bioctl rand --uuid -n 10
# string
bioctl rand --str -l 35 -n 22
# int
bioctl rand --int -l 23 -n 10

Plot related

# show all themes
bioctl plot --show-themes
# show all theme names
bioctl plot --show-themes-name
# returns color theme
bioctl plot --theme red_blue

Range

# range number sequence
bioctl range 1 100 2.5
bioctl range --start 2 --end 1000 --step 15

# char mode
bioctl range --mode char --step 5
bioctl range --mode char --step 3 --start-char s --end-char z --step 2 --ref-str qrstuvwxy12442z
bioctl range --mode char --step 3 --start-char s --end-char z --step 2 --ref-str qrstuvwxy12442z --sep ''

Stat

bioctl stat --min 1 2 3 4 5 100
bioctl stat --max 1 2 3 4 5
bioctl stat --mean 1 3 5 7 9 26 100
bioctl stat --median 1 10 3 4 100 143 123 12 22.2
bioctl stat --mfreq 2 10 2 2 10 10 11 12 14
bioctl stat --var 2 10 2 2 10
bioctl stat --sum 1 1 2 3 2 14234 12 12 1331 23 12 12
// vector1: 1-6 vector2: 10-51
bioctl stat --pearson 1 2 3 4 5 6 10 20 30 40 50 51
bioctl stat --percentile 30 1 2 3 4 5 6 7 8 9 10
bioctl stat --freq 1 2 3 2 1 1 1 1 1 1 | sort

bioctl statdf --min _examples/test.csv --at ",0"
bioctl statdf --max _examples/test.csv --at ",0"
bioctl statdf --mean _examples/test.csv --at ",0"
bioctl statdf --median _examples/test.csv --at ",0"
bioctl statdf --mfreq _examples/test.csv --at ",0"
bioctl statdf --var _examples/test.csv --at ",0"
bioctl statdf --sum _examples/test.csv --at ",0"
bioctl statdf --pearson _examples/test.csv --at ",0:1" --print
bioctl statdf --percentile 30 _examples/test.csv --at ",0"
bioctl statdf --freq _examples/test.csv --at ",0" | sort

Maintainer

License

Academic Free License version 3.0