I recently watched some nice video tutorials about boosting Python with cython, where the Python syntax is slightly changed and the code is then compiled to run in C. Maybe we could make use of that to speed up the read and filter process when the particle objects are created.
Something to think about...