YosefLab / Cassiopeia

A Package for Cas9-Enabled Single Cell Lineage Tracing Tree Reconstruction
https://cassiopeia-lineage.readthedocs.io/en/latest/
MIT License
74 stars 24 forks source link

ILPSolverError: Potential Graph could not be found with solver parameters. #239

Closed tenlives closed 5 months ago

tenlives commented 5 months ago

Hi, thanks for the great tool. When I try to use the command below,

'ilp_solver = cas.solver.ILPSolver(convergence_time_limit=500, maximum_potential_graph_layer_size=500, weighted=True, seed=1234) ilp_solver.solve(cas_tree)'

I got this error message 'ILPSolverError: Potential Graph could not be found with solver parameters. Try increasing maximum_potential_graph_layer_size or using another solver.'

Although I increase the maximum_potential_graph_layer_size, it still doesn`t work. I tried the demo data 'GSM4905334_alleleTable.5k.txt.gz', it works. So could you provide me much information about why my dataset not suitable to this method?

mattjones315 commented 5 months ago

Hello,

Thanks for your issue and using Cassiopeia. The parameters used in the tutorial are not realistic for real datasets, and are set to those low values just so the tool can run quickly in a tutorial environment. Instead we recommend using much higher parameters - please see text above in the tutorial, reproduced here:

There are several parameters of interest which can all be explored on our documentation website <https://cassiopeia-lineage.readthedocs.io/en/latest/api/reference/cassiopeia.solver.ILPSolver.html#cassiopeia.solver.ILPSolver>. Because this process can take a long time, we’ll restrict the potential graph layer size to 500 nodes and the convergence time to 500s. A more realistic solver might use our defaults - namely, a maximum potential graph layer size of 10,000 and a convergence time of 12,600s (3.5hr).

Can you let me know if you tried these parameters and it still did not work?

Thanks, Matt

On Wed, Mar 13, 2024 at 1:50 AM tenlives @.***> wrote:

Hi, thanks for the great tool. When I try to use the command below,

'ilp_solver = cas.solver.ILPSolver(convergence_time_limit=500, maximum_potential_graph_layer_size=500, weighted=True, seed=1234) ilp_solver.solve(cas_tree)'

I got this error message 'ILPSolverError: Potential Graph could not be found with solver parameters. Try increasing maximum_potential_graph_layer_size or using another solver.'

Although I increase the maximum_potential_graph_layer_size, it still doesn`t work. I tried the demo data 'GSM4905334_alleleTable.5k.txt.gz', it works. So could you provide me much information about why my dataset not suitable to this method?

— Reply to this email directly, view it on GitHub https://github.com/YosefLab/Cassiopeia/issues/239, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACKWFHUSZY6SHCEDA4GV5ELYYAHODAVCNFSM6AAAAABETW2PLSVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE4DGNBTGQ2DCMY . You are receiving this because you are subscribed to this thread.Message ID: @.***>

tenlives commented 5 months ago

Thanks for your kind reply,I will have a try. BTW,if a tree generated by ILP,Greedy,NJ,or Hybrid solver,I want to figure out which is best,how to compare them with their results? Need I do bootstrapping to make sure the tree is robust?

mattjones315 commented 5 months ago

Hi @tenlives, you can try bootstrapping (we have functionality for creating bootstrapped character matrices), but perhaps easier to evaluate parsimony of the trees to select the best tree. This is what we have done in the past.

Another recommendation is to evaluate downstream analyses on all four trees to see how robust downstream conclusions are.

If it's alright, I'll close this issue unless you run into any problems again with the ILPSolver.

tenlives commented 5 months ago

very clear, thank you very much