Skip to main content

A tag-based filename parser for imaging data.

Project description

file-tag-parser

Package PyPI Latest Release

A tag-based filename parser for imaging data.

This library is designed to make parsing of arbitrary filenames attainable and searchable via a pandas-based database. Each filename can then be interpreted and/or manipulated for whatever processing and analysis is desired.

At the moment, the library is solely dedicated to the interpretation of complex filenames using a "tagging system", to streamline their grouping and loading. This will likely be expanded in the future as needed.

Below are the details for how the file tag parser works. This allows the program to easily handle filename structures from different devices and groups, by extracting "tags" from the filename that have meaning in the context of data analysis.

Filename strings and tags

Filename tags are highly useful for grouping datasets for processing and analysis. Each of the tags below will be extracted from the filename if it is contained within braces.

Tag Description
IDnum The ID of the participant that was imaged.
VidNum The acquisition number that the data corresponds to. This tag MUST be present for F(Cell) to work! All data may share modalities but not video numbers.
Year The year the data was obtained, in YYYY format.
Month The month the data was obtained, in MM format.
Day The day the data was obtained, in DD format.
Hour The hour the data was obtained, in HH format. Either 12 hour or 24 clocks are allowed.
Minute The minute the data was obtained, in MM format.
Second The second the data was obtained, in SS format.
Eye The eye the data was obtained from. There are no restrictions on use of OS/OD or left/right.
LocX The azimuthal (X) location that the data was obtained from. Usually corresponds to temporal/nasal eccentricity relative to the locus of fixation, but can be in any type of coordinate. Example: 4T
LocY The polar (Y) location that the data was obtained from. Usually corresponds to superior/inferior eccentricity relative to the locus of fixation, but can be in any type of coordinate. Example: 9S
LocZ The radial (Z) location that the data was obtained from. Usually corresponds to the focus of the device, but can be in any type of coordinate (especially if using OCT). Example: 0.15D
FOV_Width The field of view width. Usually in degrees, but can be anything.
FOV_Height The field of view height. Usually in degrees, but can be anything.
FOV_Depth The depth of field.
Modality The modality that the data was obtained from, in devices that have multiple modes/channels. Example: 760nm
QueryLoc The name of the query locations. Very useful for datasets with multiple possible coordinate sets. Can be an empty field, as well; to make this field optional, add :s? to the end. Example: {QueryLoc:s?}

Example filenames and tags

Example 1:

For an image filename with the following format:

8675309_OD_1776_850nm_AVG.tif

and tag string:

{IDnum}_{Eye}_{VidNum}_{Modality}_AVG.tif

The program would store the following tags in the pandas database:

IDNum = "8675309"
Eye = "OD"
VidNum = "1776"
Modality = "850nm"

Example 2:

For an video filename with the following format:

hellothere_OD_1861_split_det_favorite.avi

and tag string:

{IDnum}_OD_{VidNum}_{Modality}_favorite.avi

The program would store the following tags in the pandas database:

IDNum = "hellothere"
VidNum = "1861"
Modality = "split_det"

Example 3: Ignoring tags.

If your filenames have changing numbers that should be grouped together but file-tag-parser doesn't have a tag for them, they can be blank (ignored) fields. For example:

Video 1: hellothere_OD_1861_split_det_vanilla.avi Video 2: hellothere_OD_1861_confocal_chocolate.avi

and tag string:

{IDnum}_OD_{VidNum}_{Modality}_{}.avi

file-tag-parser would store the following tags for use in other analysis steps:

Video 1:

IDNum = "hellothere"
VidNum = "1861"
Modality = "split_det"

Video 2:

IDNum = "hellothere"
VidNum = "1861"
Modality = "confocal"

Example 4: Optional fields

In some cases, for example in query location files, files may take on a form that sometimes includes modifiers and other times does not. Optional fields automatically strip out common "separator" characters, (e.g. -, _, , etc.) Optional fields are delineated in a tag string as follows:

{Fieldname:s?}

So for query location files:

Query Locations 1: hellothere_OD_1861_split_det_vanilla_coords.csv

Query Locations 2: hellothere_OD_1861_split_det_vanilla_subset_coords.csv

and tag string:

{IDnum}_OD_{VidNum}_{Modality}_{}_{QueryLoc:s?}coords.csv

file-tag-parser would store the following tags in the database:

Query Locations 1:

IDNum = "hellothere"
VidNum = "1861"
Modality = "split_det"
QueryLoc = ""

Query Locations 2:

IDNum = "hellothere"
VidNum = "1861"
Modality = "split_det"
QueryLoc = "subset"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

file_tag_parser-0.2.5.3.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

file_tag_parser-0.2.5.3-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file file_tag_parser-0.2.5.3.tar.gz.

File metadata

  • Download URL: file_tag_parser-0.2.5.3.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for file_tag_parser-0.2.5.3.tar.gz
Algorithm Hash digest
SHA256 3c05109e30816f8d3ebff7eb37900596986f0dbb1082a8a582b4e1c5ed1d5ca5
MD5 4f9db125426306e962786625f3724cc9
BLAKE2b-256 aaed9a99a16ccc713f09fcd285a3ffa1926d34af266b3657972377afabbdfeb7

See more details on using hashes here.

File details

Details for the file file_tag_parser-0.2.5.3-py3-none-any.whl.

File metadata

File hashes

Hashes for file_tag_parser-0.2.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 34fee831d7293dfdb0c698efbaec95f5c21cf858592cf83c838a4854326b399d
MD5 4dc3d22a29907d548ce0db301ae82f53
BLAKE2b-256 47134f6f32c739cbb7502ff4fae8765106e91b1afa08966f7814fb4f367a3dac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page