Exemplo n.º 1
0
int gt_layout_sketch(GtLayout *layout, GtCanvas *target_canvas, GtError *err)
{
  int had_err = 0;
  unsigned long i;
  GtRenderTraverseInfo rti;
  gt_assert(layout && target_canvas);

  had_err = layout_all_tracks(layout, err);
  if (!had_err) {
    rti.layout = layout;
    rti.canvas = target_canvas;
    had_err = gt_canvas_visit_layout_pre(target_canvas, layout, err);
    if (had_err) return had_err;

    if (layout->track_ordering_func == NULL) {
      had_err = gt_hashmap_foreach_in_key_order(layout->tracks, render_tracks,
                                                &rti, err);
    } else {
      had_err = gt_hashmap_foreach_ordered(layout->tracks, render_tracks,
                                           &rti, (GtCompare) track_cmp_wrapper,
                                           err);
    }
    if (had_err) return had_err;
    had_err = gt_canvas_visit_layout_post(target_canvas, layout, err);
    if (had_err) return had_err;
    for (i=0;i<gt_array_size(layout->custom_tracks);i++)
    {
      GtCustomTrack *ct = *(GtCustomTrack**) gt_array_get(layout->custom_tracks,
                                                          i);
      had_err = render_custom_tracks(NULL, ct, &rti, err);
    }
  }
  return had_err ? -1 : 0;
}
Exemplo n.º 2
0
void gth_region_factory_save(GthRegionFactory *rf, GtArray *nodes,
                             GthInput *input)
{
    GtHashmap *sequence_regions;
    GtUword i, j;
    GtStr *sequenceid;
    GT_UNUSED int had_err;
    gt_assert(rf && nodes && input);
    gt_assert(!rf->factory_was_used);
    rf->seqid_store = seqid_store_new(input);
    sequence_regions = gt_hashmap_new(GT_HASH_STRING, NULL, NULL);
    sequenceid = gt_str_new();
    for (i = 0; i < gth_input_num_of_gen_files(input); i++) {
        gth_input_load_genomic_file(input, i, false);
        for (j = 0; j < gth_input_num_of_gen_seqs(input, i); j++) {
            gt_str_reset(sequenceid);
            gth_input_save_gen_identifier(input, sequenceid, i, j);
            make_sequence_region(sequence_regions, sequenceid, rf, input, i, j);
        }
    }
    gt_str_delete(sequenceid);
    had_err = gt_hashmap_foreach_in_key_order(sequence_regions,
              save_sequence_region, nodes, NULL);
    gt_assert(!had_err); /* should not happen */
    gt_hashmap_delete(sequence_regions);
    rf->factory_was_used = true;
}
void gt_regioncov_visitor_show_coverage(GtNodeVisitor *nv)
{
  GtRegionCovVisitor *regioncov_visitor = gt_regioncov_visitor_cast(nv);
  GT_UNUSED int had_err;
  had_err = gt_hashmap_foreach_in_key_order(regioncov_visitor->region2rangelist,
                                         show_rangelist, NULL, NULL);
  gt_assert(!had_err); /* show_rangelist() is sane */
}
Exemplo n.º 4
0
void gt_toolbox_iterate(const GtToolbox *tb, GtToolboxIterator func, void *data)
{
  IterateInfo info;
  GT_UNUSED int had_err = 0;
  gt_assert(tb && func);
  info.func = func;
  info.data = data;
  had_err = gt_hashmap_foreach_in_key_order(tb->tools, toolbox_iterate, &info,
                                            NULL);
  gt_assert(!had_err); /* func() is sane */
}
Exemplo n.º 5
0
int gt_toolbox_show(GT_UNUSED const char *progname, void *toolbox,
                    GT_UNUSED GtError *err)
{
  GtToolbox *tb;
  GT_UNUSED int had_err = 0;
  gt_error_check(err);
  gt_assert(toolbox);
  tb = (GtToolbox*) toolbox;
  printf("\nTools:\n\n");
  had_err = gt_hashmap_foreach_in_key_order(tb->tools, show_tool_name, NULL,
                                            NULL);
  gt_assert(!had_err); /* show_tool_name() is sane */
  return 0;
}
Exemplo n.º 6
0
static int run_tests(GtR *gtr, GtError *err)
{
  int test_err = 0, had_err = 0;
  char* key;
  void* value;
  gt_error_check(err);
  gt_assert(gtr);

  /* The following type assumptions are made in the GenomeTools library. */
  gt_ensure(sizeof (char) == 1);
  gt_ensure(sizeof (unsigned char) == 1);
  gt_ensure(sizeof (short) == 2);
  gt_ensure(sizeof (unsigned short) == 2);
  gt_ensure(sizeof (int) == 4);
  gt_ensure(sizeof (unsigned int) == 4);
  gt_ensure(sizeof (GtWord) == 4 || sizeof (GtWord) == 8);
  gt_ensure(sizeof (GtUword) == 4 || sizeof (GtUword) == 8);
  gt_ensure(sizeof (GtUword) >= sizeof (size_t));
  gt_ensure(sizeof (GtInt64) == 8);
  gt_ensure(sizeof (GtUint64) == 8);

  /* show seed */
  printf("seed=%u\n", gtr->seed);
  gt_hashmap_unit_test(err);
  if (gtr->unit_tests) {
    if (gt_str_length(gtr->test_only) > 0) {
      key = gt_str_get(gtr->test_only);
      value = gt_hashmap_get(gtr->unit_tests, key);
      if (value) {
        had_err = gt_unit_test_run(key, value, &test_err, err);
        gt_assert(!had_err); /* cannot happen, gt_unit_test_run() is sane */
      }
      else {
        gt_error_set(err, "Test \"%s\" not found", key);
        return EXIT_FAILURE;
      }
    }
    else {
      had_err = gt_hashmap_foreach_in_key_order(gtr->unit_tests,
                                                gt_unit_test_run, &test_err,
                                                err);
      gt_assert(!had_err); /* cannot happen, gt_unit_test_run() is sane */
    }
  }
  if (test_err)
    return EXIT_FAILURE;
  return EXIT_SUCCESS;
}
Exemplo n.º 7
0
int gt_layout_sketch(GtLayout *layout, GtCanvas *target_canvas, GtError *err)
{
  int had_err = 0;
  unsigned long i;
  GtRenderTraverseInfo rti;
  gt_assert(layout && target_canvas);
  rti.layout = layout;
  rti.canvas = target_canvas;
  had_err = gt_canvas_visit_layout_pre(target_canvas, layout, err);
  if (had_err) return had_err;
  had_err = gt_hashmap_foreach_in_key_order(layout->tracks, render_tracks,
                                            &rti, err);
  if (had_err) return had_err;
  had_err = gt_canvas_visit_layout_post(target_canvas, layout, err);
  if (had_err) return had_err;
  for (i=0;i<gt_array_size(layout->custom_tracks);i++)
  {
    GtCustomTrack *ct = *(GtCustomTrack**) gt_array_get(layout->custom_tracks,
                                                        i);
    had_err = render_custom_tracks(NULL, ct, &rti, err);
  }
  return had_err;
}