Skip to content

Commit

Permalink
Improvements in frame_sum
Browse files Browse the repository at this point in the history
  • Loading branch information
michalsta committed Dec 4, 2022
1 parent 34a685b commit eb782e9
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
7 changes: 5 additions & 2 deletions opentimspy/plotting.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ def no_idxes(ax_min, ax_max, ax_res):
'' : lambda x: x,
None : lambda x: x,
'id' : lambda x: x,
'none' : lambda x: x,
'None' : lambda x: x,
}

def mk_bitmap(frame_dct, axes=['mz', 'scan'], xax_min=0.0, xax_max=2000.0, xax_res=1.0, yax_min=0, yax_max=1000, yax_res=None, intens_cutoff=0, transform=''):
Expand Down Expand Up @@ -85,7 +87,7 @@ def resolution_offset(resolution):
return 0.5
return 0.5*resolution

def do_plot(plt, frame_dct, axes=['mz', 'scan'], xax_min=0.0, xax_max=2000.0, xax_res = 1.0, yax_min=0, yax_max=1000, yax_res=None, intens_cutoff=0, transform='', max_intens = 1000):
def do_plot(plt, frame_dct, axes=['mz', 'scan'], xax_min=0.0, xax_max=2000.0, xax_res = 1.0, yax_min=0, yax_max=1000, yax_res=None, intens_cutoff=0, transform='', max_intens = 1000, aspect='equal'):

IMG = mk_bitmap(frame_dct, axes, xax_min, xax_max, xax_res, yax_min, yax_max, yax_res, intens_cutoff, transform=transform)
max_intens = transforms[transform](max_intens)
Expand All @@ -99,11 +101,12 @@ def do_plot(plt, frame_dct, axes=['mz', 'scan'], xax_min=0.0, xax_max=2000.0, xa
xax_max+resolution_offset(xax_res),
yax_max+resolution_offset(yax_res),
yax_min-resolution_offset(yax_res)),
aspect=aspect
# interpolation='None')
)
plt.xlabel(axes[0])
plt.ylabel(axes[1])
if transform in [None, '']:
if transform in [None, '', 'none', 'None']:
plt.colorbar(label="intensity", shrink=0.4, aspect=6)
else:
plt.colorbar(label=transform + "(intensity)", shrink=0.4, aspect=6)
Expand Down
11 changes: 7 additions & 4 deletions scripts/opentims_frame_sum.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ def rangeize(in_str, conversion):
parser.add_argument("-p", "--processes", help="Number of subprocesses to use. Will use as many as there are detected cores in your system if omitted.", type=int, default=None)
parser.add_argument("--mz-range", help="Custom mz range, example: 400.0-600.0", type=partial(rangeize, conversion=float), default=Range(0, 2000))
parser.add_argument("--rt-range", help="Additionally clamp to RT range (constraining further the frames argument), example: 400.0-600.0", type=partial(rangeize, conversion=float), default=None)
parser.add_argument("--scan-range", help="Custom scan range, example: 200-300", type=partial(rangeize, conversion=int), default=None)
parser.add_argument("--scan-range", help="Custom scan range, inclusive, example: 200-300", type=partial(rangeize, conversion=int), default=None)
parser.add_argument("--frame-range", help="Custom frame range, inclusive, example: 200-300. It will further constrain the <frames> argument.", type=partial(rangeize, conversion=int), default=None)
parser.add_argument("--mz-resolution", help="Custom mz binning resolution for plot. Default: 1.0", type=float, default=1.0)
parser.add_argument("--intensity", help="Clamp all intensities below this threshold to 0 (for simple noise removal)", type=int, default=0)
parser.add_argument("--title", help="Add this title to plot", type=str, default="")
parser.add_argument("-o", "--output", help="Output file if using -s", type=Path, default=Path("plot.png"))
parser.add_argument("-t", "--transform", help="Transform the intensities before plotting", type=str, default="", choices="log10 sqrt id".split())
parser.add_argument("-t", "--transform", help="Transform the intensities before plotting", type=str, default="", choices="log10 sqrt id none None".split())



Expand Down Expand Up @@ -60,8 +61,9 @@ def rangeize(in_str, conversion):
frames.discard(0)
if not (args.rt_range is None):
frames = set(frameid for frameid in frames if args.rt_range.min <= OT.frame_properties[frameid].Time <= args.rt_range.max)
if not (args.frame_range is None):
frames = set(frameid for frameid in frames if args.frame_range.min <= frameid <= args.frame_range.max)

print(list(sorted(frames)))
frame = OT.query(list(sorted(frames)), columns='scan mz intensity'.split())
plotting.do_plot(
plt,
Expand All @@ -75,7 +77,8 @@ def rangeize(in_str, conversion):
yax_res=None,
intens_cutoff=args.intensity,
transform=args.transform,
max_intens=max_intens)
max_intens=max_intens,
aspect='auto')
plt.title(args.title)
if args.save:
plt.savefig(args.output, dpi=600, bbox_inches="tight", pad_inches=0)
Expand Down

0 comments on commit eb782e9

Please sign in to comment.