[ome-devel] ScanR importer
Rubén Muñoz
ruben.munoz at embl.de
Mon Sep 6 09:15:06 BST 2010
Hi Melissa,
On Sep 2, 2010, at 6:18 PM, Melissa Linkert wrote:
> Hi Rubén,
>
>> I have tested the current LSM Importer and it is doing fine with multi-position scans.
>
> I'm glad to hear it.
>
>> I have introduced some changes that work for us, but might be not adecuated. You will see that:
>> - The wellRows has to be set, otherwise the uniqueRows may not be a good count in these cases.
>> - "timeloop count" is used to prevent the execution of nTimepoints = list.length / (nChannels * nWells * nPos * nSlices);
>> - next variable is always increased even when an image is not found
>
> In principle, these changes look fine. They are, however, causing a few
> of the datasets that I have to throw exceptions during initialization.
My modifications in ScanrReader.java are not good enough, I do not exactly know to proceed.
I should give you information about the ScanR cDNA labels, they are only set for those wells selected for acquisition.
Labels "A1 B1 B2" are a valid label set for a 8,96 & 384 well plates.
Sorry I do not know how to guess the layout of the plate (total columns and rows) in these cases. But I am after it.
Please let me know if you have any question.
Rubén
>
>> With all this I get lots of black images during conversion to multiple file OME-TIF. That's not perfect but they can be deleted afterwards.
>
> I will have to think on how best to do it, but I think we can
> change the ScanR reader to prevent this problem.
>
>> Please permit me to upload one of these to the FTP with name "scanRskippedWells.zip", and let me know if I can help with something else.
>
> Of course you may upload as much data as you like. Once you have
> uploaded the data, just let me know - I can then work on updating your
> changes so that they work with all of the datasets that we have so far.
I recently uploaded scanRskippedWells.zip to your SFTP
>
> Regards,
> -Melissa
>
> On Thu, Sep 02, 2010 at 11:36:50AM +0200, Rubén Muñoz wrote:
>> Hi Melissa,
>>
>> I have tested the current LSM Importer and it is doing fine with multi-position scans.
>> That will be incredibly useful here to create OME.TIFs, in combination with bfconvert.
>>
>> I found some possible improvement for the ScanR importer.
>> We have always provided with sets that have all the wells, but one of our users skipped some wells with the microscope.
>>
>> That was not converting because of two things:
>> - The loops iterated only until the number of real acquired wells nWells.
>> - The tiff array was filled sequentially.
>>
>> Therefore the imageName is calculated always sequentially.
>>
>> I have introduced some changes that work for us, but might be not adecuated. You will see that:
>> - The wellRows has to be set, otherwise the uniqueRows may not be a good count in these cases.
>> - "timeloop count" is used to prevent the execution of nTimepoints = list.length / (nChannels * nWells * nPos * nSlices);
>> - next variable is always increased even when an image is not found
>>
>> With all this I get lots of black images during conversion to multiple file OME-TIF. That's not perfect but they can be deleted afterwards.
>>
>> Please permit me to upload one of these to the FTP with name "scanRskippedWells.zip", and let me know if I can help with something else.
>>
>> Best regards
>>
>> Rubén
>>
>>
>> diff bioformats/components/bio-formats/src/loci/formats/in/ScanrReader.java bioformats.ruben/components/bio-formats/src/loci/formats/in/ScanrReader.java
>> 300,301c300,306
>> < if (wellRows * wellColumns == 0) {
>> < if (wellCount <= 96) {
>> ---
>>> //if (wellRows * wellColumns == 0) {
>>> // FIXME: Three only formats are enforced
>>> if (wellCount <= 8) {
>>> wellColumns = 2;
>>> wellRows = 4;
>>> }
>>> else if (wellCount <= 96) {
>> 302a308
>>> wellRows = 8;
>> 305a312
>>> wellRows = 8;
>> 307,309c314,316
>> < wellRows = wellCount / wellColumns;
>> < if (wellRows * wellColumns < wellCount) wellRows++;
>> < }
>> ---
>>> //wellRows = wellCount / wellColumns;
>>> //if (wellRows * wellColumns < wellCount) wellRows++;
>>> //}
>> 318a326
>>>
>> 365a374
>>> else next++;
>> 522a532,534
>>> else if (key.equals("timeloop count")) {
>>> core[0].sizeT = Integer.parseInt(value) + 1;
>>> }
More information about the ome-devel
mailing list