Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
0f24ada
update .travis
eyurtsev Oct 22, 2016
a582b1d
no op
eyurtsev Oct 22, 2016
ee7ee2a
Add module requirements to setup.py
xguse Dec 6, 2016
f16f21c
added try/except statement for invalid unicode characters in header
natl Dec 22, 2016
dc1fdee
Merge pull request #6 from xguse/master
eyurtsev Jan 25, 2017
cb64539
Merge pull request #8 from natl/master
eyurtsev Jan 25, 2017
b550fac
Refactored to support parsing from raw data
OMantere May 3, 2017
927db48
Corrected issue with in memory file buffer
OMantere May 3, 2017
e460dff
Set path always
OMantere May 3, 2017
42aca5d
Version bump
eyurtsev May 20, 2017
8dac100
Update Readme.rst
eyurtsev Jun 12, 2017
341f743
Documentation and a test
OMantere Jun 23, 2017
455d9b8
Updated file wrapper
OMantere Jun 24, 2017
b5c6715
Removed import pdb
OMantere Jun 26, 2017
a4420fb
Merge pull request #10 from OMantere/master
eyurtsev Jul 8, 2017
3cf3aa9
Add requirements.dev.txt
eyurtsev Aug 26, 2017
48051fe
update
eyurtsev Aug 26, 2017
3516571
update
eyurtsev Aug 26, 2017
a267140
UPdate
eyurtsev Aug 26, 2017
226f855
Version bump
eyurtsev Aug 26, 2017
4107c9b
Adding support for multiple data sets
xiamaz Nov 19, 2017
4a4dc2b
addinc doc-string information for data_set
xiamaz Nov 20, 2017
5f167ce
renaming and adding docstring to clarify meaning of nextdata
xiamaz Nov 20, 2017
5e5f1c8
remove commented warning for nextdata sections
xiamaz Nov 20, 2017
a9b8e7e
Update README.rst
leipzig Dec 5, 2017
458863b
lint
eyurtsev Feb 19, 2018
313f45e
lint a bit more
eyurtsev Feb 19, 2018
366bdc7
Push fix for python3 when reading FCS files with mixed data types
eyurtsev Feb 19, 2018
ee6ec07
Always output array data as a pandas object
eyurtsev Feb 19, 2018
2308ad7
Bump version and write change log
eyurtsev Feb 19, 2018
f9bec93
Update year in license
eyurtsev Feb 19, 2018
031783d
Adding encoding option setting for reading fcs files
May 19, 2018
710e8e3
Bugfix: Handle repeated TEXT delimiter (#18)
cericson Apr 25, 2019
c0f6232
To avoid 'text end' equals 'data start' (#20)
monchin Aug 14, 2019
c5060e4
Add bitmask to mask bits outside of specified data range (#22)
xiamaz May 13, 2020
9571e86
Update change log
eyurtsev May 13, 2020
5b33e1b
Bump version
eyurtsev May 13, 2020
fd69407
Bump dev requirements (#28)
eyurtsev Aug 13, 2021
2cd5af2
parse TEXT segments that don't end with a delimiter (#27)
bpteague Aug 13, 2021
5ef1590
Update (#29)
eyurtsev Aug 13, 2021
396524e
add unit-tests for dealing w/ corrupt header (#30)
eyurtsev Aug 13, 2021
e84109f
Update (#31)
eyurtsev Aug 13, 2021
199126a
tests: add tests for a file composed of multiple dtypes (#33)
eyurtsev Oct 7, 2021
111bf0b
3 byte fields (#32)
bpteague Oct 7, 2021
c9b5582
tests: Add more tests to cover data segments (#34)
eyurtsev Oct 7, 2021
2ff6f59
version bump (#35)
eyurtsev Oct 7, 2021
1fc4364
Update to using Makefile (#36)
eyurtsev Oct 7, 2021
dc82c22
Adding missing test file (#38)
eyurtsev Oct 24, 2021
c32cb06
If the FCS file uses whitespace delimiters (e.g. \x0c) avoid strippin…
gergelycsegzi Oct 24, 2021
92c3abf
update (#39)
eyurtsev Oct 24, 2021
228e8a9
Update (#40)
eyurtsev Oct 24, 2021
a146397
Make __init__.py use a relative import (#42)
bpteague Jan 13, 2022
f4de64d
Bump numpy from 1.21.1 to 1.22.0 (#44)
dependabot[bot] Jun 22, 2022
9ca4e32
Expand unit-tests for multi-datasets (#43)
eyurtsev Apr 6, 2023
387d113
Add CI (#47)
eyurtsev Apr 26, 2023
72450e7
Update manifest and readme
eyurtsev Apr 26, 2023
386364e
Add CONTRIBUTING.md
eyurtsev Apr 26, 2023
6e34024
Update github actions (#51)
eyurtsev Apr 26, 2023
6ca7e70
Release 0.2.5 (#52)
eyurtsev Apr 26, 2023
2c8502a
BD facs diva support (#46)
CaRniFeXeR Apr 26, 2023
7ae25ca
Release v0.2.6
eyurtsev Apr 26, 2023
701000a
Update link to documentation
eyurtsev Apr 26, 2023
5c7c9e0
Update release.yml (#60)
eyurtsev Aug 21, 2023
37271ca
Bump tornado from 6.3.1 to 6.3.3 (#59)
dependabot[bot] Sep 6, 2023
e3672ff
Bump lock file
eyurtsev Sep 6, 2023
55235c7
Fix unsafe loading from file buffer (#58)
felixthebeard Sep 6, 2023
7b44cae
Verison 0.2.7 bump
eyurtsev Sep 6, 2023
0022ed9
Update versions of dependencies and constraints (#65)
Oct 17, 2023
5bffb03
Bump version (#66)
eyurtsev Oct 17, 2023
3a11065
Fix release workflow (#67)
eyurtsev Oct 21, 2023
3be628e
Bump urllib3 from 2.0.6 to 2.0.7 (#68)
dependabot[bot] Oct 21, 2023
394bd5b
Update README.md (#73)
eyurtsev Jun 7, 2024
da70aaa
Fix repo URL in pyproject.toml (#76)
sir-sigurd Nov 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: release

on:
push:
branches:
- master
paths:
- 'pyproject.toml'
workflow_dispatch:

env:
POETRY_VERSION: "1.3.1"

jobs:
if_release:
# Disallow publishing from branches that aren't `master`.
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install poetry
run: pipx install poetry==$POETRY_VERSION
- name: Set up Python 3.10
uses: actions/setup-python@v4
with:
python-version: "3.10"
cache: "poetry"
- name: Build project for distribution
run: poetry build
- name: Check Version
id: check-version
run: |
echo version=$(poetry version --short) >> $GITHUB_OUTPUT
- name: Publish to PyPI
env:
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }}
run: |
poetry publish
33 changes: 33 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: test
on:
push:
branches: [master]
pull_request:

env:
POETRY_VERSION: "1.3.1"

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
steps:
- uses: actions/checkout@v3
- name: Install poetry
run: pipx install poetry==$POETRY_VERSION
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: "poetry"
- name: Install dependencies
run: poetry install --with test
- name: Run unit tests
run: |
poetry run poe pytest
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.idea
**/*.pyc
.cache
/venv
/.vscode
/build
/dist
versioneer.py
/fcsparser.egg-info
setup.cfg
50 changes: 44 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,47 @@
language: python

sudo: false


cache:
directories:
- ~/.cache/pip

env:
- TOXENV=py27
- TOXENV=py33
- TOXENV=py34
global:
- PIP_WHEEL_DIR=$HOME/.cache/pip/wheels
- PIP_FIND_LINKS=file://$HOME/.cache/pip/wheels

matrix:
include:
- python: 2.7
env: PANDAS=0.16.2
- python: 2.7
env: PANDAS=0.17.1
- python: 2.7
env: PANDAS=0.18.1
- python: 3.5
env: PANDAS=0.16.2
- python: 3.5
env: PANDAS=0.17.1
- python: 3.5
env: PANDAS=0.18.1

before_install:
- pip install -U pip
- pip install wheel


install:
- pip install tox
script:
- tox
- pip wheel numpy
- pip wheel -r requirements.test.txt

- pip install numpy
- pip install -r requirements.test.txt
- pip install pandas==$PANDAS

script:
- py.test fcsparser/ --cov fcsparser -v --cov-report term-missing

after_success:
- coveralls
5 changes: 4 additions & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,7 @@ Here is the list of the primary authors & contributors:
Aymeric Duclert
Ben Roth
Jaime X. Ramos
Vanessa Jonsson
Vanessa Jonsson
Oskari Mantere
Augustine (Gus) Dunn
Nathanael Lampe
43 changes: 41 additions & 2 deletions CHANGE_LOG
Original file line number Diff line number Diff line change
@@ -1,2 +1,41 @@
v0.1.2: 2015-12-28: Bug fix for unicode issues
v0.1.0: 2015-09-03 Repository separated from FlowCytometryTools
v0.2.3 (2021-10-07): Support for parsing more types of FCS files

PR from Brian Teague to support FCS files generated by Cytek xP5 which
involve 3-byte fields.

v0.2.2 (2021-08-13): Bug fixes

Author: Brian Teague <bpteague@gmail.com>
Date: Fri Aug 13 13:42:19 2021 -0400

parse TEXT segments that don't end with a delimiter (#27)


v0.2.1 (2020-05-13): Bug fixes

Max Zhao (2):
Adding encoding option setting for reading fcs files
Add bitmask to mask bits outside of specified data range (#22)

cericson (1):
Bugfix: Handle repeated TEXT delimiter (#18)

monchin (1):
To avoid 'text end' equals 'data start' (#20)


v0.2.0 (2018-02-19):

- python2/3 compatibility fix

*Breaking changes*

- pandas is required
- removed (output_datatype) kwarg in parse
- data is automatically converted to float32 to protect the user from making
mistakes when the data type is mixed (but the user can choose to turn
conversion off).

v0.1.2 (2015-12-28): Bug fix for unicode issues

v0.1.0 (2015-09-03): Repository separated from FlowCytometryTools
39 changes: 39 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Contributing

Thanks for your interest in contributing to the parser!

I no longer work on flow cytometry, so I will not personally develop any
new features; howevever, PRs are welcome.

Be aware that I may comandeer the PRs and refactor them a bit.

## Setting up for development

The package uses [poetry](https://python-poetry.org/) together with
[poethepoet](https://github.com/nat-n/poethepoet).

### Install dependencies

```shell

poetry install --with dev,test
```

### List tasks

```shell
poe
```

### autoformat

```shell
poe autoformat
```

### unit tests

```shell
poe pytest
```

2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2015 Eugene Yurtsev
Copyright (c) 2018 Eugene Yurtsev

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
include *.txt
global-include *.fcs
include fcsparser/_version.py
21 changes: 12 additions & 9 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
FCSParser
=================

fcsparser is a python package for reading fcs files.

.. image:: https://travis-ci.org/eyurtsev/fcsparser.svg?branch=master
:target: http://travis-ci.org/eyurtsev/fcsparser
:alt: Build Status
fcsparser is a python package for reading fcs files.

.. image:: https://github.com/eyurtsev/kor/actions/workflows/test.yml/badge.svg?branch=main&event=push
:target: https://github.com/eyurtsev/kor/actions/workflows/test.yml
:alt: Unit Tests

Install
==================

$ pip install fcsparser

or

$ conda install -c conda-forge fcsparser

Using
==================
Expand All @@ -20,15 +24,14 @@ Using
>>> path = fcsparser.test_sample_path
>>> meta, data = fcsparser.parse(path, reformat_meta=True)

A more detailed example can be found here: http://nbviewer.ipython.org/github/eyurtsev/fcsparser/blob/master/doc/fcsparser_example.ipynb

A more detailed example can be found here: https://github.com/eyurtsev/fcsparser/blob/master/doc/fcsparser_example.ipynb

Features
===================

- **python**: 2.7, 3.3, 3.4
- **python**: 3.8, 3.9, 3.10, 3.11
- **FCS Formats**: Supports FCS 2.0, 3.0, and 3.1
- **FCS Machines**: BD FACSCalibur, BD LSRFortessa, BD LSR-II, MiltenyiBiotec MACSQuant VYB
- **FCS Machines**: BD FACSCalibur, BD LSRFortessa, BD LSR-II, MiltenyiBiotec MACSQuant VYB, Sony SH800

Contributing
=================
Expand All @@ -52,7 +55,7 @@ LICENSE

The MIT License (MIT)

Copyright (c) 2013-2015 Eugene Yurtsev
Copyright (c) 2013-2023 Eugene Yurtsev

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
73 changes: 0 additions & 73 deletions fabfile.py

This file was deleted.

20 changes: 16 additions & 4 deletions fcsparser/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
import os

from fcsparser._version import version as __version__
from fcsparser.api import parse
from .api import parse
from .version import __version__

test_sample_path = os.path.join(os.path.abspath(os.path.dirname(__file__)),
'tests', 'data', 'FlowCytometers', 'HTS_BD_LSR-II', 'HTS_BD_LSR_II_Mixed_Specimen_001_D6_D06.fcs')
test_sample_path = os.path.join(
os.path.abspath(os.path.dirname(__file__)),
"tests",
"data",
"FlowCytometers",
"HTS_BD_LSR-II",
"HTS_BD_LSR_II_Mixed_Specimen_001_D6_D06.fcs",
)


__all__ = [
"parse",
"__version__",
"test_sample_path",
]
1 change: 0 additions & 1 deletion fcsparser/_version.py

This file was deleted.

Loading