[BioC] Rgraphviz: Edge attributes not displaying

Kasper Daniel Hansen khansen at stat.Berkeley.EDU
Fri Feb 16 04:56:56 CET 2007


A fix has been found to the problem reported by Jarrett: the fact  
that edge labels are not showing up on Mac (and possibly 64bit Linux  
as well as reported by Li).

Unfortunately the fix is distinctively not nice :) I have only tested  
this on Graphviz 2.12 on a Mac G4. You need to modify the Graphviz  
header files which usually (if you have a default installation)  
resides in
   /usr/local/include/graphviz
The file in question is called
   logic.h

At the start of the file, just below the lines

#ifndef GV_LOGIC_H
#define GV_LOGIC_H

(which are at lines 17 and 18 in my installation), add the two lines

#define HAVE_BOOL 1
#define HAVE_STDBOOL_H 1

(you will probably need to have superuser privileges to do so, on a  
Mac do
# sudo pico logic.h
)

And reinstall Rgraphviz from source (you do not need to recompile  
Graphviz, but you need to recompile Rgraphviz).

I am very curious if this works with
1) Simon's Graphviz-2.8 binary from r.research.att.com
2) 64bit Linux
3) Intel Mac (not sure if there was a problem to begin with on that  
platform)
so please send me an email if you try this.

For background, read the post by Emden R. Gansner on the Graphviz- 
interest email-list. Apparently they were being a bit too smart  
regarding the use of bool, which on Apple's machines have sizeof 
(bool) = 4.

Kasper

On Feb 5, 2007, at 9:28 AM, Kasper Daniel Hansen wrote:

>
> On Feb 5, 2007, at 9:22 AM, Li.Long at isb-sib.ch wrote:
>
>>> Nope, I get something very different
>>>
>>>>
>>> character(0)
>>>> AgEdge(g2)[[10]]@txtLabel at labelText
>>> character(0)
>>>
>>> Given what I saw looking at the edgeAttrs of the Ragraph object
>>> itself, (namely, Null), I'm guessing that the problem is there.   
>>> This
>>> may also be why edge style (solid v. dashed) wasn't getting picked
>>
>> The problem with "lty" is different from this, we didn't even try
>> to set
>> that entry.  Here we do try, but don't get it right.
>>
>>> up.  Why it is different on linux instead of a mac, I am uncertain,
>>> unless there are different binaries in the Bioconductor archive.
>>
>> Kasper,
>>
>> I see this problem on a 64-bit Linux machine as well.  So this
>> might be a
>> 64-bit vs. 32-bit issue.
>>
>> The size of a pointer is different on 64-bit machine vs. 32-bit
>> machine,
>> I'd pay some attention to that, since we are looking at the pointers
>> here...
>
> There is also the endian issue on the PPC (I am on a 32 bit machine)
>
>> I'll take a closer look at it tomorrow.
>
> It is rather bewildering. I have quite a lot of experience of looking
> at how _node_ labels are handled in graphviz' C structures, and in
> this case the edge labels are certainly behaving differently. Of
> course, I guess edge labels are not used as much, so it could be a
> bug somewhere.
>
> The fact you see it on 64 bit Linux is at least a bit comforting :) I
> guess it is using Graphviz 2.12?
>
> Like I just wrote: I'll follow up on the Graphviz list later today.
>
> Kasper
>
>
>> Li
>>
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/ 
> gmane.science.biology.informatics.conductor



More information about the Bioconductor mailing list