my first #bioclipse plugin: A pubmed plugin

I haven't found an out of the box text-mining platform, where I push a button to launch the text mining resulting in a interesting set of "ore" or facts. It usually involves much preprocessing of text and efficient storage of intermediate results. @egonw recently introduced me to Bioclipse (http://bioclipse.net/). For what I have seen so far, Bioclipse looks like a promising platform to develop a "push-a-button" textmining. Whether this assumptions proofs to be true remains to be seen, but it is worth considering building a text mining platform for.

A a hello world exercise, I have started developing a pubmed plugin for Bioclipse. Pubmed remains a primary repository of biomedical scientific text, making it ideal starting point. 

So far the following calls have been implemented. 

findPubmedIdentifiers
This call takes a pubmed query (http://www.ncbi.nlm.nih.gov/books/NBK3827/#pubmedhelp.How_do_I_search_PubM) and returns the resulting pubmed identifiers. By default the first 20 hits are returned. The maximum number of hits can be increased by giving the required number as a second parameter. 

getFullTextLink  
This call returns a URL pointing to a fulltext version of the given pubmed identifier

getPubMedAbstract  
This call returns the abstract of a given pubmed identifier

getPubMedEntry  
This call return the complete entry of a given pubmed identifier

loadPubMedEntryInBrowser
This call opens the pubmed entry of a given pubmed identifer in a webbrowser.

More function will follow soon. 

Once installed the use of this plugin is strait forward.

Figure 1 shows a empty workbench in Bioclipse
Pastedgraphic-3

When we type "pubmed." and subsequently type -->| (Tab). We get the available function calls.
Pastedgraphic-4

We can now for example acquire the URL to the full text paper of any paper (e.g. on WikiPathways: 22096230)

Pastedgraphic-6
and get:

Pastedgraphic-7

More functions will follow.

Using the #semweb to obtain Journal impact factors through dbpedia

I have just submitted the following SPARQL query to dbpedia's SPARQL endpoint: (http://dbpedia.org/sparql)

 SELECT DISTINCT * 
WHERE {
               ?journal <http://dbpedia.org/ontology/impactFactor> ?impactfactor .
               ?journal <http://dbpedia.org/ontology/impactFactorAsOf> ?year
              }
and got a list of journals with their respective journal impact factors.

Het verschil tussen een westerse en een niet-westerse allochtoon.

Vandaag uitleg gekregen over het verschil tussen westerse en niet-westerse allochtonen. 

Begin forwarded message:

Verder kan ik u over het volgende informeren. Het CBS heeft een onderscheid gemaakt tussen westerse en niet-westerse allochtonen. Bij het vaststellen of iemand een niet westers allochtoon is, wordt allereerst naar het geboorteland van de moeder gekeken. Als de moeder geboren is in Afrika, Latijns- Amerika of Azie (incl. Turkije), met uitzondering van voormalig Nederlands-Indie, Indonesie en Japan wordt iemand gerekend tot de niet-westers allochtonen. Indien de moeder in Nederland is geboren, geldt het geboorteland van de vader. Onder de genoemde gebieden vallen ook de voormalige Nederlandse Antillen, ongeacht de status in het Koninkrijk der Nederlanden en Suriname, ondanks dat dit land tot 1975 zelfs nog een overzees rijkdeel was en dat het Nederlands daar nu nog steeds de officiële taal is. 

De laatste keer dat ik op mijn kompas keek lag Suriname en wat dat betreft heel latijns-amerika ten westen van Nederland. O ja en volgens mij worden Indonesië en Japan het verre oosten genoemd. Dat we Australiërs dan niet westerse allochtonen noemen, klopt weer wel.

Digitally organizing my paper-based administration in Yep!

I have been searching for a very easy archive tool for my paper-based administration (Bills, letters, pasports, drivers license, etc) . I finally found one very neat sollution in YEP! (http://www.ironicsoftware.com/yep/) The tool is intended to manage all pdf's on your mac. But I also have Mekentosj papers (http://www.mekentosj.com/) for that.

The beauty of Yep! lies in the ease of importing documents through the scanner. 

First you open Yep!:
Pastedgraphic-5

You press on the "Scan New Document"-button in top right corner:

Pastedgraphic-6
Push the "Scan Page"-page button and your document will be scanned. 

Pastedgraphic-7
You can repeat this process multiple times, resulting in pdf's containing multiple pages. 
Finally tag the document with appropriate tags, describe its contents and push "Create PDF".

After years of piled stacks of papers, I have finally found a solution to easily manage my paper administration. When I do payments, or some sort of other type of administration like filling in paper forms. I scan them in less then a minute and it is organized. 

There is only one feature missing in Yep! and that is a backup feature for my scanned administration.From Yep itself you can Backup the Metadata, but not the scans itself. 

Howto automatically backup Yep!-scanned documents will be the topic of my next blog. 

How to generate Java files from OWL-files in Jena.

Converting data in RDF is challenging. I am using the Jena RDF-API [1] to do this. Modeling the data in RDF is really strait forward, especially if you use the Eclipse-IDE [2]. The earlier mentioned tutorial [1] explains it well. You initiate the model:

// create an empty Model Model model = ModelFactory.createDefaultModel();

You add a resource:

// create the resource Resource johnSmith = model.createResource(personURI);

Eclipse now makes adding properties SOOOO easy. The tutorial explains it as follows: 
You add a property:
// add the property johnSmith.addProperty(VCARD.FN, fullName);

Now a screen dump from my Eclipse IDE:
Pastedgraphic-2

Instead of typing the predicates, Eclipse presents me a listbox from where I can select the appropriate properties.

OWL, DC, RDF, FOAF, etc are ready to be used from the API. 

Biopax3 [3] is not. Having similar functionality for Biopax3 would be very beneficial. Jena's schemagen [4] enables this. 

After running the following command:

// java -Xmx1024M -classpath jena-2.6.4.jar:log4j-1.2.13.jar:slf4j-log4j12-1.5.8.jar:log4j-1.2.13.jar:slf4j-api-1.5.8.jar:xercesImpl-2.7.1.jar:iri-0.8.jar:icu4j-3.4.4.jar jena.schemagen -i http://www.biopax.org/release/biopax-level3.owl  -o /DocumentenWerk/Eclipseworkspace/EnsemblRDF/src/

A java file was created from the Biopax owl file:

Pastedgraphic-4

And suddenly I was able to type Biopax_level3. in Eclipse resulting in:

The following listbox:

Pastedgraphic-3

The ease of the makes modeling data in RDF so much faster

How to remove ICC profiles from images without Photoshop

While submitting a manuscript to PLoS one, I got stuck on so called ICC-profiles. The Artwork Quality control in the Editorial manager showed that my figures contained these ICC-profiles and that they need to be removed. Unfortunatly only instructions on how to remove these were given for Adobe Photoshop. I don't have Photoshop, and our local ICTS salesperson confirmed that ordering a copy would take at least 2 weeks. So I googled for other solutions. After trying by using GIMP, which added yet another ICC profile. I finally found ImageMagick (http://www.imagemagick.org/script/index.php)

Removing all the things you don't even know are part of your images was apparently as simple as installing ImageMagick and typing at the command line

 > convert Image1 -strip Image2

After this step the figures passed the ICC test of Plos' Editorial Manager.

One figure still failed though, this time on including a so-called alpha channel. Again only instructions for photoshop were given. This time the sollution in ImageMagick is:

> convert Image2 +matte TempImage

After these steps, my "artwork" passed the tests and I resubmitted.

ImageMagick might be a bit difficult for the less command-line savvy among us. It is certainly worth a try. At least it saves you a few 100 Euro's for not buying Photoshop.

Betere afstemming wegenwerken noodzakelijk

Geachte heer/mevrouw,

Het is geweldig dat er eindelijk wat aan de wegen in Deurne wordt gedaan, maar is het echt noodzakelijk om ALLE wegen tegelijk te verbeteren? Ik kom serieus in de problemen met mijn werk, omdat het effectief niet meer mogelijk is om op tijd op mijn werk te komen. Vroeger weg gaan is geen optie, want ik moet mijn kinderen ook nog naar school kunnen brengen. Vanmorgen heb ik de helft van de tijd nodig gehad om alleen Deurne uit te komen. U moet weten dat ik in Maastricht werk, wat 110 km van Deurne is. Het is dan bizar dat het even lang duurt om alleen Deurne uit te komen, als de resterende 100 km. Dit allemaal vanwege de slechte (of ontbrekende?) afstemming van de wegenwerken. Dit is niet leuk meer, het lijkt er echt op dat u burgers sadistisch aan het pesten bent.
Mijn vragen:
1. Waarom wordt er gewerkt op EN de bisschoppenhoflaan, EN de turnhoutsebaan, EN de herentalse baan? Kan dat niet beter afgestemd worden, hiermee sluit u namelijk bijna alle alternatieven af. De enige oplossing is om door woonwijken te rijden, waarmee extra gevaarlijke situaties ontstaan.

2. Waar is de politie? Er is een overgrote politiemacht zichtbaar bij elk evenement in het sportpaleis. Waar zijn ze als ze echt nodig zijn? Weet u dat iedere ochtend op de hoek van de Bischoppenhoflaan en de Merksemsesteenweg het hele kruispunt vastloopt. U bent het toch met mij eens dat het algemeen belang prevaleert boven op het privé belang van een evenementen organisatie? Kunt de politie aanmoedigen weer terug te gaan naar haar primaire zorgtaak?

Met vriendelijke groet,


Andra Waagmeester

Kafka woont vandaag in Antwerpen

In onze straat is dinsdagavond een 3 jarig kind aangereden. (http://www.gva.be/antwerpen/deurne/3-jarig-jongetje-kritiek-na-aanrijding-door-wagen.aspx) Ongeveer een half jaar geleden reed op precies dezelfde plek een idioot de auto van mijn schoonmoeder total loss. Toeval?

In ieder geval heb ik toen de moeite genomen om de onveilige situatie bij de gemeente aan te kaarten. De reactie toen:

"DE/DR/EE/bb/11/101

Geachte mevrouw

Bedankt voor uw mail i.v.m. de verkeersveiligheid in de Van Cortbeemdelei die we besproken hebben tijdens het districtscollege van maandag 16 mei 2011.

Eerst en vooral willen wij u bedanken voor het signaleren van dit probleem. We zijn al een tijdje bezig met verkeersbegeleidende ingrepen (VBI’s) in te voeren in de wijk Kronenburg. Ook de Van Cortbeemdelei staat als te onderzoeken op de agenda, maar er is nog geen definitieve beslissing over welke oplossingen en wanneer deze uitgevoerd zouden kunnen worden.

We merken dat de paaltjes er vrij regelmatig uitgereden worden en dus moet er gezocht worden naar andere oplossingen waarbij het vrachtverkeer door kan. In de buurt is er wel wat industrie en de leveringen moeten kunnen plaatsvinden. Dit probleem is doorgegeven aan de dienst mobiliteit en aan het studiebureau dat voor ons bezig is met de opmaak van het wijkcirculatieplan.

Wij hopen dat zij een oplossing vinden voor het vrachtverkeer zodat wij bijkomende maatregelen kunnen nemen voor de verkeersveiligheid.

Indien u nog vragen en/of opmerkingen heeft, mag u ons die steeds bezorgen.

Met vriendelijke groeten
Namens het districtscollege"

Een hele aparte reactie als je beseft dat het vrachtverkeer niet eens bij ons de in de straat mag komen. Een nutteloos uit de duim gezogen emailtje, dus. Het werd nog triester dat ik onafhankelijk van deze reactie nog een aantal reacties kreeg. Zelfs van de hoogste baas in het district (Belgisch voor stadsdeelraad).  Er wordt in Antwerpen dus wel hard gewerkt, maar totaal ongecoördineerd.  

Toen was er alleen materiële schade, vandaag dus helaas niet. Reden om opnieuw in de pen te klimmen en de stad eens wijzen waar het uitblijven van aanpassingen ten gunste van de verkeersveiligheid in een kinderrijke buurt toe kan leiden. Hun reactie:

Geachte mevrouw

Ik ontving uw onderstaande mail in goede orde en maakte hem onmiddellijk over aan de bevoegde personen.

Mag ik u beleefd vragen om in de toekomst uw mails te sturen aan het algemeen mailadres van het district Deurne = distrct.deurne@stad.antwerpen.be en niet aan mijn persoonlijk stadsmailadres aub. De mails die u stuurt aan het adres van het district Deurne worden ook dagelijks gelezen.

Alvast bedankt.

Met vriendelijke groeten

DE/DL/DS

Toch wel een frappant antwoord. Je wijst op een verkeersonveilige situatie en de dienstdoende ambtenaar maakt zich meer druk over haar overvolle emailbox. 

Ik wordt er heel verdrietig van. Iemand een idee hoe je kafka uit Antwerpen weg kan jagen?