let in_channel_to_item_stream ?(buffer_size=65536) ?filename inp =
  let x = Transform.string_to_raw ?filename () in
  let y = Transform.raw_to_item () in
  Biocaml_transform.(
    compose_results x y ~on_error:(function `left x -> x | `right x -> x)
    |> in_channel_strings_to_stream ~buffer_size inp
  )