├── .gitignore └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | *.directory 2 | /blib/ 3 | /.build/ 4 | _build/ 5 | cover_db/ 6 | inc/ 7 | Build 8 | !Build/ 9 | Build.bat 10 | .last_cover_stats 11 | /Makefile 12 | /Makefile.old 13 | /MANIFEST.bak 14 | /META.yml 15 | /META.json 16 | /MYMETA.* 17 | nytprof.out 18 | /pm_to_blib 19 | *.o 20 | *.bs 21 | /_eumm/ 22 | .directory 23 | *.idea 24 | 25 | 26 | # Byte-compiled / optimized / DLL files 27 | __pycache__/ 28 | *.py[cod] 29 | 30 | # C extensions 31 | *.so 32 | 33 | # Distribution / packaging 34 | .Python 35 | env/ 36 | build/ 37 | develop-eggs/ 38 | dist/ 39 | downloads/ 40 | eggs/ 41 | .eggs/ 42 | lib/ 43 | lib64/ 44 | parts/ 45 | sdist/ 46 | var/ 47 | *.egg-info/ 48 | .installed.cfg 49 | *.egg 50 | 51 | # PyInstaller 52 | # Usually these files are written by a python script from a template 53 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 54 | *.manifest 55 | *.spec 56 | 57 | # Installer logs 58 | pip-log.txt 59 | pip-delete-this-directory.txt 60 | 61 | # Unit test / coverage reports 62 | htmlcov/ 63 | .tox/ 64 | .coverage 65 | .cache 66 | nosetests.xml 67 | coverage.xml 68 | 69 | # Translations 70 | *.mo 71 | *.pot 72 | 73 | # Django stuff: 74 | *.log 75 | 76 | # Sphinx documentation 77 | docs/_build/ 78 | 79 | # PyBuilder 80 | target/ 81 | 82 | # History files 83 | .Rhistory 84 | .Rapp.history 85 | 86 | # Example code in package build process 87 | *-Ex.R 88 | 89 | # RStudio files 90 | .Rproj.user/ 91 | 92 | # produced vignettes 93 | vignettes/*.html 94 | vignettes/*.pdf 95 | 96 | # OAuth2 token, see https://github.com/hadley/httr/releases/tag/v0.3 97 | .httr-oauth 98 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Golang for bioinformatics 2 | 3 | ## About Golang 4 | 5 | [Wikipedia](https://en.wikipedia.org/wiki/Go_(programming_language)) 6 | 7 | > Open source programming language created at Google in 2007 by Robert Griesemer, 8 | Rob Pike, and Ken Thompson. 9 | It is a compiled, statically typed language in the tradition of Algol and C, 10 | with garbage collection, limited structural typing, memory safety features 11 | and CSP-style concurrent programming features added 12 | 13 | Official site: [https://golang.org/](https://golang.org/) 14 | 15 | ### Advantages 16 | 17 | - Easy to deploy, surports cross-compilation. 18 | 19 | 部署简单,跨平台编译。Go编译生成各流行操作系统的二进制文件,直接运行即可,无依赖。 20 | 21 | - High performance. 22 | 23 | 高性能。 24 | 25 | - Statically Typeed. 26 | 27 | 静态类型语言。 28 | 29 | - Concurrency of language level. 30 | 31 | 语言级别的并发支持。 32 | 33 | - Good language design, full tool-chains. 34 | 35 | 关键字少,语法简单,工具链完善。 36 | 37 | - Embedded runtime, has Garbage Collection. 38 | 39 | 内置runtime,支持GC。 40 | 41 | ### Disadvantages 42 | 43 | - Lacking of bioinformatical libraries, you may reinvent wheels. 44 | - To be added... 45 | 46 | ### Should I learn 47 | 48 | You should try if you 49 | 50 | - Want to write some high-performance tools in short time. 51 | - Want to protect your source code. 52 | - Tired of complicated installation, deployment and configuration process. 53 | - Tired of bewildering symbols of Perl, and slow speed of Python. 54 | - Tired of the long compilation time and complication of C++. 55 | 56 | You may think carefully if you 57 | 58 | - Have no programming experience. 59 | - Want to write tools with GUI. 60 | 61 | ## Try 62 | 63 | - [A Tour of Go](https://tour.golang.org/) 64 | 65 | ## Discussions 66 | 67 | Golang in Bioinformatcis 68 | 69 | - [Why are 'Cool Kids' at Github Moving to GO Language?](http://homolog.us/blogs/blog/2014/01/16/golang/) 70 | - [Learning golang for bioinformatics](https://www.reddit.com/r/golang/comments/3y1tvh/learning_golang_for_bioinformatics/) 71 | - [Question: Bioinformatics Tutorials Utilizing The Go ( Of Google Fame ) Programming Language](https://www.biostars.org/p/14964/) 72 | 73 | Golang 74 | 75 | - [What are the advantages and disadvantages of Go programming language?](http://stackoverflow.com/questions/2198529/what-are-the-advantages-and-disadvantages-of-go-programming-language) 76 | - [A Closer Look at Golang From an Architect’s Perspective](http://thenewstack.io/a-closer-look-at-golang-from-an-architects-perspective/) 77 | - [为什么要使用 Go 语言?Go 语言的优势在哪里?](https://www.zhihu.com/question/21409296) 78 | 79 | ## Books 80 | 81 | - [GoBooks](https://github.com/dariubs/GoBooks) - List of Golang books 82 | - [An Introduction to Programming in Go](https://www.golang-book.com/books/intro) 83 | 84 | ## Talks 85 | 86 | - [GoTalks](https://github.com/golang/go/wiki/GoTalks) 87 | - [Go talks](https://talks.golang.org/) 88 | 89 | ## Tools 90 | 91 | 92 | Libraries 93 | 94 | - [biogo](https://github.com/biogo/biogo) - biogo is a bioinformatics library for Go 95 | - [bio](https://github.com/shenwei356/bio) - A lightweight and high-performance bioinformatics package in Go 96 | - [irelate](https://github.com/brentp/irelate) - Streaming relation (overlap, distance, KNN) of (any number of) sorted genomic interval sets. #golang 97 | - [hts](https://github.com/biogo/hts) - biogo high throughput sequencing repository 98 | - [cfgo](https://github.com/brentp/vcfgo) - a golang library to read, write and manipulate files in the variant call format. 99 | 100 | Tools 101 | 102 | - [vcfanno](https://github.com/brentp/vcfanno) - annotate a VCF with other VCFs/BEDs/tabixed files 103 | - [SeqKit](https://github.com/shenwei356/seqkit) - A cross-platform and ultrafast toolkit for FASTA/Q file manipulation in Golang http://shenwei356.github.io/seqkit 104 | - [gsort](https://github.com/brentp/gsort) - sort genomic data 105 | - [fastcov](http://yanlilab.github.io/fastcov/) - A novel algorithm for detecting multiple covariance and clustering of biological sequences 106 | 107 | Others 108 | 109 | - [awesome-go](https://github.com/avelino/awesome-go) - A curated list of awesome Go frameworks, libraries and software http://awesome-go.com/ 110 | - [shenwei356's awesome-go](https://github.com/shenwei356/awesome/blob/master/golang.md) 111 | --------------------------------------------------------------------------------