nodes: 0, module; 1, function_definition; 2, function_name:_solve_loci_deprecated; 3, parameters; 4, block; 5, identifier:c; 6, identifier:locilen_sorted; 7, identifier:seen_seqs; 8, identifier:filtered; 9, identifier:maxseq; 10, identifier:n_cluster; 11, expression_statement; 12, expression_statement; 13, expression_statement; 14, expression_statement; 15, expression_statement; 16, expression_statement; 17, for_statement; 18, expression_statement; 19, return_statement; 20, comment:"""internal function to reduce loci complexity
  
      The function will read the all loci in a cluster of
      sequences and will determine if all loci are part
      of the same transcriptional unit(TU) by most-vote locus
      or by exclusion of common sequence that are the
      minority of two loci.
  
      :param c: class cluster
      :param locilen_sorted: list of loci sorted by size
      :param seem_seqs: list of seen sequences
      :param filtered: final TU list
      :param maxseq: bigger locus
      "param n_cluster: integer with index of different TU"
      :return
       c: updated class cluster
       seen_seqs: updated list of sequences
       filtered: updated dict of TUs
       n_cluster: updated int with current index of TUs
      """; 21, assignment; 22, assignment; 23, augmented_assignment; 24, call; 25, assignment; 26, pattern_list; 27, identifier:locilen_sorted; 28, block; 29, assignment; 30, expression_list; 31, identifier:first_run; 32, integer:0; 33, identifier:seen_seqs; 34, call; 35, identifier:n_cluster; 36, integer:1; 37, attribute; 38, argument_list; 39, identifier:new_c; 40, call; 41, identifier:idl; 42, identifier:lenl; 43, expression_statement; 44, if_statement; 45, expression_statement; 46, expression_statement; 47, if_statement; 48, expression_statement; 49, if_statement; 50, subscript; 51, identifier:new_c; 52, identifier:c; 53, identifier:seen_seqs; 54, identifier:filtered; 55, identifier:n_cluster; 56, identifier:list; 57, argument_list; 58, identifier:logger; 59, identifier:debug; 60, binary_operator:"_solve_loci:new cluster %s" % n_cluster; 61, identifier:cluster; 62, argument_list; 63, assignment; 64, comparison_operator:first_run == 0; 65, block; 66, assignment; 67, assignment; 68, identifier:intersect; 69, block; 70, call; 71, comparison_operator:common*1.0 >= 0.6; 72, block; 73, else_clause; 74, identifier:filtered; 75, identifier:n_cluster; 76, string:"_solve_loci:new cluster %s"; 77, identifier:n_cluster; 78, identifier:n_cluster; 79, identifier:locus_seqs; 80, subscript; 81, identifier:first_run; 82, integer:0; 83, expression_statement; 84, expression_statement; 85, expression_statement; 86, identifier:intersect; 87, call; 88, identifier:common; 89, integer:0; 90, expression_statement; 91, attribute; 92, argument_list; 93, binary_operator:common*1.0; 94, float:0.6; 95, if_statement; 96, block; 97, attribute; 98, identifier:idl; 99, assignment; 100, assignment; 101, assignment; 102, identifier:list; 103, argument_list; 104, assignment; 105, identifier:logger; 106, identifier:debug; 107, binary_operator:"_sole_loci:id %s idl %s len %s max %s seen %s inter %s common %s " % (c.id, idl, lenl, maxseq, len(seen_seqs), len(intersect), common); 108, identifier:common; 109, float:1.0; 110, comparison_operator:lenl*1.0 >= 0.6*maxseq; 111, block; 112, else_clause; 113, expression_statement; 114, identifier:c; 115, identifier:loci2seq; 116, identifier:seen_seqs; 117, identifier:locus_seqs; 118, identifier:first_run; 119, integer:1; 120, identifier:first_idl; 121, identifier:idl; 122, call; 123, identifier:common; 124, binary_operator:len(intersect)*1.0/min(len(seen_seqs), len(locus_seqs)); 125, string:"_sole_loci:id %s idl %s len %s max %s seen %s inter %s common %s "; 126, tuple; 127, binary_operator:lenl*1.0; 128, binary_operator:0.6*maxseq; 129, expression_statement; 130, block; 131, assignment; 132, attribute; 133, argument_list; 134, binary_operator:len(intersect)*1.0; 135, call; 136, attribute; 137, identifier:idl; 138, identifier:lenl; 139, identifier:maxseq; 140, call; 141, call; 142, identifier:common; 143, identifier:lenl; 144, float:1.0; 145, float:0.6; 146, identifier:maxseq; 147, assignment; 148, expression_statement; 149, identifier:c; 150, call; 151, call; 152, identifier:intersection; 153, identifier:locus_seqs; 154, call; 155, float:1.0; 156, identifier:min; 157, argument_list; 158, identifier:c; 159, identifier:id; 160, identifier:len; 161, argument_list; 162, identifier:len; 163, argument_list; 164, pattern_list; 165, call; 166, assignment; 167, identifier:_remove_seqs_from_loci; 168, argument_list; 169, identifier:set; 170, argument_list; 171, identifier:len; 172, argument_list; 173, call; 174, call; 175, identifier:seen_seqs; 176, identifier:intersect; 177, identifier:c; 178, identifier:new_c; 179, identifier:seen_seqs; 180, identifier:_merge_loci_in_cluster; 181, argument_list; 182, pattern_list; 183, call; 184, identifier:c; 185, identifier:idl; 186, identifier:seen_seqs; 187, identifier:seen_seqs; 188, identifier:intersect; 189, identifier:len; 190, argument_list; 191, identifier:len; 192, argument_list; 193, identifier:c; 194, identifier:new_c; 195, identifier:idl; 196, identifier:seen_seqs; 197, identifier:c; 198, identifier:new_c; 199, identifier:seen_seqs; 200, identifier:_merge_with_first_loci; 201, argument_list; 202, identifier:seen_seqs; 203, identifier:locus_seqs; 204, identifier:c; 205, identifier:new_c; 206, identifier:first_idl; 207, identifier:idl; 208, identifier:seen_seqs
code: def _solve_loci_deprecated(c, locilen_sorted, seen_seqs, filtered, maxseq, n_cluster):
      """internal function to reduce loci complexity
  
      The function will read the all loci in a cluster of
      sequences and will determine if all loci are part
      of the same transcriptional unit(TU) by most-vote locus
      or by exclusion of common sequence that are the
      minority of two loci.
  
      :param c: class cluster
      :param locilen_sorted: list of loci sorted by size
      :param seem_seqs: list of seen sequences
      :param filtered: final TU list
      :param maxseq: bigger locus
      "param n_cluster: integer with index of different TU"
      :return
       c: updated class cluster
       seen_seqs: updated list of sequences
       filtered: updated dict of TUs
       n_cluster: updated int with current index of TUs
      """
      first_run = 0
      seen_seqs = list()
      n_cluster += 1
      logger.debug("_solve_loci:new cluster %s" % n_cluster)
      new_c = cluster(n_cluster)
      for idl, lenl in locilen_sorted:
          locus_seqs = c.loci2seq[idl]
          if first_run == 0:
              seen_seqs = locus_seqs
              first_run = 1
              first_idl = idl
          intersect = list(set(seen_seqs).intersection(locus_seqs))
          common = 0
          if intersect:
              common = len(intersect)*1.0/min(len(seen_seqs), len(locus_seqs))
          logger.debug("_sole_loci:id %s idl %s len %s max %s seen %s inter %s common %s " % (c.id, idl, lenl, maxseq, len(seen_seqs), len(intersect), common))
          if common*1.0 >= 0.6:
              if lenl*1.0 >= 0.6*maxseq:
                  c, new_c, seen_seqs = _merge_loci_in_cluster(c, new_c, idl, seen_seqs)
              else:
                  c, new_c, seen_seqs = _merge_with_first_loci(c, new_c, first_idl, idl, seen_seqs)
          else:
              c = _remove_seqs_from_loci(c, idl, seen_seqs)
      filtered[n_cluster] = new_c
      return c, seen_seqs, filtered, n_cluster