diff --git a/phys2bids/phys2bids.py b/phys2bids/phys2bids.py
index 1860e84..006ce80 100644
--- a/phys2bids/phys2bids.py
+++ b/phys2bids/phys2bids.py
@@ -377,6 +377,13 @@ def phys2bids(filename, info=False, indir='.', outdir='.', heur_file=None,
                 phys_out[key].timeseries.insert(0, np.linspace(phys_in[run].timeseries[0][0],
                                                 phys_in[run].timeseries[0][-1],
                                                 num=phys_out[key].timeseries[0].shape[0]))
+            # Add trigger channel in the proper frequency.
+            if uniq_freq != phys_in[run].freq[chtrig]:
+                phys_out[key].ch_name.insert(1, phys_in[run].ch_name[chtrig])
+                phys_out[key].units.insert(1, phys_in[run].units[chtrig])
+                phys_out[key].timeseries.insert(1, np.interp(phys_out[key].timeseries[0],
+                                                             phys_in[run].timeseries[0],
+                                                             phys_in[run].timeseries[chtrig]))
             phys_out[key] = BlueprintOutput.init_from_blueprint(phys_out[key])
 
         # Preparing output parameters: name and folder.

Add (resampled) trigger channel in every multifreq output
<!--- Provide a general summary of the issue in the Title above -->
This comes from #219. It would be a good idea (not mandatory, but good) to add a refactored trigger channel in each output in case of multiple outputs due to multifrequency files.
At the moment we're not doing it!

## Context / Motivation
<!--- Why is this change important to you? How would you use it? -->
<!--- How can it benefit other users? -->
It would help improving (visual) comparison between traces and fMRI trigger!

## Possible Implementation
<!--- Not obligatory, but suggest an idea for implementing addition or change -->
<!--- If you already have worked on the idea, please share a link to the branch in your forked project -->
- [ ] Create a resampled trigger channel for each (unique) frequency encountered in `BlueprintInput.freq` list (e.g. with `set(BlueprintInput.freq)` or `np.unique(BlueprintInput.freq)`) and append it to the channel list. This could be a class method.
diff --git a/phys2bids/tests/test_integration.py b/phys2bids/tests/test_integration.py
index 07bd323..6afc152 100644
--- a/phys2bids/tests/test_integration.py
+++ b/phys2bids/tests/test_integration.py
@@ -45,7 +45,7 @@ def test_integration_acq(skip_integration, samefreq_full_acq_file):
         assert isfile(join(test_path, 'Test_belt_pulse_samefreq' + suffix))
 
     # Check files in extra are generated
-    for suffix in ['.log']:  #, '_trigger_time.png']:
+    for suffix in ['.log']:
         assert isfile(join(conversion_path, 'Test_belt_pulse_samefreq' + suffix))
 
     # Read log file (note that this file is not the logger file)
@@ -168,7 +168,7 @@ def test_integration_heuristic(skip_integration, multifreq_lab_file):
     # Compares values in json file with ground truth
     assert math.isclose(json_data['SamplingFrequency'], 40.0,)
     assert math.isclose(json_data['StartTime'], 3.6960,)
-    assert json_data['Columns'] == ['time', 'O2']
+    assert json_data['Columns'] == ['time', 'Trigger', 'O2']
 
     # ##### Checks for 100 Hz files
     # Read log file (note that this file is not the logger file)
@@ -195,7 +195,7 @@ def test_integration_heuristic(skip_integration, multifreq_lab_file):
     # Compares values in json file with ground truth
     assert math.isclose(json_data['SamplingFrequency'], 100.0,)
     assert math.isclose(json_data['StartTime'], 3.6960,)
-    assert json_data['Columns'] == ['time', 'CO2']
+    assert json_data['Columns'] == ['time', 'Trigger', 'CO2']
 
     # Remove generated files
     shutil.rmtree(test_path_output)

pip install -e .[interfaces]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-mock
apt-get update apt-get install -y gcc make
3.7
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
bioread==3.0.1
certifi @ file:///croot/certifi_1671487769961/work/certifi
coverage==7.2.7
cycler==0.11.0
docopt==0.6.2
exceptiongroup==1.2.2
fonttools==4.38.0
importlib-metadata==6.7.0
iniconfig==2.0.0
kiwisolver==1.4.5
matplotlib==3.5.3
numpy==1.21.6
packaging==24.0
-e git+https://github.com/physiopy/phys2bids.git@0aa121f8f6a2beb032739bbe8a0793d155d8ac9e#egg=phys2bids
Pillow==9.5.0
pluggy==1.2.0
pyparsing==3.1.4
pytest==7.4.4
pytest-cov==4.1.0
pytest-mock==3.11.1
python-dateutil==2.9.0.post0
PyYAML==6.0.1
six==1.17.0
tomli==2.0.1
typing_extensions==4.7.1
zipp==3.15.0

name: phys2bids
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - bioread==3.0.1
      - coverage==7.2.7
      - cycler==0.11.0
      - docopt==0.6.2
      - exceptiongroup==1.2.2
      - fonttools==4.38.0
      - importlib-metadata==6.7.0
      - iniconfig==2.0.0
      - kiwisolver==1.4.5
      - matplotlib==3.5.3
      - numpy==1.21.6
      - packaging==24.0
      - pillow==9.5.0
      - pluggy==1.2.0
      - pyparsing==3.1.4
      - pytest==7.4.4
      - pytest-cov==4.1.0
      - pytest-mock==3.11.1
      - python-dateutil==2.9.0.post0
      - pyyaml==6.0.1
      - six==1.17.0
      - tomli==2.0.1
      - typing-extensions==4.7.1
      - zipp==3.15.0
prefix: /opt/conda/envs/phys2bids

phys2bids/tests/test_integration.py::test_integration_heuristic
phys2bids/tests/test_integration.py::test_integration_acq phys2bids/tests/test_integration.py::test_integration_multirun
phys2bids/phys2bids.py
phys2bids/phys2bids.py