This function searches for files in a BIDS project that match a specified pattern and optional key-value criteria. It can be used to find files in both raw data and preprocessed derivatives based on filename patterns and BIDS metadata.
This function searches for files in a BIDS project that match a specified pattern and optional key-value criteria. It can search in both raw data and preprocessed derivatives (if available).
Finds files in the mock BIDS tree by matching file names and BIDS entities.
Usage
search_files(x, ...)
# S3 method for class 'bids_project'
search_files(x, regex = ".*", full_path = FALSE, strict = TRUE, ...)
# S3 method for class 'mock_bids_project'
search_files(x, regex = ".*", full_path = FALSE, strict = TRUE, ...)Arguments
- x
A
mock_bids_projectobject.- ...
Additional BIDS entities to match (e.g.,
subid = "01",task = "rest"). Values are treated as regex patterns unless they are simple strings without regex characters.- regex
A regular expression to match filenames (node names). Default
".*".- full_path
If
TRUE, return full paths (prefixed withx$path). IfFALSE, return relative paths within the BIDS structure. DefaultFALSE.- strict
If
TRUE(default), queries for a BIDS entity (e.g.,task="X") require the entity to exist on the file node and match the pattern. IfFALSE, files lacking the queried entity are not automatically excluded (though they won't match if the pattern isn't.*).
Value
A character vector of file paths matching the criteria, or NULL if no matches found.
A character vector of file paths matching the criteria, or NULL if no matches found.
A character vector of matching file paths, or NULL if no matches.
Examples
# \donttest{
# Search for event files in a BIDS dataset
tryCatch({
ds001_path <- get_example_bids_dataset("ds001")
proj <- bids_project(ds001_path, fmriprep=FALSE)
event_files <- search_files(proj, regex="events\\.tsv$")
# Search with additional criteria
sub01_files <- search_files(proj, regex="bold\\.nii\\.gz$", subid="01",
task="balloonanalogrisktask")
# Get full paths
full_paths <- search_files(proj, regex="events\\.tsv$", full_path=TRUE)
# Search with strict matching
strict_matches <- search_files(proj, regex="\\.tsv$", strict=TRUE,
task="balloonanalogrisktask")
# Clean up
unlink(ds001_path, recursive=TRUE)
}, error = function(e) {
message("Example requires internet connection: ", e$message)
})
# }
# \donttest{
# Search for event files in a BIDS dataset
tryCatch({
ds001_path <- get_example_bids_dataset("ds001")
proj <- bids_project(ds001_path, fmriprep=FALSE)
event_files <- search_files(proj, regex="events\\.tsv$")
# Search with additional criteria (note: ds001 only has one subject '01')
sub01_files <- search_files(proj, regex="bold\\.nii\\.gz$", subid="01",
task="balloonanalogrisktask")
# Get full paths
full_paths <- search_files(proj, regex="events\\.tsv$", full_path=TRUE)
# Clean up
unlink(ds001_path, recursive=TRUE)
}, error = function(e) {
message("Example requires internet connection: ", e$message)
})
# }