go4bio
go4bio copied to clipboard
Golang for Bioinformatics
Golang for bioinformatics
About Golang
Open source programming language created at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a compiled, statically typed language in the tradition of Algol and C, with garbage collection, limited structural typing, memory safety features and CSP-style concurrent programming features added
Official site: https://golang.org/
Advantages
-
Easy to deploy, surports cross-compilation.
部署简单,跨平台编译。Go编译生成各流行操作系统的二进制文件,直接运行即可,无依赖。
-
High performance.
高性能。
-
Statically Typeed.
静态类型语言。
-
Concurrency of language level.
语言级别的并发支持。
-
Good language design, full tool-chains.
关键字少,语法简单,工具链完善。
-
Embedded runtime, has Garbage Collection.
内置runtime,支持GC。
Disadvantages
- Lacking of bioinformatical libraries, you may reinvent wheels.
- To be added...
Should I learn
You should try if you
- Want to write some high-performance tools in short time.
- Want to protect your source code.
- Tired of complicated installation, deployment and configuration process.
- Tired of bewildering symbols of Perl, and slow speed of Python.
- Tired of the long compilation time and complication of C++.
You may think carefully if you
- Have no programming experience.
- Want to write tools with GUI.
Try
Discussions
Golang in Bioinformatcis
- Why are 'Cool Kids' at Github Moving to GO Language?
- Learning golang for bioinformatics
- Question: Bioinformatics Tutorials Utilizing The Go ( Of Google Fame ) Programming Language
Golang
- What are the advantages and disadvantages of Go programming language?
- A Closer Look at Golang From an Architect’s Perspective
- 为什么要使用 Go 语言?Go 语言的优势在哪里?
Books
- GoBooks - List of Golang books
- An Introduction to Programming in Go
Talks
Tools
Libraries
- biogo - biogo is a bioinformatics library for Go
- bio - A lightweight and high-performance bioinformatics package in Go
- irelate - Streaming relation (overlap, distance, KNN) of (any number of) sorted genomic interval sets. #golang
- hts - biogo high throughput sequencing repository
- cfgo - a golang library to read, write and manipulate files in the variant call format.
Tools
- vcfanno - annotate a VCF with other VCFs/BEDs/tabixed files
- SeqKit - A cross-platform and ultrafast toolkit for FASTA/Q file manipulation in Golang http://shenwei356.github.io/seqkit
- gsort - sort genomic data
- fastcov - A novel algorithm for detecting multiple covariance and clustering of biological sequences
Others
- awesome-go - A curated list of awesome Go frameworks, libraries and software http://awesome-go.com/
- shenwei356's awesome-go