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.2.tar.gz (12.2 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.2-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: file_tag_parser-0.2.5.2.tar.gz
  • Upload date:
  • Size: 12.2 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.2.tar.gz
Algorithm Hash digest
SHA256 637d5df4fb8f13fbcbf48d47a221822d8533449887cebac33318ee24baa15318
MD5 bfa25c21647e6e780ed375ca14647287
BLAKE2b-256 4d2d8273e8e6df7937ce265c9c5bd8492d5d6f7f1afdfa374ebc43eef4a5318e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for file_tag_parser-0.2.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e786e6c2e4883ba3ecb51f6c1690924e469f2823e2777b3b2a9edb46279f41d0
MD5 04fe2a2c0138197e1c02432cfea0c9fa
BLAKE2b-256 6bd635ea034bc38483c42c2e8bf1a689bd642d30c9cd6a8f12505c3065aa5683

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