[basedb-devel] MageTab export plugin

2011-11-22 Thread Pawel Sztromwasser
Hi Nicklas,

I guess the MageTab export plugin is ready for submission. I followed 
instructions for plugin developers 
(http://baseplugins.thep.lu.se/wiki/PluginSubmitReq), so all the 
documentation bits should be in place. How could I send you the bundle? 
Would you provide a repository dir to park the source?

The plugin works with BASE2, but we'll start looking at BASE3 soon, and 
as part of preparations for migration I will port the plugin to BASE3.

Pawel

--
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel


Re: [basedb-devel] Mage-Tab export plugin

2011-09-15 Thread Pawel Sztromwasser

Great. Yes, I am planning to implement that as well.

Pawel

On 12/09/11 11:48, Gildas Le Corguillé wrote:

Bonjour,

This is good news if you can develope this plugin and I have enought 
datas on Base2 to test it :P


My contribution on the former plugin Tab2Mage was to add a feature to 
manage pooling of samples (or extracts) and the possibility to have 
several Files[raw] per RawBioAssay (ex : one cy3 and one cy5) 
because we used nimblegen multi-color arrays.

Are you plan to manage that feature ?

Gildas


Le 01/09/2011 14:43, Pawel Sztromwasser a écrit :

Hallo,

I haven't been to the milestones page for a while, and I didn't know 
that work on BASE 3 was in such an advanced state. Great job guys! 
Support for sequencing data is excellent news for us.
Anyway, before it is released and before we are ready to migrate, we 
will certainly have experiments to export. We could keep using the 
Tab2Mage exporter this year, and the conversion script later, but I 
think I'd prefer to start working on the plugin now when we have 
time, develop against BASE 2 where we would have immediate use for 
it, and port to BASE 3 later after we migrate. It will not be a big 
change I hope.


Gildas, I have actually started developing the plugin. If you're 
willing to contribute, I could send you the jar/code when it is 
more-or-less ready for testing, so we could debug it on our sites 
simultanously and make it bullet-proof;)


Helen, IMO it is better with one format than two, so I think removing 
support for Tab2Mage (and providing conversion tools) is a move 
forward. One thing I was wondering, if there are any plans for an 
XML-based format for description of MA experiments? MAGE-ML is a bit 
too complex I guess, but an XML Schema equivalent to the current 
MageTab format would be favored by programmers and for programmatic 
access, in comparison with the tab-delimited files.


Best wishes,
Pawel

Nicklas Nordborg wrote:

On 2011-09-01 09:15, Gildas Le Corguillé wrote:

Hello,

Our group still interesting in this kind of exporter. It was the main
reason why we decided to use Base. We are in a public lab so we 
like to

share :P
Last year, I repaired the existing Tab2Mage-exporter module for Base.
So if you need help, I can spend some time on that. But I'm not
necessarily a good developer ^^'


I think that a Mage-Tab exporter has to be developed by the BASE 
community. We can provide space and user accounts on our 
subversion+trac (baseplugins.thep.lu.se) if someone is interested to 
start on this. Unfortunately we have no time to help with the actual 
development. Of course, we'll try to answer questions and provide 
the information that is necessary.


As a starting point, we try to collect and document the major API 
changes in http://base.thep.lu.se/ticket/1603


My guess is that #1153 and #1597 are the major changes that cause 
problems for the current Tab2Mage exporter.


/Nicklas


-- 


Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free Love Thy Logs t-shirt when you

download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel




--
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better
price-free! And you'll get a free Love Thy Logs t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev


___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel



--
Doing More with Less: The Next Generation Virtual Desktop
What are the key obstacles that have prevented many mid-market businesses
from deploying virtual desktops?   How do next-generation virtual desktops
provide companies an easier-to-deploy, easier-to-manage and more affordable
virtual desktop model.http://www.accelacomm.com/jaw/sfnl/114/51426474/


___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel


--
Doing More with Less: The Next Generation Virtual Desktop 
What are the key obstacles that have prevented many mid-market businesses
from deploying virtual desktops?   How do next-generation virtual desktops
provide companies an easier-to-deploy, easier-to-manage and more affordable
virtual desktop model.http

Re: [basedb-devel] Mage-Tab export plugin

2011-09-01 Thread Pawel Sztromwasser

Hallo,

I haven't been to the milestones page for a while, and I didn't know 
that work on BASE 3 was in such an advanced state. Great job guys! 
Support for sequencing data is excellent news for us.
Anyway, before it is released and before we are ready to migrate, we 
will certainly have experiments to export. We could keep using the 
Tab2Mage exporter this year, and the conversion script later, but I 
think I'd prefer to start working on the plugin now when we have time, 
develop against BASE 2 where we would have immediate use for it, and 
port to BASE 3 later after we migrate. It will not be a big change I hope.


Gildas, I have actually started developing the plugin. If you're willing 
to contribute, I could send you the jar/code when it is more-or-less 
ready for testing, so we could debug it on our sites simultanously and 
make it bullet-proof;)


Helen, IMO it is better with one format than two, so I think removing 
support for Tab2Mage (and providing conversion tools) is a move forward. 
One thing I was wondering, if there are any plans for an XML-based 
format for description of MA experiments? MAGE-ML is a bit too complex I 
guess, but an XML Schema equivalent to the current MageTab format would 
be favored by programmers and for programmatic access, in comparison 
with the tab-delimited files.


Best wishes,
Pawel

Nicklas Nordborg wrote:

On 2011-09-01 09:15, Gildas Le Corguillé wrote:
  

Hello,

Our group still interesting in this kind of exporter. It was the main
reason why we decided to use Base. We are in a public lab so we like to
share :P
Last year, I repaired the existing Tab2Mage-exporter module for Base.
So if you need help, I can spend some time on that. But I'm not
necessarily a good developer ^^'



I think that a Mage-Tab exporter has to be developed by the BASE 
community. We can provide space and user accounts on our subversion+trac 
(baseplugins.thep.lu.se) if someone is interested to start on this. 
Unfortunately we have no time to help with the actual development. Of 
course, we'll try to answer questions and provide the information that 
is necessary.


As a starting point, we try to collect and document the major API 
changes in http://base.thep.lu.se/ticket/1603


My guess is that #1153 and #1597 are the major changes that cause 
problems for the current Tab2Mage exporter.


/Nicklas


--
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free Love Thy Logs t-shirt when you

download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel
  


attachment: pawel_sztromwasser.vcf--
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free Love Thy Logs t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel


[basedb-devel] Mage-Tab export plugin

2011-08-31 Thread Pawel Sztromwasser

Hello BASE developers,

By the end of the year ArrayExpress is going to remove a possibility of 
importing experiments using the Tab2Mage format. The only supported 
format will be Mage-Tab. We have been extensively using Tab2Mage and the 
BASE plugin that exports experiments in this format. I was wondering if 
anyone else is developing or planning to develop a plugin that would 
support Mage-Tab?


Regards,
Pawel Sztromwasser
attachment: pawel_sztromwasser.vcf--
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free Love Thy Logs t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel


[basedb-devel] Truncated files

2011-08-17 Thread Pawel Sztromwasser

In BASE it was a Tomcat problem. Hope it helps:
http://www.mail-archive.com/basedb-users@lists.sourceforge.net/msg01838.html

Pawel
attachment: pawel_sztromwasser.vcf--
Get a FREE DOWNLOAD! and learn more about uberSVN rich system, 
user administration capabilities and model configuration. Take 
the hassle out of deploying and managing Subversion and the 
tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel


Re: [basedb-devel] Programmatic login using a token

2011-08-01 Thread Pawel Sztromwasser

Hi Nicklas,

Thanks for the suggestions. Maybe I am missing something but wouldn't it 
be possible to send the username and password to the STS as part of the 
BASE login? Or, use an empty password string?


I should have explained the use case better. It does not relate to the 
manual login to BASE using the web interface where one types in a 
username and password. For this we have already implemented and set up 
an authentication plugin that sends the username and password typed in 
by a user to the STS service for verification (just like you suggest). 
Now I am planning to enable programmatic access to BASE (via Web 
services) from another system that shares identity management (STS) with 
BASE. The idea is that the user that is logged in to any of these, has 
obtained a token and is able to access his/her resources in the other 
system without any further authentication, using only the token (single 
sign-on). In this federated authentication system one application will 
be able to automatically integrate resources available to a user in 
several distinct systems.


Since the common authentication mechanism will be based on tokens, I 
don't expect an application to provide a username/password pair anytime 
when it needs to access resources hosted in a different system. 
Currently all the login methods in BASE are username/password oriented, 
but with the minor change I suggest, it could be easily extended to 
cover token-like objects as well. At least in programmatic access 
scenarios, but I can't see a need for any other.


I am not sure if I got your suggestion with empty password right, so 
correct me if I am wrong. The token is not a simple string (it is 
actually a little XML document), and passing it as a username (with 
empty password) to the authenticator plugin would not be a nice solution.


In any case, I am not sure that supplying a TokenAuthenticator object as 
a parameter to the login method is a good idea, since it would be very 
easy to to provide an implementation that just accept anything.



I was thinking similarly, but how does it differ from supplying a login 
method in an authenticator plugin? That method could accept anything as 
well. Access to SessionControl.login(Token, TokenAuthenticator) 
operation in only from the code deployed together with BASE server (in 
my case in implementation of Web services deployed within BASE), so an 
environment that a BASE administrator should have full control over. The 
same as external authentication plugins.


Pawel

Nicklas Nordborg wrote:

On 2011-07-26 22:47, Pawel Sztromwasser wrote:
  

Hello BASE team!

Extending a little on our recent developments regarding external
authentication in BASE [1], I am working now on a Web service interface
to BASE that will authenticate users based on secure tokens issued by a
trusted STS. The STS authenticates users with username and password, and
issues a crypted token confirming their credentials. The token is valid
for a limited time and can be used for authentication in applications
and services that trust the STS.

The STS token does not contain a password, only a user id, so with
current implementation of SessionControl I was unable to log in. I added
one method to the SessionControl class (see attached diff), included a
TokenAuthenticator interface (attached), and everything worked nice. The
extra operation allows to log in using a single token object and a
validator that can verify the token. The operation contains substantial
parts of SessionControl.verifyUserExternal(), which can be extracted to
a separate method. The TokenAuthenticator interface and original
Authenticator interface are also quite similar, so they could maybe
share a common ancestor.

I know that the change is in the heart of BASE, but it is little and
would provide additional way of programmatic interaction with BASE. If
they pass the tests, could you consider including the changes to the
BASE codebase?




Thanks for the suggestions. Maybe I am missing something but wouldn't it 
be possible to send the username and password to the STS as part of the 
BASE login? Or, use an empty password string?


In any case, I am not sure that supplying a TokenAuthenticator object as 
a parameter to the login method is a good idea, since it would be very 
easy to to provide an implementation that just accept anything.


There are also some plans to change the authentication as part of BASE 3 
development (http://base.thep.lu.se/ticket/1599). There is not much 
information since we haven't been thinking very much about this and at 
the moment I am not sure if we will have time to do it before releasing 
BASE 3. It depends a bit on when some of the other BASE 3 features are 
needed in production. I'll keep a link to this thread so that we don't 
forget it.


/Nicklas

--
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask

Re: [basedb-devel] Programmatic login using a token

2011-08-01 Thread Pawel Sztromwasser


See my short replies inline.

Nicklas Nordborg wrote:

On 2011-08-01 10:51, Pawel Sztromwasser wrote:
  

Hi Nicklas,



Thanks for the suggestions. Maybe I am missing something but wouldn't
it be possible to send the username and password to the STS as part of
the BASE login? Or, use an empty password string?
  

I should have explained the use case better. It does not relate to the
manual login to BASE using the web interface where one types in a
username and password. For this we have already implemented and set up
an authentication plugin that sends the username and password typed in
by a user to the STS service for verification (just like you suggest).
Now I am planning to enable programmatic access to BASE (via Web
services) from another system that shares identity management (STS) with
BASE. The idea is that the user that is logged in to any of these, has
obtained a token and is able to access his/her resources in the other
system without any further authentication, using only the token (single
sign-on). In this federated authentication system one application will
be able to automatically integrate resources available to a user in
several distinct systems.

Since the common authentication mechanism will be based on tokens, I
don't expect an application to provide a username/password pair anytime
when it needs to access resources hosted in a different system.
Currently all the login methods in BASE are username/password oriented,
but with the minor change I suggest, it could be easily extended to
cover token-like objects as well. At least in programmatic access
scenarios, but I can't see a need for any other.



Ok, I understand that this is a bit different than the usual login 
procedure. But I think there is also already another possible way to 
solve this. It could be done in a similar way that we are doing with the 
job agents. They use a master user account with a known 
username+password that is used to login to BASE. The account should have 
the Act as another user permissions assigned to a role (eg. just as 
the Job agent role that is pre-installed in BASE).


Then the SessionControl.impersonateLogin() can be used to login as any 
user without having to provide a password. You'll have to find the 
internal id of the user but that is more or less the same thing that is 
done in the diff for SessionControl that you posted in the original post.
  

Ahhh, clever. And no change to BASE required. It looks promising, I will give 
it a try.

  

In any case, I am not sure that supplying a TokenAuthenticator object
as a parameter to the login method is a good idea, since it would be
very easy to to provide an implementation that just accept anything.
  

I was thinking similarly, but how does it differ from supplying a login
method in an authenticator plugin? That method could accept anything as
well. Access to SessionControl.login(Token, TokenAuthenticator)
operation in only from the code deployed together with BASE server (in
my case in implementation of Web services deployed within BASE), so an
environment that a BASE administrator should have full control over. The
same as external authentication plugins.



The difference is that the administrator sets up the authenticator to 
use in the configuration files and it is not possible for the calling 
code to change this. Ok, some mean code could probably get around 
this, so it is good to have control over the server environment. Despite 
this, I think the public BASE api shouldn't provide this kind of 
flexibility. I would prefer a solution where the administrator can setup 
exactly how the authentication should happen.
  

Fair enough.

/Nicklas

--
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel
  


attachment: pawel_sztromwasser.vcf--
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel


Re: [basedb-devel] External authentication

2011-02-01 Thread Pawel Sztromwasser
Sorry, just noticed that you mentioned the 
...basedb.util.JarClassLoader, not a regular Java class loader as I 
initially  thought.

On 01/02/11 13:17, Pawel Sztromwasser wrote:
 Thanks for a quick reply. I really wanted to avoid selecting jars and so
 on since BASE has over 50 of them, and maven downloads over 60 for my
 plugin. Lots of manual work that needs to be done every time BASE is
 upgraded.

 I will try to change the Application class as you suggested. I have
 already located the place which needs a fix, but was unsure of playing
 so close to the core of the application. What about using the
 net.sf.basedb.util.JarClassLoader, as regular plugins do?

 I will post a patch when ready and tested.
 Cheers,
 Pawel

 On 01/02/11 13:03, Nicklas Nordborg wrote:
 On 2011-02-01 11:29, Pawel Sztromwasser wrote:s
 Hi,

 I am working on an external authentication plugin for BASE that will use
 an STS Web service to authenticate users. The plugin uses a bunch of
 external jars for WS communication, but with different versions then
 BASE. I was hoping for the same classloading mechanism as for regular
 plugins (separate classloaders), but it looks like external
 authentication plugins uses the default classloader of the webapp. Could
 this be changed? How else could I install my plugin, without messing
 with BASE's jars?
 That part of BASE is not very pluginified. I am not aware of any real
 case that uses external authentication so it would be very interesting
 to see if you succeed.

 It's quite common that there are dependencies to different versions of
 3rd-party JAR files, but it usually works if the latest one is used. But
 of course, it may not work if the API has changed in an incompatible way.

 If you can't get it to work by clever selection of JAR files, then you
 might have to modify the Application.getAuthenticator() method so that
 it uses a different class loader. It shouldn't be too difficult. It
 could for example pick up a JAR path from the base.config file and then
 use the net.sf.basedb.util.JarClassLoader.getInstance(path) to create a
 class loader. Dependencies need to be listed in the MANIFEST.MF in the
 same way as for plug-ins. There is a short notice about this at
 http://base.thep.lu.se/chrome/site/latest/html/developerdoc/plugin_developer/plugin_developer.organize.html
 and
 http://base.thep.lu.se/chrome/site/latest/api/net/sf/basedb/util/JarClassLoader.html

 As always, patches are welcome :)

 /Nicklas

 --
 Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
 Finally, a world-class log management solution at an even better price-free!
 Download using promo code Free_Logger_4_Dev2Dev. Offer expires
 February 28th, so secure your free ArcSight Logger TODAY!
 http://p.sf.net/sfu/arcsight-sfd2d
 ___
 basedb-devel mailing list
 basedb-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/basedb-devel

 --
 Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
 Finally, a world-class log management solution at an even better price-free!
 Download using promo code Free_Logger_4_Dev2Dev. Offer expires
 February 28th, so secure your free ArcSight Logger TODAY!
 http://p.sf.net/sfu/arcsight-sfd2d
 ___
 basedb-devel mailing list
 basedb-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/basedb-devel


--
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel


[basedb-devel] External id for protocol

2009-05-11 Thread Pawel Sztromwasser
Hello,

We have been exporting some experiments lately to ArrayExpress and 
noticed that protocols need to have their own ArrayExpress IDs. 
Currently we have to add them manually to export file generated in BASE 
(Tab2MageExporter), but it would be fairly easy to have it done 
automatically by the plugin. If there only was a place to store it in 
BASE2...

Would it be possible to have it as externalId (like BioMaterials have)? 
Or maybe it is better to enable annotations for protocols? This way it 
would be possible to add even more programaticaly accessible 
information to protocols. How do you think: which of these two is easier 
to implement? And which one makes more sense?

If any of these is straight-forward enough, I will probably go for a 
hack like additional column in Protocols table, using description field 
or similar, but I don't really like hack solutions. Thus, if you are 
also interested in implementing such a functionality, I am willing to 
contribute some code/time.

All the best
Pawel

--
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel


Re: [basedb-devel] Batch scan importer

2009-03-12 Thread Pawel Sztromwasser
I am not sure, I didn't consider image as a 'real type' of item. More 
like attribute of a scan. Maybe because there is no Image submenu:)

I agree that looking for already created images with specific file is 
much better idea, then what I have implemented. Allowing users to 
specify image format, description and preview flag is great, but I would 
prefer to have it in the scan spreadsheet as additional columns (image 
property columns, as with file in rba import). Mainly because image has 
no life on its own and also because there is actually no image list 
where one could run batch import. OK, there is a list of images for 
every scan, but image imports for each and every scan would be laborious.

What do you think of it?

Pawel


Nicklas Nordborg wrote:
 Thanks for the code. I am not sure that I like that it creates a new image 
 every time.
 I think it should at least check if there is already an image with the 
 specified file.
 
 Is there a need for setting the other image properties (preview, format, 
 description)?
 If so, it might be better to have a specific importer for images.
 
 /Nicklas
 
 Pawel Sztromwasser wrote:
 Hello BASE team,

 We really enjoy the set of batch uploading plugins and were doing a
 little training for our users in Bergen. Everything seemed great except
 that they couldn't link freshly created scans with image files. I read
 in the example spreadsheet that it is not supported and was very
 surprised since similar 'file attaching' works very nice for raw
 bioassays. I sat down, did some copy pasting from RawBioAssayImporter
 and after little edits it worked (source attached).

 I hope that you can make some use of it.

 All the best,
 Pawel


 

 --
 Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
 powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
 easily build your RIAs with Flex Builder, the Eclipse(TM)based development
 software that enables intelligent coding and step-through debugging.
 Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com


 

 ___
 basedb-devel mailing list
 basedb-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/basedb-devel
 
 
 --
 Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
 powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
 easily build your RIAs with Flex Builder, the Eclipse(TM)based development
 software that enables intelligent coding and step-through debugging.
 Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
 ___
 basedb-devel mailing list
 basedb-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/basedb-devel


--
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel


[basedb-devel] Batch scan importer

2009-03-11 Thread Pawel Sztromwasser

Hello BASE team,

We really enjoy the set of batch uploading plugins and were doing a 
little training for our users in Bergen. Everything seemed great except 
that they couldn't link freshly created scans with image files. I read 
in the example spreadsheet that it is not supported and was very 
surprised since similar 'file attaching' works very nice for raw 
bioassays. I sat down, did some copy pasting from RawBioAssayImporter 
and after little edits it worked (source attached).


I hope that you can make some use of it.

All the best,
Pawel
/**
	$Id: ScanImporter.java 4551 2008-09-29 07:47:24Z nicklas $

	Copyright (C) 2008 Nicklas Nordborg

	This file is part of BASE - BioArray Software Environment.
	Available at http://base.thep.lu.se/

	BASE is free software; you can redistribute it and/or
	modify it under the terms of the GNU General Public License
	as published by the Free Software Foundation; either version 3
	of the License, or (at your option) any later version.

	BASE is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with BASE. If not, see http://www.gnu.org/licenses/.
*/
package net.sf.basedb.plugins.batchimport;

import java.util.Collections;
import java.util.List;
import java.util.Set;

import net.sf.basedb.core.DbControl;
import net.sf.basedb.core.File;
import net.sf.basedb.core.Hardware;
import net.sf.basedb.core.Hybridization;
import net.sf.basedb.core.Image;
import net.sf.basedb.core.Item;
import net.sf.basedb.core.ItemQuery;
import net.sf.basedb.core.Path;
import net.sf.basedb.core.PathParameterType;
import net.sf.basedb.core.PluginParameter;
import net.sf.basedb.core.Protocol;
import net.sf.basedb.core.ProtocolType;
import net.sf.basedb.core.Scan;
import net.sf.basedb.core.SystemItems;
import net.sf.basedb.core.Version;
import net.sf.basedb.core.plugin.About;
import net.sf.basedb.core.plugin.AboutImpl;
import net.sf.basedb.core.plugin.GuiContext;
import net.sf.basedb.util.parser.FlatFileParser;
import net.sf.basedb.util.parser.Mapper;

/**
	Plug-in for importing scan items in a batch. The plug-in can create new 
	items and updated existing items.

	@author nicklas
	@version 2.8
	@base.modified $Date: 2008-09-29 09:47:24 +0200 (Mon, 29 Sep 2008) $
*/
public class ScanImporterNMC
	extends AbstractItemImporterScan
{

	private static final SetGuiContext guiContexts =  
		Collections.singleton(new GuiContext(Item.SCAN, GuiContext.Type.LIST));

	private static final About about =
		new AboutImpl
	(
			Scan importer with images,
			Imports and updates scans in a batch (linking with images).,
			Version.getMajor() + . + Version.getMinor() + . + Version.getMaintenance(),
			2008, Base 2 development team,
			null,
			null,
			http://base.thep.lu.se;
	);

	
	protected static final PluginParameterString hardwareColumnMapping = new PluginParameterString(
			hardwareColumnMapping,
			Scanner,
			Mapping that picks the name or ID of the array slide scanner from the data columns.  +
			The plug-in will first try to find a scanner with the given name. If none is found and  +
			the value is numeric it will try to load by internal ID.  +
			Example: \\Scanner\\,
			optionalColumnMapping
			);

	protected static final PluginParameterString hybridizationColumnMapping = new PluginParameterString(
			hybridizationColumnMapping,
			Hybridization,
			Mapping that picks the name or ID of the hybridization from the data columns.  +
			The plug-in will first try to find a hybridization with the given name. If none is found and  +
			the value is numeric it will try to load by internal ID.  +
			Example: \\Hybridization\\,
			optionalColumnMapping
			);
	
	// extra parameter needed for linking with image files
	protected static final PluginParameterString fileColumnMapping = new PluginParameterString(
			fileColumnMapping,
			File,
			Mapping that picks the path of a image file from the columns.  +
			The path can be an absolute path (starting with /) or relative  +
			to the 'Data directory' parameter. +
			Example: \\File\\,
			optionalColumnMapping
			);
	
	public ScanImporterNMC()
	{}

	/*
		From the Plugin interface
		
	*/
	@Override
	public About getAbout()
	{
		return about;
	}
	// 

	/*
		From the InteractivePlugin interface
		
	*/
	@Override
	public SetGuiContext getGuiContexts()
	{
		return guiContexts;
	}
	// 

	/*
		From the AbstractItemImporter class
		
	*/
	
	private Mapper nameMapper;
	private Mapper descriptionMapper;
	private Mapper protocolMapper;
	private Mapper hardwareMapper;
	private Mapper hybridizationMapper;
	//extra mappers for linking with image file
	private 

Re: [basedb-devel] Batch scan importer

2009-03-11 Thread Pawel Sztromwasser
I have just noticed that the filename I sent has different name then the 
class inside. I used ScanImporterNMC name to distinguish from the 
original plugin and then renamed the file before sending. Just rename it 
back and all will work.

Pawel

Pawel Sztromwasser wrote:
 Hello BASE team,
 
 We really enjoy the set of batch uploading plugins and were doing a 
 little training for our users in Bergen. Everything seemed great except 
 that they couldn't link freshly created scans with image files. I read 
 in the example spreadsheet that it is not supported and was very 
 surprised since similar 'file attaching' works very nice for raw 
 bioassays. I sat down, did some copy pasting from RawBioAssayImporter 
 and after little edits it worked (source attached).
 
 I hope that you can make some use of it.
 
 All the best,
 Pawel
 
 
 
 
 --
 Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
 powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
 easily build your RIAs with Flex Builder, the Eclipse(TM)based development
 software that enables intelligent coding and step-through debugging.
 Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
 
 
 
 
 ___
 basedb-devel mailing list
 basedb-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/basedb-devel


--
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel


Re: [basedb-devel] Illumina Bead Summary Files

2009-03-09 Thread Pawel Sztromwasser
We experienced that as well. I believe that I have checked these probes 
and they were controls, so they can be ignored.

Pawel

Nicklas Nordborg wrote:
 David Waring wrote:
 I have recently installed the Illumina Plugins and have imported  
 features for several Array Designs. We modified our config to  
 generate the Bead Summary files and I have imported the data. Oddly  
 have found that the Bead Summary files contain some rows with  
 illumina codes that are not in the BGX files. For example the  
 datasets from HumanRef-8 arrays contain 324 probes that are not found  
 in any of the various versions of BGX files are available from the  
 Illumina web site. If I run these same datasets through BeadStudio  
 these these probes are not found in the BeadStudio output.

 Has anyone else run into this situation?
 
 Yes, we have seen this also. Just select 'Probe not found=skip' when
 importing the data to BASE and everything should work.
 
 /Nicklas
 
 --
 Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
 -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
 -Strategies to boost innovation and cut costs with open source participation
 -Receive a $600 discount off the registration fee with the source code: SFAD
 http://p.sf.net/sfu/XcvMzF8H
 ___
 basedb-devel mailing list
 basedb-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/basedb-devel


--
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel


[basedb-devel] Performance/delete issues on Postgres

2008-10-16 Thread Pawel Sztromwasser
Hello,

I found something interesting regarding BASE2 performance on Postgres 
(we have 8.3 but I suppose it is valid for previous versions as well). 
Recently I was unable to delete ArrayDesign (Illumina Human 8Ref, no 
items connected to it, features imported), because database query was 
endless. I stopped it after 3 days and started similar on development 
installation (much, much smaller). It took almost 20h to complete.

We started digging and found (among other similar) this: 
http://archives.postgresql.org/pgsql-admin/2006-02/msg00238.php
In short, postgres does not create indexes on foreign keys by default. 
That has huge impact on performance when updating/deleting items from 
table that is referenced by other big table. In case above Features 
(that are deleted with ArrayDesign) are referenced by all RawData* 
tables. I created indexes on feature_id column in all of these tables 
and delete took less than a minute.

That reminds me of another case where performance for postgres could be 
improved. When testing variuos kinds of jobs I noticed that concurent 
jobs creating root bioassayset took surprisingly long and did not scale 
well. That was due to sequential lookup in RawData* table on 
rawbioassay_id column. Creating index on that column improved 
performance by more than 50% (see: 
http://picasaweb.google.com/pawel.sztromwasser/Other#5257654388791782770).

I know that indexes have drawbacks as well, but in cases above they are 
a huge advantage. Could these indexes be incorporated in 
updateDb/indexes scripts? If you know about any other possible places in 
BASE database where similar things may occur, let me know and I will 
test them.

Best regards,
Pawel

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel


Re: [basedb-devel] Webservices transport error: 411 Error: Length Required

2008-08-04 Thread Pawel Sztromwasser
Totally agree. That makes it much more flexible. Please, feel free to 
change the code.

Pawel

Nicklas Nordborg wrote:
 Thanks for the code. It was something like this that I had in mind. The 
 one thing I don't like is to pass the type as an 'int' parameter in the 
 constructor and having a switch statement that creates the actual object 
 to use. This makes it impossible for others to use their own 
 implementations of 'RPCServiceClientCreator'. Wouldn't it be better to 
 pass a 'RPCServiceClientCreator' directly to the constructor?
 
 Eg.
 
 protected AbstractRPCClient(
String url, String service,
RPCServiceClientCreator serviceCreator)
 {
 ...
 }
 
 /Nicklas
 
 Pawel Sztromwasser wrote:
 Hi Nicklas,

 I had some time and implemented the 'ServiceFactory' functionality.
 Gzipped java files are attached. To summarize changes:

 1) three new classes/interfaces were created (I put them in
 net.sf.basedb.ws.client.added package):
 a) RPCServiceClientCreator - interface containing RPCServiceClient 
 getService(String serviceUrl) method for creating RPCServiceClient objects
 b) DefaultRPCServiceClientCreator - factory class implementing 
 interface above. It creates RPCServiceClient objects in the way they 
 were created in AbstractRPCClient.getService() method.
 c) NoChunkRPCServiceClientCreator - the same as above but with CHUNK 
 option set to false.

 2) AbstractRPCClient class uses own RPCServiceClientCreator object to 
 create objects in getService() method. Creator object is initialized in 
 constructor (type of creator is an argument of additional constructor). 
 The creator type can be chosen between values supported by 
 AbstractRPCClient, available as public static constants (currently only 
 DEFAULT_RPC_SERVICE_CLIENT and NO_CHUNK_RPC_SERVICE_CLIENT). If no 
 creator type is supplied, default one is used.

 3) all the subclasses of AbstractRPCClient have additional constructor 
 with last argument being type of RPCServiceClientCreator which refers to 
 constructor in superclass. This makes possible to choose creator type 
 when programming BASE2 webservices clients.

 I attached diffs.txt file which contains diff output on
 net/sf/basedb/ws/client/ folders for my version and 2.7.1. Just thought, 
 it might be helpful.

 I hope the code will be useful.

 Best wishes,
 Pawel


 Nicklas Nordborg wrote:
 Pawel Sztromwasser wrote:
 Hello BASE developers,

 We have been recently trying to enable retrieving some data from
 BASE2 installation directly into our 'home made' analysis tool. We
 use webservices for that and have to say that you are doing a great
 job.
 Thanks.

 We are really looking forward to use them more extensively.

 Recently, when I started testing the tool not only within the local 
 network I noticed that the webservice client does not switch off 
 chunking. It results in attached exception cascade. Chunking is on by
  default in axis2 and some servers (i.e. our gateway to BASE which 
 apparently uses HTTP1.0 and not 1.1) have problems with it. The
 remedy is to use

 options.setProperty(HTTPConstants.CHUNKED, false);

 in net.sf.basedb.ws.client.AbstractRPCClient.getService(). I don't
 know what are the drawbacks of it, but that was the only way I could
 run the services in our current setup (BASE2.6 accessible by
 proxypass from exposed webserver). Could this option be set off by
 default or configurable somewhere? Or maybe there is some other
 workaround?
 I am afraid that I am not very familiar with all possible options that 
 is available in the Axis API:s. There seems to be a lot of them and 
 their Javadoc is not very informative about what many of the options 
 are used for. The CHUNKED option seems to be related to the way HTTP 
 requests are made, but I have to admit that this is the first time I 
 have heard of it. This means that I probably know even less than you 
 about this.

 I think that, in the future, there may be more requests about being 
 able to set other options. So, it may be better to think ahead and try 
 to figure out some way to be able to do this as easy as possible. With 
 the current BASE API the only workaround that doesn't involve changing 
 the BASE code is to subclass all AbstractRPCClient subclasses and 
 override the 'getService()' method. This is not very elegent since 
 there are several such classes and the new 'getService()' will be 
 added to each one of them.

 A better approach may be to create a 'ServiceFactory' interface which 
 has a 'createService()' method. The default implementation would then 
 work as the AbstractRPCClient.getService() does today. The last step 
 is to figure out a way to switch to another 'ServiceFactory' 
 implementation either by having a configuration file or by being able 
 to specify it programmatically.

 I have opened a ticket for this issue 
 http://base.thep.lu.se/ticket/1057. It falls under the 'contributions 
 welcome' category since right now we are forced to prioritize other

Re: [basedb-devel] Webservices transport error: 411 Error: Length Required

2008-07-30 Thread Pawel Sztromwasser

Hi Nicklas,

I had some time and implemented the 'ServiceFactory' functionality.
Gzipped java files are attached. To summarize changes:

1) three new classes/interfaces were created (I put them in
net.sf.basedb.ws.client.added package):
	a) RPCServiceClientCreator - interface containing RPCServiceClient 
getService(String serviceUrl) method for creating RPCServiceClient objects
	b) DefaultRPCServiceClientCreator - factory class implementing 
interface above. It creates RPCServiceClient objects in the way they 
were created in AbstractRPCClient.getService() method.
	c) NoChunkRPCServiceClientCreator - the same as above but with CHUNK 
option set to false.


2) AbstractRPCClient class uses own RPCServiceClientCreator object to 
create objects in getService() method. Creator object is initialized in 
constructor (type of creator is an argument of additional constructor). 
The creator type can be chosen between values supported by 
AbstractRPCClient, available as public static constants (currently only 
DEFAULT_RPC_SERVICE_CLIENT and NO_CHUNK_RPC_SERVICE_CLIENT). If no 
creator type is supplied, default one is used.


3) all the subclasses of AbstractRPCClient have additional constructor 
with last argument being type of RPCServiceClientCreator which refers to 
constructor in superclass. This makes possible to choose creator type 
when programming BASE2 webservices clients.


I attached diffs.txt file which contains diff output on
net/sf/basedb/ws/client/ folders for my version and 2.7.1. Just thought, 
it might be helpful.


I hope the code will be useful.

Best wishes,
Pawel


Nicklas Nordborg wrote:

Pawel Sztromwasser wrote:

Hello BASE developers,

We have been recently trying to enable retrieving some data from
BASE2 installation directly into our 'home made' analysis tool. We
use webservices for that and have to say that you are doing a great
job.


Thanks.


We are really looking forward to use them more extensively.

Recently, when I started testing the tool not only within the local 
network I noticed that the webservice client does not switch off 
chunking. It results in attached exception cascade. Chunking is on by
 default in axis2 and some servers (i.e. our gateway to BASE which 
apparently uses HTTP1.0 and not 1.1) have problems with it. The

remedy is to use

options.setProperty(HTTPConstants.CHUNKED, false);

in net.sf.basedb.ws.client.AbstractRPCClient.getService(). I don't
know what are the drawbacks of it, but that was the only way I could
run the services in our current setup (BASE2.6 accessible by
proxypass from exposed webserver). Could this option be set off by
default or configurable somewhere? Or maybe there is some other
workaround?


I am afraid that I am not very familiar with all possible options that 
is available in the Axis API:s. There seems to be a lot of them and 
their Javadoc is not very informative about what many of the options are 
used for. The CHUNKED option seems to be related to the way HTTP 
requests are made, but I have to admit that this is the first time I 
have heard of it. This means that I probably know even less than you 
about this.


I think that, in the future, there may be more requests about being able 
to set other options. So, it may be better to think ahead and try to 
figure out some way to be able to do this as easy as possible. With the 
current BASE API the only workaround that doesn't involve changing the 
BASE code is to subclass all AbstractRPCClient subclasses and override 
the 'getService()' method. This is not very elegent since there are 
several such classes and the new 'getService()' will be added to each 
one of them.


A better approach may be to create a 'ServiceFactory' interface which 
has a 'createService()' method. The default implementation would then 
work as the AbstractRPCClient.getService() does today. The last step is 
to figure out a way to switch to another 'ServiceFactory' implementation 
either by having a configuration file or by being able to specify it 
programmatically.


I have opened a ticket for this issue 
http://base.thep.lu.se/ticket/1057. It falls under the 'contributions 
welcome' category since right now we are forced to prioritize other things.


/Nicklas



-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
basedb-devel mailing list
basedb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basedb-devel





new_client_package.tar.gz
Description: GNU Zip compressed data
diff net/sf/basedb/ws/client/AbstractRPCClient.java 
/Home/bccs/pawels/base2/base-2.7.1-src/src/webservices/client/java/net/sf/basedb/ws/client/AbstractRPCClient.java
32,35d31
 import net.sf.basedb.ws.client.added.DefaultRPCServiceClientCreator;
 import