Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fasttrackorg/fastanalysis
FastAnalysis is a python module for analysing result from FastTrack tracking software.
https://github.com/fasttrackorg/fastanalysis
Last synced: 16 days ago
JSON representation
FastAnalysis is a python module for analysing result from FastTrack tracking software.
- Host: GitHub
- URL: https://github.com/fasttrackorg/fastanalysis
- Owner: FastTrackOrg
- License: mit
- Created: 2020-06-27T13:46:32.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-06-10T15:57:12.000Z (over 2 years ago)
- Last Synced: 2024-12-06T18:46:42.358Z (about 1 month ago)
- Language: Python
- Homepage:
- Size: 2.33 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FastAnalysis
FastAnalysis is a python module for analysing result from [FastTrack](http://www.fasttrack.sh) tracking software.
## Project info
![Linux tests](https://github.com/FastTrackOrg/FastAnalysis/workflows/Linux%20tests/badge.svg) ![Macos tests](https://github.com/FastTrackOrg/FastAnalysis/workflows/Macos%20tests/badge.svg) ![Windows tests](https://github.com/FastTrackOrg/FastAnalysis/workflows/Windows%20tests/badge.svg)
## Installation
To install the module:### From PyPi
```
pip install fastanalysis
```### From source
```
git clone https://github.com/FastTrackOrg/FastAnalysis.git
cd FastAnalysis
pip install .
```
## Development
The project is under active development and do not have public API documentation, a more or less complete API documentation can be generated using Sphinx.
## Documentation
### Retrieve data from a tracking.txt file
A tracking.txt file can be loaded and several method are available to select objects and frames:
```
import fastanalysis as fa
tracking = fa.Load("tracking.txt")
fa.isObjectsInFrame(0, 100) # Check if object with id 0 is in the 100th frame
fa.isObjectsInFrame([0, 1], 100) # Check if object with id 0 and 1 is in the 100th frame
a = tracking.getObjectsInFrames(0, 100) # Select data of the object with id 0 in the 100th frame
b = tracking.getObjectsInFrames([0,1], [100,101]) # Select data of the object with id 0 and 1 in the 100th and 101th frames
c = tracking.getObjects(0) # Select data of the object with id 0 for all the frames
d = tracking.getObjects([0,1]) # Select data of the object with id 0 and 1 for all the frames
e = tracking.getFrame(100) # Select data for all the objects in the 100th frame
f = tracking.getFrame([100,101]) # Select data for all the objects in the 100th and 101th frames
```
### Export data
```
import fastanalysis as fa
tracking = fa.Load("tracking.txt")
keys = fa.keys() # List export features
fa.export("output.xlsx", delimiter='\t', keys=["xHead", "yHead", "imageNumber", "id"], ids=None, indexes=None, format="excel") # Export a list of features for all the frames and all the objects in an excel file.
fa.export("output.txt", delimiter='\t', keys=None, ids=None, indexes=None, format="excel") # Export all thefeatures for all the frames and all the objects in an csv file.
```
Two format are supported: csv and excel.
### Plot metrics
```
import fastanalysis as fa
import matplotlib.pyplot as plt
tracking = fa.Load("tracking.txt")
plotObj = fa.Plot(tracking)
plotObj.velocityDistribution(ids=[0, 1], key="Body", pooled=False, subplots=True) # Plot velocity distribution for objects 1 and 0 in 2 subplots
plotObj.velocityDistribution(ids=[0, 1], key="Body", pooled=False, subplots=False) # Plot velocity distribution for objects 1 and 0 in 1 plot
plotObj.velocityDistribution(ids=[0, 1], key="Body", pooled=True) # Plot velocity distribution for objects 1 and 0 pooled in 1 distribution
```