nodes: 0, module; 1, function_definition; 2, function_name:_get_sv_callers; 3, parameters; 4, block; 5, identifier:items; 6, expression_statement; 7, expression_statement; 8, for_statement; 9, return_statement; 10, comment:"""
      return a sorted list of all of the structural variant callers run
      """; 11, assignment; 12, identifier:data; 13, identifier:items; 14, block; 15, call; 16, identifier:callers; 17, list; 18, for_statement; 19, attribute; 20, argument_list; 21, identifier:sv; 22, call; 23, block; 24, call; 25, identifier:sort; 26, attribute; 27, argument_list; 28, expression_statement; 29, identifier:list; 30, argument_list; 31, identifier:data; 32, identifier:get; 33, string:"sv"; 34, list; 35, call; 36, call; 37, attribute; 38, argument_list; 39, identifier:set; 40, argument_list; 41, identifier:callers; 42, identifier:append; 43, subscript; 44, list_comprehension; 45, identifier:sv; 46, string:"variantcaller"; 47, identifier:x; 48, for_in_clause; 49, if_clause; 50, identifier:x; 51, identifier:callers; 52, comparison_operator:x != "sv-ensemble"; 53, identifier:x; 54, string:"sv-ensemble"
code: def _get_sv_callers(items):
      """
      return a sorted list of all of the structural variant callers run
      """
      callers = []
      for data in items:
          for sv in data.get("sv", []):
              callers.append(sv["variantcaller"])
      return list(set([x for x in callers if x != "sv-ensemble"])).sort()