[Bioperl-l] bioperl invades emacs -- bug report?

Pablo Marin-Garcia pg4 at sanger.ac.uk
Thu Sep 3 08:01:26 UTC 2009


On Thu, 3 Sep 2009, Mark A. Jensen wrote:

> Hi Pablo and all-
> Try the latest revision (>=16081) with your debian/Emacs 21. Set
> the variable bioperl-module-path to the directory above the
> Bio directory (same idea as ' use lib "./bioperl-live"; ' ), and try
> again there. Tomorrow, MacOS
> cheers,
> Mark

Hello Mark,

after setting bioperl-module-path manually, your module works ok in 
linux emacs 21.4 with latest revision.

About the perl5lib issue, sorry about not reporting the platform: the 
report was on linux not in mac os X. In the wiki you have a comment about 
mac OS X separator:

[wiki] The problem Pablo was running into is definitely the Mac OS X path 
[wiki] separator issue.

Here I was refering to ':' as the 'path seprator' for linux multipath 
environmental vars not the systems directory separator [:/\].

Also from the wiki

[wiki] I think this is ok as it is, since bioperl-module-path is meant to 
[wiki] point to the directory above Bio

This is right. Probably my message was misleading. I wrongly appended 
'/Bio' to the path instead to a temp variable for testing with 
file-exist-p. And probably gave you the impression that the point was to 
have the /Bio added to the path. Sorry about that.

Instead my main point was about the line where you capture the PRL5LIB:

[code] (if (setq pth (getenv "PERL5LIB"))

wouldn't this leave pth with s *string* like 
"lib/path1:lib/path2:lob/path3" in linux?

Then, when you test:

[code] (setq pth (if (file-exists-p (concat pth "/" "Bio")) pth nil))))

it would append '/Bio' at the end of the whole string 
'lib/path1:lib/path2:lib/path3'. and this string path obviously does not 
exist.

Am I missing something? Shouldn't the 'concat /Bio' be applied to *each* 
lib/path, splitting first the pth string by the ':' in linux/osX or 
equivalent in windows.

Sorry about not being very clear in my firest report.


    -Pablo



>> == bug when parsing perl5lib? ==
>> 
>> Please correct me if I am wrong but in bioperl-init.el when extracting the 
>> Bioperl paths from PERL5LIB this is not working for me in linux.
>> 
>> While debugging bioperl-init.el:
>> # (setq pth (getenv "PERL5LIB"))
>> # 
>> "/nfs/home/pmg/ensembl-api/ensembl-compara/modules:...:/nfs/home/pmg/bioperl-live:..."
>> # (setq pth (if (file-exists-p (concat pth "/" "Bio")) pth nil))
>> # nil
>> 
>> No file is found because it is looking for all the paths concatenated 
>> together with a '/Bio' at the end:
>>
>>   libpaht1:libpath2:libpath3/Bio
>> 
>> 'concat' adds /Bio to the pth that is a string with all the PERL5LIB paths. 
>> Should this concat rather be applied to the splited perl5lib by ':' in unix 
>> or ';' in windows and then tested for the existence of files?
>> 
>> for example in unix:
>> 
>> --- code --
>> (defun addbio (bio_path)
>>   "apend /Bio to each path"
>>   (concat bio_path "/" "Bio"))
>> 
>> (mapcar 'file-exists-p (mapcar 'addbio (split-string pth ":")))
>> -- end code ---
>> 
>> This would result in the list of T and F bioperl (and ensembl) paths
>> (t t nil t t t t t t nil nil nil ...)
>> 
>> 
>> Regards and thanks for the modules they would be very useful.
>>
>>    -Pablo
>> 
>> =====================================================================
>>                      Pablo Marin-Garcia, PhD
>>
>>                     \\//          (Argiope bruennichi
>>                \/\/`(||>O:'\/\/   with stabilimentum)
>>                     //\\
>> 
>> Sanger Institute                |  PostDoc / Computer Biologist
>> Wellcome Trust Genome Campus    |  team : 128/108 (Human Genetics)
>> Hinxton, Cambridge CB10 1HH     |  room : N333
>> United Kingdom                  |  email: pablo.marin at sanger.ac.uk
>> ====================================================================
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> -- 
>> The Wellcome Trust Sanger Institute is operated by Genome Research Limited, 
>> a charity registered in England with number 1021457 and a company 
>> registered in England with number 2742969, whose registered office is 215 
>> Euston Road, London, NW1 2BE. 
>> _______________________________________________
>> Bioperl-l mailing list
>> Bioperl-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>> 
>> 
>
>


=====================================================================
                      Pablo Marin-Garcia, PhD

                     \\//          (Argiope bruennichi
                \/\/`(||>O:'\/\/   with stabilimentum)
                     //\\

Sanger Institute                |  PostDoc / Computer Biologist
Wellcome Trust Genome Campus    |  team : 128/108 (Human Genetics)
Hinxton, Cambridge CB10 1HH     |  room : N333
United Kingdom                  |  email: pablo.marin at sanger.ac.uk
====================================================================










-- 
 The Wellcome Trust Sanger Institute is operated by Genome Research 
 Limited, a charity registered in England with number 1021457 and a 
 company registered in England with number 2742969, whose registered 
 office is 215 Euston Road, London, NW1 2BE. 



More information about the Bioperl-l mailing list