saezlab / CARNIVAL

CAusal Reasoning for Network Identification with integer VALue programming in R
https://saezlab.github.io/CARNIVAL/
57 stars 29 forks source link

Carnival usage error #93

Closed rengulA closed 1 year ago

rengulA commented 2 years ago

Hi, I am using CARNIVAL with RNAseq data (4 conditions with 3 biological replica). It went well with DoRothEA and PROGENy for data prep, but I am having some issues with CARNIVAL. I would appreciate your feedback on this issue. Thank you,

Here is the code:

carnival_result = runCARNIVAL( inputObj= iniciators, measObj = tfList$t, netObj = sif, weightObj = progenylist$score, solverPath = "/Applications/CPLEX_Studio221/cplex/bin/x86-64_osx/cplex", solver = "cplex", timelimit=7200, mipGAP=0.05, poolrelGAP=100 )

Error message:

.........| Zfp263 | Zfp740 | ZfxWarning: These nodes are not in prior knowledge network and will be ignored: P5321:47:48 18.10.2022 Generating variables for lp problemError in seq.default(from = 1, to = length(measurements), by = 1) : wrong sign in 'by' argument

gabora commented 2 years ago

Dear @rengulA , sorry for late reply. This is a strange error message. First, the name "P5321:47:48" is strange, but depending on the sif and measurement data you have this could be OK. I think the problem causing the error is that you provided the t-values (tfList$t). If you reference the t values from a data frame then these will be only number without names.

If you use runCARNIVAL then the inputs must be data.frames, where each column is a node and the first row contains a numeric value. For example:

inputs = data.frame(I1 = 1, I2 = -1)
measurement = data.frame(M1 = 0.75, M2 = -1.3)

the problem with weightObj will be the same. best, Attila

gabora commented 2 years ago

btw, you can also run runVanillaCARNIVAL(), which is very similar to runCARNIVAL for your case, but it accepts named vectors as inputs.