Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
16 posts
|
Hi there,
I get a large number of ROIs for my yeast cells (>400) but some of them represent either cells that have too low fluorescence or too high and skew my analysis. So I came up with a macro that can go through the list of ROIs and delete those that have too high or too low "IntDen" value. Here is the code: num=roiManager("count"); for (i=0;i<num;i++){ one = getResult("IntDen", i); two = getResult("Mean", i); print(one); if (one > 40000){ roiManager("select",i); roiManager("Delete"); roiManager("Update"); } print(one+ " "+two); } The print() function is to check that the macro is doing the right thing and IT'S NOT!!! It deletes ROIs even if their IntDen is <40000 (i should mention that I analyse 16 bit images). What am I doing wrong? Can you help please. Thanks |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
454 posts
|
Most likely the reason is that as soon as an ROI is deleted from your ROI list the results in the results table and the selected ROI don't match up anymore as you have deleted an ROI but still increase i with 1. So if you delete ROI nr 10, nr 11 becomes nr 10 but you select nr 11 in the next round what was actually ROI nr 12 before you started the operation.
Best wishes Kees Dr Ir K.R. Straatman Senior Experimental Officer Advanced Imaging Facility Centre for Core Biotechnology Services University of Leicester http://www2.le.ac.uk/colleges/medbiopsych/facilities-and-services/cbs/lite/aif -----Original Message----- From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of giuseppe3 Sent: 12 June 2014 07:10 To: [hidden email] Subject: Delete ROIs depending on their Results Hi there, I get a large number of ROIs for my yeast cells (>400) but some of them represent either cells that have too low fluorescence or too high and skew my analysis. So I came up with a macro that can go through the list of ROIs and delete those that have too high or too low "IntDen" value. Here is the code: num=roiManager("count"); for (i=0;i<num;i++){ one = getResult("IntDen", i); two = getResult("Mean", i); print(one); if (one > 40000){ roiManager("select",i); roiManager("Delete"); roiManager("Update"); } print(one+ " "+two); } The print() function is to check that the macro is doing the right thing and IT'S NOT!!! It deletes ROIs even if their IntDen is <40000 (i should mention that I analyse 16 bit images). What am I doing wrong? Can you help please. Thanks -- View this message in context: http://imagej.1557.x6.nabble.com/Delete-ROIs-depending-on-their-Results-tp5008152.html Sent from the ImageJ mailing list archive at Nabble.com. -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
468 posts
|
On 6/12/14, 5:19 PM, Straatman, Kees (Dr.) wrote:
> Most likely the reason is that as soon as an ROI is deleted from your ROI list the results in the results table and the selected ROI don't match up anymore as you have deleted an ROI but still increase i with 1. So if you delete ROI nr 10, nr 11 becomes nr 10 but you select nr 11 in the next round what was actually ROI nr 12 before you started the operation. > > Best wishes > > Kees > > > Dr Ir K.R. Straatman > Senior Experimental Officer > Advanced Imaging Facility > Centre for Core Biotechnology Services > University of Leicester > http://www2.le.ac.uk/colleges/medbiopsych/facilities-and-services/cbs/lite/aif > > > -----Original Message----- > From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of giuseppe3 > Sent: 12 June 2014 07:10 > To: [hidden email] > Subject: Delete ROIs depending on their Results > > Hi there, > > I get a large number of ROIs for my yeast cells (>400) but some of them represent either cells that have too low fluorescence or too high and skew my analysis. > > So I came up with a macro that can go through the list of ROIs and delete those that have too high or too low "IntDen" value. Here is the code: > > num=roiManager("count"); > for (i=0;i<num;i++){ > one = getResult("IntDen", i); > two = getResult("Mean", i); > print(one); > if (one > 40000){ > roiManager("select",i); > roiManager("Delete"); > roiManager("Update"); > } > print(one+ " "+two); > } > > The print() function is to check that the macro is doing the right thing and IT'S NOT!!! > It deletes ROIs even if their IntDen is <40000 (i should mention that I analyse 16 bit images). > > What am I doing wrong? Can you help please. > > Thanks > > > ... [show rest of quote] I just ran into this same problem. The solution is to run your loop from the highest roi index down to 0. Here is a code fragment: roiCount = roiManager("count"); for (j=roiCount-1; j>=0; j--) { if (score[j] < 2) { roiManager("select", j); roiManager("Delete"); } } I hope this helps you. --aryeh -- Aryeh Weiss Faculty of Engineering Bar Ilan University Ramat Gan 52900 Israel Ph: 972-3-5317638 FAX: 972-3-7384051 -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
16 posts
|
Thanks for your responses guys!
I'll try your suggestions and see if it works! |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
16 posts
|
Thanks guys that worked beautifully!!
|
Free forum by Nabble | Disable Popup Ads | Edit this page |