diff --git a/fsl/utils/filetree/__init__.py b/fsl/utils/filetree/__init__.py
index 67af2b4be26f6fb51914126c543a2056c5377c9d..a3cd056f6743f609d502b65863ebe4e3bda15175 100644
--- a/fsl/utils/filetree/__init__.py
+++ b/fsl/utils/filetree/__init__.py
@@ -177,7 +177,7 @@ which amongst others refers to
 
 Example pipeline
 ----------------
-A very simple pipeline to run BET on every subject can start with a simply FileTree like
+A very simple pipeline to run BET on every subject can start with a FileTree like
 ::
 
     {subject}
@@ -200,6 +200,12 @@ Assuming that the input T1w's already exist, we can then simply run BET for ever
         # make_dir=True ensures that the output directory containing the "bet_output" actually exists
         bet(input=T1w_tree.get('T1w'), output=T1w_tree.get('bet_output', make_dir=True), mask=True)
 
+Useful tips
+-----------
+
+Changing directory structure
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
 If later on in our input files change, because for some subjects we added a second session, we could keep our script
 and simply update the FileTree:
 ::
@@ -246,6 +252,9 @@ even though we don't explicitly reference these in the script.
 The reason for this is that each directory and filename template must have a unique short name and
 in this case the default short names (respectively, "{subject}" and "[ses-{session}]") would not have been unique.
 
+Output "basenames"
+^^^^^^^^^^^^^^^^^^
+
 Some tools like FSL's FAST produce many output files. Rather than entering all
 of these files in our FileTree by hand you can include them all at once by including `Sub-trees`_:
 
@@ -276,6 +285,33 @@ Within the script we can generate the fast output by running
 The output files will be available as `T1w_tree.get('segment/<variable name>')`, where `<variable name>` is one
 of the short variable names defined in the
 `FAST FileTree <https://git.fmrib.ox.ac.uk/fsl/fslpy/blob/master/fsl/utils/filetree/trees/fast.tree>`_.
+
+Running a pipeline on a subset of participants/sessions/runs
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Suppose you want to run your pipeline on a subset of your data while testing. 
+You may want to do this if your data has a a hierarchy of variables (e.g. participant, session, run) as in the example below.
+
+::
+
+    sub-001
+        ses-01
+            sub-001_ses-01_run-1.feat
+            sub-001_ses-01_run-2.feat
+        ses-02
+            sub-{participant}_ses-{session}_run-{run}.feat (feat_dir)
+            ...
+    sub-002
+    sub-003
+    ...
+
+You can update the FileTree with one or more variables before calling `get_all_trees` as follows:
+
+.. code-block:: python
+
+    for t in tree.update(participant=('001', '002'), run=("1")).get_all_trees("feat_dir"):
+        my_pipeline(t)
+
 """
 
 __author__ = 'Michiel Cottaar <Michiel.Cottaar@ndcn.ox.ac.uk>'