Пример #1
0
 def test_log_targets(self):
     """Test python flags"""
     IMP.add_string_flag(
         "mystringflag",
         "mydefault",
         "Some string text")
     IMP.add_int_flag("myintflag", 3, "Some int text")
     IMP.add_bool_flag("myboolflag", "Some bool text")
     IMP.add_float_flag("myfloatflag", 10, "Some float text")
     extra = IMP.setup_from_argv(["python", "--mystringflag=hi",
                                       "--log_level=VERBOSE",
                                      "--myintflag=6", "--myfloatflag=-6.0",
                                       "--myboolflag", "zero", "one"],
                                      "test things",
                                      "arg0 arg1", 2)
     print(IMP.get_string_flag("mystringflag"))
     print(IMP.get_int_flag("myintflag"))
     print(IMP.get_float_flag("myfloatflag"))
     print(IMP.get_bool_flag("myboolflag"))
     print(IMP.get_log_level())
     print(extra)
     self.assertEqual(IMP.get_string_flag("mystringflag"), "hi")
     self.assertEqual(IMP.get_int_flag("myintflag"), 6)
     self.assertEqual(IMP.get_float_flag("myfloatflag"), -6.0)
     self.assertEqual(IMP.get_bool_flag("myboolflag"), True)
     self.assertEqual(extra[0], "zero")
     self.assertEqual(extra[1], "one")
Пример #2
0
 def test_log_targets(self):
     """Test python flags"""
     IMP.add_string_flag("mystringflag", "mydefault", "Some string text")
     IMP.add_int_flag("myintflag", 3, "Some int text")
     IMP.add_bool_flag("myboolflag", "Some bool text")
     IMP.add_float_flag("myfloatflag", 10, "Some float text")
     extra = IMP.setup_from_argv([
         "python", "--mystringflag=hi", "--log_level=VERBOSE",
         "--myintflag=6", "--myfloatflag=-6.0", "--myboolflag", "zero",
         "one"
     ], "test things", "arg0 arg1", 2)
     print(IMP.get_string_flag("mystringflag"))
     print(IMP.get_int_flag("myintflag"))
     print(IMP.get_float_flag("myfloatflag"))
     print(IMP.get_bool_flag("myboolflag"))
     print(IMP.get_log_level())
     print(extra)
     self.assertEqual(IMP.get_string_flag("mystringflag"), "hi")
     self.assertEqual(IMP.get_int_flag("myintflag"), 6)
     self.assertEqual(IMP.get_float_flag("myfloatflag"), -6.0)
     self.assertEqual(IMP.get_bool_flag("myboolflag"), True)
     self.assertEqual(extra[0], "zero")
     self.assertEqual(extra[1], "one")
Пример #3
0
def main():
    IMP.add_string_flag("input_rmf", "", "The input RMF file.")
    IMP.add_string_flag("output_rmf", "",
                        "The output RMF file in which to add cylinders.")
    IMP.add_string_flag(
        "ref_output", "",
        "reference output file from which info e.g. fg nup types can be extracted"
    )
    IMP.add_float_flag("radius", 5, "The radius of the cylinder.")
    IMP.add_float_flag("site_radius", 2, "The radius of the sites.")
    IMP.add_bool_flag("recolor_fgs", "recolor fg nup chains")
    IMP.add_bool_flag("recolor_floats",
                      "recolor floating (diffusing) molecules")
    IMP.add_int_flag(
        "smooth_n_frames", 1,
        "smooth by averaging over a window of specified frames (but retaining the same number of expected frames"
    )
    IMP.add_int_flag("skip_n_frames", 1, "skip every n frames of output")
    IMP.setup_from_argv(sys.argv, "Prettify a movie")
    in_fname = IMP.get_string_flag("input_rmf")
    out_fname = IMP.get_string_flag("output_rmf")
    ref_output = IMP.get_string_flag("ref_output")
    radius = IMP.get_float_flag("radius")
    # Prepare out file with same static info as in file:
    in_fh = RMF.open_rmf_file_read_only(in_fname)
    out_fh = RMF.create_rmf_file(out_fname)
    print("creating file", out_fname)
    RMF.clone_file_info(in_fh, out_fh)
    RMF.clone_hierarchy(in_fh, out_fh)
    RMF.clone_static_frame(in_fh, out_fh)
    print("opened", in_fh.get_name())
    cf = RMF.CylinderFactory(out_fh)
    rff = RMF.ReferenceFrameFactory(out_fh)
    tf = RMF.TypedFactory(out_fh)
    bf = RMF.BallFactory(out_fh)
    cdf = RMF.ColoredFactory(out_fh)
    ipf = RMF.IntermediateParticleFactory(out_fh)
    fg_types, kap_types, inert_types = _get_fg_and_floater_types(ref_output)
    #    out_fh.set_current_frame(RMF.ALL_FRAMES)
    # Modify static information:
    if (IMP.get_bool_flag("recolor_floats")):
        _recolor(out_fh.get_root_node(), tf, cdf, kap_types, kap_color)
        _recolor(out_fh.get_root_node(), tf, cdf, inert_types, inert_color)

    _resize_sites(out_fh.get_root_node(), bf,
                  IMP.get_float_flag("site_radius"))
    cylinders = []
    for i, fg_type in enumerate(fg_types):
        color = IMP.display.get_display_color(i)
        rgb = [color.get_red(), color.get_green(), color.get_blue()]
        print("Checking fg type", fg_type)
        cylinders += _add_nodes(out_fh.get_root_node(), cf, cdf, tf, [fg_type],
                                radius, rgb)  # fg_color
        if (IMP.get_bool_flag("recolor_fgs")):
            #            print "Recoloring",fg_type, rgb
            _recolor(out_fh.get_root_node(), tf, cdf, [fg_type],
                     rgb)  # fg_color
    # Clone and modify per-frame information:
    smooth_xyz_dict = {}
    smooth_n_frames = IMP.get_int_flag("smooth_n_frames")
    skip_n_frames = IMP.get_int_flag("skip_n_frames")
    print("Skip interval:", skip_n_frames, "frames")
    for f_id, f in enumerate(in_fh.get_frames()):
        is_write = f_id % skip_n_frames == 0
        in_fh.set_current_frame(f)
        if not is_write:
            if (smooth_n_frames > 1):
                _smooth(in_fh.get_root_node(),
                        tf,
                        rff,
                        smooth_xyz_dict,
                        n=smooth_n_frames,
                        is_write=False)
            print("skipping frame", f, f_id)
            continue
        print("cloning frame", f, f_id)
        out_fh.add_frame(in_fh.get_name(f), in_fh.get_type(f))
        RMF.clone_loaded_frame(in_fh, out_fh)
        if (smooth_n_frames > 1):
            _smooth(out_fh.get_root_node(),
                    tf,
                    rff,
                    smooth_xyz_dict,
                    n=smooth_n_frames,
                    is_write=True)
        for c in cylinders:
            _set_cylinder(c, cf, rff)
            if (IMP.get_bool_flag("recolor_fgs")):
                _recolor_cylinder(c, cf, cdf)
        DEBUG = False
        if DEBUG and f_id >= 5 * skip_n_frames:
            break
Пример #4
0
def main():
    IMP.add_string_flag("input_rmf", "", "The input RMF file.")
    IMP.add_string_flag("output_rmf", "", "The output RMF file in which to add cylinders.")
    IMP.add_string_flag("ref_output", "", "reference output file from which info e.g. fg nup types can be extracted")
    IMP.add_float_flag("radius", 5, "The radius of the cylinder.")
    IMP.add_float_flag("site_radius", 2, "The radius of the sites.")
    IMP.add_bool_flag("recolor_fgs", "recolor fg nup chains")
    IMP.add_bool_flag("recolor_floats", "recolor floating (diffusing) molecules")
    IMP.add_int_flag("smooth_n_frames", 1,
                     "smooth by averaging over a window of specified frames (but retaining the same number of expected frames")
    IMP.add_int_flag("skip_n_frames", 1,
                     "skip every n frames of output")
    IMP.setup_from_argv(sys.argv, "Prettify a movie")
    in_fname= IMP.get_string_flag("input_rmf")
    out_fname= IMP.get_string_flag("output_rmf")
    ref_output = IMP.get_string_flag("ref_output")
    radius= IMP.get_float_flag("radius")
    # Prepare out file with same static info as in file:
    in_fh = RMF.open_rmf_file_read_only(in_fname)
    out_fh = RMF.create_rmf_file(out_fname)
    print("creating file", out_fname)
    RMF.clone_file_info(in_fh, out_fh)
    RMF.clone_hierarchy(in_fh, out_fh)
    RMF.clone_static_frame(in_fh, out_fh)
    print("opened", in_fh.get_name())
    cf = RMF.CylinderFactory(out_fh)
    rff = RMF.ReferenceFrameFactory(out_fh)
    tf = RMF.TypedFactory(out_fh)
    bf = RMF.BallFactory(out_fh)
    cdf = RMF.ColoredFactory(out_fh)
    ipf = RMF.IntermediateParticleFactory(out_fh)
    fg_types, kap_types, inert_types = _get_fg_and_floater_types( ref_output )
#    out_fh.set_current_frame(RMF.ALL_FRAMES)
    # Modify static information:
    if(IMP.get_bool_flag("recolor_floats")):
        _recolor(out_fh.get_root_node(), tf, cdf, kap_types, kap_color)
        _recolor(out_fh.get_root_node(), tf, cdf, inert_types, inert_color)

    _resize_sites(out_fh.get_root_node(), bf, IMP.get_float_flag("site_radius"))
    cylinders = []
    for i, fg_type in enumerate(fg_types):
        color = IMP.display.get_display_color(i)
        rgb = [color.get_red(), color.get_green(), color.get_blue()]
        print("Checking fg type", fg_type)
        cylinders += _add_nodes(out_fh.get_root_node(), cf, cdf, tf, [fg_type], radius, rgb) # fg_color
        if(IMP.get_bool_flag("recolor_fgs")):
            #            print "Recoloring",fg_type, rgb
            _recolor(out_fh.get_root_node(), tf, cdf, [fg_type], rgb) # fg_color
    # Clone and modify per-frame information:
    smooth_xyz_dict={}
    smooth_n_frames=IMP.get_int_flag("smooth_n_frames")
    skip_n_frames=IMP.get_int_flag("skip_n_frames")
    print("Skip interval:", skip_n_frames, "frames")
    for f_id, f in enumerate(in_fh.get_frames()):
        is_write= f_id % skip_n_frames == 0
        in_fh.set_current_frame(f)
        if not is_write:
            if(smooth_n_frames>1):
                _smooth(in_fh.get_root_node(),
                        tf,
                        rff,
                        smooth_xyz_dict,
                        n=smooth_n_frames,
                        is_write=False)
            print("skipping frame", f, f_id)
            continue
        print("cloning frame", f, f_id)
        out_fh.add_frame(in_fh.get_name(f), in_fh.get_type(f))
        RMF.clone_loaded_frame(in_fh, out_fh)
        if(smooth_n_frames>1):
            _smooth(out_fh.get_root_node(),
                    tf,
                    rff,
                    smooth_xyz_dict,
                    n=smooth_n_frames,
                    is_write=True)
        for c in cylinders:
            _set_cylinder(c, cf, rff)
        DEBUG=False
        if DEBUG and f_id >= 5*skip_n_frames:
            break