-
Notifications
You must be signed in to change notification settings - Fork 1
Workflows
ELDEN-RING provides multiple entry points (workflows) for different use cases. This page describes each workflow and when to use it.
The primary workflow that runs the entire pulsar search pipeline.
nextflow run elden.nf -entry full -c params.configPipeline stages:
- Intake - Load filterbank files from CSV
- RFI Filter - Generate RFI diagnostic masks
- RFI Clean - Apply filtool filtering
- Stack (optional) - Combine beams by coherent DM
- Segmentation - Split into temporal segments
- Search - GPU-accelerated peasoup search
- Parse XML - Filter and parse candidates
- Fold - PulsarX candidate folding
- Classify - PICS ML classification
- Package - Create CandyJar tarballs
Input: inputfile.txt (filterbank CSV)
Output: CandyJar tarballs with ranked candidates
Processes DADA baseband files through the complete pipeline.
nextflow run elden.nf -entry run_dada_search -c params.configAdditional stages:
- DADA to FITS conversion using digifits
- Coherent dedispersion at specified DM values
Input: dada_input.csv (DADA file paths)
Output: CandyJar tarballs
Performs only RFI filtering without searching.
nextflow run elden.nf -entry run_rfi_clean -c params.configUse case: Prepare cleaned filterbanks for later processing or inspection.
Output: Cleaned filterbank files in shared_cache/
Runs search and folding on already-cleaned filterbanks.
nextflow run elden.nf -entry run_search_fold -c params.configUse case: Re-run searches with different parameters on previously cleaned data.
Generates RFI diagnostic plots without cleaning or searching.
nextflow run elden.nf -entry generate_rfi_filter -c params.configUse case: Analyze RFI characteristics before running the full pipeline.
Output: RFI diagnostic plots and filter parameters
Folds data using known pulsar ephemeris files (.par).
nextflow run elden.nf -entry fold_par \
-c params.config \
--par_file /path/to/pulsar.parUse case: Confirm known pulsars or timing observations.
Input: Filterbank files + ephemeris file Output: Folded archives and diagnostic plots
Re-folds candidates from an existing CandyJar CSV file.
nextflow run elden.nf -entry candypolice \
-c params.config \
--candyjar_csv /path/to/candidates.csvUse case: Re-process interesting candidates with different folding parameters.
Converts DADA baseband files to FITS format without further processing.
nextflow run elden.nf -entry run_digifits -c params.configUse case: Prepare FITS files for external tools or archival.
Converts DADA files, cleans, and stacks without searching.
nextflow run elden.nf -entry run_dada_clean_stack -c params.configUse case: Prepare stacked filterbanks for custom analysis.
Note: These workflows are available in the
elden_prestobranch and require the riptide container.
The Riptide FFA (Fast Folding Algorithm) search is complementary to FFT-based searches and is particularly sensitive to slow pulsars and long-period signals.
FFA search can be added to existing pipelines using the --riptide.run_ffa_search true flag:
# With full pipeline (peasoup + FFA)
nextflow run elden.nf -entry full \
-c params.config \
--riptide.run_ffa_search true
# With PRESTO pipeline
nextflow run elden.nf -entry presto_pipeline \
-c params.config \
--input_fil /path/to/file.fil \
--riptide.run_ffa_search true
# With accelsearch on time series
nextflow run elden.nf -entry run_accelsearch_on_timeseries \
-c params.config \
--riptide.run_ffa_search trueRuns complete FFA pipeline with backend dedispersion.
# Using PRESTO for dedispersion
nextflow run elden.nf -entry run_riptide \
--input_fil /path/to/file.fil \
--riptide.backend presto
# Using peasoup for time series
nextflow run elden.nf -entry run_riptide \
--input_fil /path/to/file.fil \
--riptide.backend peasoupPipeline stages:
- RFI detection (PRESTO rfifind)
- Birdie detection (zero-DM search)
- Dedispersion (prepsubband)
- FFA search (rffa)
Input: Single filterbank file Output: CSV tables (peaks, clusters, candidates), JSON files, PNG plots
Runs FFA search on pre-existing dedispersed time series (.dat/.inf files).
nextflow run elden.nf -entry run_riptide_on_timeseries \
--timeseries_input_dir /path/to/TIMESERIESUse case: Run FFA on time series generated by previous runs or external tools.
Input: Directory containing .dat and .inf files Output: CSV tables, JSON candidates, PNG plots
FFA search parameters are configured via riptide_config.yml (copied to basedir during setup_basedir):
# Key parameters in riptide_config.yml
ranges:
- name: 'medium'
ffa_search:
period_min: 0.05 # Minimum period (seconds)
period_max: 1.0 # Maximum period (seconds)
find_peaks:
smin: 7.0 # S/N threshold
candidate_filters:
dm_min: 5.0 # Minimum DM
snr_min: 8.0 # Minimum S/N
remove_harmonics: true # Flag harmonicsSee Configuration for full parameter reference.
Creates the standard project directory structure.
nextflow run elden.nf -entry setup_basedir --basedir /path/to/projectCreates:
-
params.config- Configuration template -
inputfile.txt- Input file template -
dada_input.csv- DADA input template -
known_pulsars.csv- Known pulsar list template -
riptide_config.yml- Riptide FFA configuration (elden_presto branch)
Validates input files and configuration before running.
nextflow run elden.nf -entry validate_inputs -c params.configChecks:
- Input file existence and format
- Parameter validity
- Container availability
- Directory permissions
Analyzes and optionally cleans orphaned cache files.
nextflow run elden.nf -entry cleanup_cache --basedir /path/to/projectUse case: Reclaim disk space from interrupted runs.
Shows usage information and available workflows.
nextflow run elden.nf -entry help| Scenario | Recommended Workflow |
|---|---|
| First-time processing of raw filterbank data | full |
| Processing DADA baseband files | run_dada_search |
| Inspecting data quality before processing | generate_rfi_filter |
| Re-running search with new parameters | run_search_fold |
| Processing known pulsars | fold_par |
| Re-examining specific candidates | candypolice |
| Preparing data for external tools |
run_rfi_clean or run_digifits
|
| FFA search on single filterbank |
run_riptide (elden_presto branch)
|
| FFA search on existing time series |
run_riptide_on_timeseries (elden_presto branch)
|
| Combined FFT + FFA search |
full with --riptide.run_ffa_search true
|
┌─────────────────┐
│ setup_basedir │
└────────┬────────┘
│
┌────────▼────────┐
│ validate_inputs │
└────────┬────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
┌───────▼───────┐ ┌────────▼────────┐ ┌───────▼───────┐
│ run_rfi_clean │ │ full │ │run_dada_search│
└───────┬───────┘ └────────┬────────┘ └───────┬───────┘
│ │ │
└──────────┬─────────┴─────────┬──────────┘
│ │
┌────────▼────────┐ ┌────────▼────────┐
│ run_search_fold │ │ candypolice │
└─────────────────┘ └─────────────────┘
You can chain workflows by using the outputs of one as inputs to another:
# Step 1: Clean data
nextflow run elden.nf -entry run_rfi_clean -c params.config
# Step 2: Search with different parameters
nextflow run elden.nf -entry run_search_fold \
-c params.config \
--peasoup.acc_end 100 \
--runID search_high_acc