diff --git a/pyfstat/core.py b/pyfstat/core.py
index 1ffda24527c33fad3e81e463993e0f90103557ff..4482121b3c3b09d9fd3d90182389720010d00f44 100755
--- a/pyfstat/core.py
+++ b/pyfstat/core.py
@@ -907,6 +907,18 @@ class ComputeFstat(BaseSearchClass):
         else:
             return ax
 
+    def write_atoms_to_file(self, fnamebase=''):
+        multiFatoms = getattr(self.FstatResults, 'multiFatoms', None)
+        if multiFatoms and multiFatoms[0]:
+            dopplerName = lalpulsar.PulsarDopplerParams2String ( self.PulsarDopplerParams )
+            #fnameAtoms = os.path.join(self.outdir,'Fstatatoms_%s.dat' % dopplerName)
+            fnameAtoms = fnamebase + '_Fstatatoms_%s.dat' % dopplerName
+            fo = lal.FileOpen(fnameAtoms, 'w')
+            lalpulsar.write_MultiFstatAtoms_to_fp ( fo, multiFatoms[0] )
+            del fo # instead of lal.FileClose() which is not SWIG-exported
+        else:
+            raise RuntimeError('Cannot print atoms vector to file: no FstatResults.multiFatoms, or it is None!')
+
 
 class SemiCoherentSearch(ComputeFstat):
     """ A semi-coherent search """
diff --git a/pyfstat/grid_based_searches.py b/pyfstat/grid_based_searches.py
index 20ddd0f18eaf0369f2410c37a5f05b0aa6d3649b..42b3c3e9a6e67b63815d59cae2cce9af0870017b 100644
--- a/pyfstat/grid_based_searches.py
+++ b/pyfstat/grid_based_searches.py
@@ -354,7 +354,8 @@ class TransientGridSearch(GridSearch):
                  input_arrays=False, assumeSqrtSX=None,
                  transientWindowType=None, t0Band=None, tauBand=None,
                  dt0=None, dtau=None,
-                 outputTransientFstatMap=False):
+                 outputTransientFstatMap=False,
+                 outputAtoms=False):
         """
         Parameters
         ----------
@@ -442,6 +443,8 @@ class TransientGridSearch(GridSearch):
                 thisCand += [windowRange.t0+maxidx[0]*windowRange.dt0,
                              windowRange.tau+maxidx[1]*windowRange.dtau]
             data.append(thisCand)
+            if self.outputAtoms:
+                self.search.write_atoms_to_file(os.path.splitext(self.out_file)[0])
 
         data = np.array(data, dtype=np.float)
         if return_data: