Using goroutines to process reads simultaneously.
- One goroutine reads input files and put to a data channel.
- Other goroutines take data from the data channel and process them, put results into a result channel.
Fix the bug caused by using shared memory
Update CHANGELOG
Imropve implementation and performace:
- Use Scanner for reading input files (isc.go).
- Re-design functions working with goroutines (isc.go).
- Change parameters name, struct and functions (share.go).
- Move functions ReadFASTA and ReadVCF from share.go to multigenome.go.
Format code with Go style
Use goroutines to reduce running time for SNP calling step
- Modify function CallSNP() (callsnp.go)
Fix a bug in function CallSNP() (callsnp.go)
...
Improve running time and memory usage of index loading step: initial commit.
- Adapt code to new fmi package for efficient memory usage (use uint32 instead of int).
- Make minor changes for main/index.go.
Improve user interface for both indexing and calling SNPs.
Assign default number of goroutines to number of CPU of running system.
...
Update CHANGELOG and README.
...
Improve memory usage for indexing step: initial version.
Modify function ReadVCF() to reduce memory usage.
	- Note: each line in VCF file is VERY long.
...
Fix a bug of using goroutines in function CallSNP() (callsnp.go)