cyto
Cyto is a Go library for cytometry data analysis.
- It provides tools to parse, process, and analyze Flow Cytometry Standard (FCS) files (FCS 3.1 standard).
π¦ Features
- Read and parse
.fcs files
- Access FCS metadata and event data
- Command-line interface for basic operations
π οΈ Installation
Prerequisites
Using Go Get
go get github.com/immunoconductor/cyto@latest
The binary will be placed in $GOBIN (default: $HOME/go/bin).
Make sure that directory is in your PATH:
export PATH="$PATH:$(go env GOPATH)/bin"
Clone Repository
git clone https://github.com/immunoconductor/cyto.git
cd cyto
go build
Import as Module
Add it to your module by importing:
import "github.com/immunoconductor/cyto/fcs"
Then run:
go mod tidy
π Usage
Command Line Interface
Convert FCS files to CSV format:
cyto fcs -i example.fcs -o example.csv
Convert FCS files to CSV format with transformation and shortnames for headings:
cyto fcs -i example.fcs -o example.csv --transform --shortnames
Output names:
cyto fcs -i example.fcs --names
Options:
-i: Input FCS file path
-o: Output CSV file path
--transform: Apply arcsinh transformation to the data
--shortnames: Use short names (concise identifiers)
--names: Output names (channel identifiers)
Go Library Example
import "github.com/immunoconductor/cyto/fcs"
func main() {
fcs, err := fcs.Read("fcs3.1.fcs", false)
if err != nil {
t.Errorf(err.Error())
}
fmt.Println(fcs.Names())
}
π Documentation
Documentation is currently under development. For now, please refer to the code comments and examples in this README.
π Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature)
- Commit your changes (
git commit -m 'Add some amazing feature')
- Push to the branch (
git push origin feature/amazing-feature)
- Open a Pull Request
π License
This project is licensed under the GPL-3 License - see the LICENSE file for details.
π Acknowledgments
- Contributors to the project
- The Flow Cytometry community