BIMIB-DISCo / scFBA

6 stars 5 forks source link

Some questions about scFBA #4

Open 1213812138zqc opened 3 years ago

1213812138zqc commented 3 years ago

Dear Dr.Damiani,

I was really impressed by your ideas and methods. However, I notice that the time consumed (113 cells / 10h, 1048cells / 82h) is much longer than the time you mentioned in your paper ( 10000 cells / 321s) when I used scFBA to process my data. Therefore, I' m wondering is there any additional steps I need to finish when I process large-scale dataset. It would be appreciated if you could give me some guidances for scFBA.

DavideMaspero commented 3 years ago

The time reported in the paper regards only the optimization task after the model has been built. Anyway, the overall computational time depends primarly on the number of reactions included in your metabolic model. I think the magnitude of the time you reported is correct.

Best regards, Davide Maspero

1213812138zqc commented 3 years ago

Dear Dr. Maspero,

I am glad to receive your reply. It's just that the process of scFBA stopped at this place : "99.85, RAS computing 99.90, RAS computing 99.95, RAS computing 100.00, RAS computing Integrate RAS in model get pop model and rxn_list compute fluxVariability and save Fmin, FMax vectors" for days even weeks when we tried large-scale datasets. Is it still normal?

Thank you for your attention.

Best wishes. Qiuchen Zhao

DavideMaspero commented 3 years ago

Dear Dr. Zhao,

yes, unfortunatelly I think it is correct. In that step each reaction in the original metabolic model is considered to obtain the flux variability (using the fluxVariability cobra function). So, the time scales with the number of reactions in the original metabolic model and with the number of cells in your dataset (more time is required for each optimization). Just one thing, if you have the 'Parallel Computing Toolbox' installed in matlab then the fluxVariability function runs in parallel mode.

Best regards, Davide Maspero

1213812138zqc commented 3 years ago

Dear Dr. Maspero,

I am glad to receive your reply. I have already run my codes in parallel mode, maybe increasing parallel workers solves this problem? Is it possible to run the integration stage on GPU? Besides, I notice the output matrix including the flux of each reaction in each cell doesn't contain row names and col names. How can I gain this information?

Thank you for your attention. Best wishes. Qiuchen Zhao

DavideMaspero commented 3 years ago

Hi, Increasing the number of workers may work only if you have some CPU unused; unfortunatelly, the function 'fluxVariability' is not coded by us but is included in the cobra toolbox.

Considering the results obtained at the end of scFBA_test.m script execution: the reaction names (row names of the flux matrices) can be found in the 'RxnPop' variable while the cell names (column names) can be found in the 'CellType' field of the 'BC04' structure (obtained with the 'makeSCdataset' function).

Hope this solves your issue.

Best regards, Davide

1213812138zqc commented 3 years ago

Dear Dr.Maspero,

I'm sorry to bother you again. It' s just I have some trouble obtaining useful information from scFBA. I want to know is it also appropriate to use raw read counts as the input of scFBA instead of TPM values?

Also, I was a little confused about the meaning behind the reaction names (like -DM-COOP, DM- and uniprot-). Would you mind to tell me how can I obtain the brief introduction of these reaction names?

Thank you for your attention.

Best wishes. Qiuchen Zhao

kiaradamiani commented 3 years ago

Dear Qiuchen, sorry for late reply. You should better use TPM values. DM-COOP refer to reactions that allow a cell to secrete nutrients in the microenvironment, which might be taken up by other cells in the population. DM- refer to secretion/accumulation of nutrients outside the tumor, hence they cannot be taken up by other cells. I am not sure what "uniprot" refers to, you probably mean "uniport". Uniport refer- to reactions that transport a single species of substrate across the mitochondrial membrane. Hope this helps. Best wishes, Chiara

1213812138zqc commented 3 years ago

Dear Dr.Maspero,

Your explanations truly help me a lot ! Have your lab ever tried to convert these 294 terms into easy-to-understand concepts for general audience? If not, I'm afraid I still have some questions: Why do some fluxes have serial numbers as suffixes, such as "FASN-1", "FASN-2" and "FASN-3"? Is there any difference between "arginine Amidinohydrolase" and "ARG1-ARG2"? What does "CotraspArgCitrA" mean?

Thank you for your attention.

Best wishes. Qiuchen Zhao

DavideMaspero commented 3 years ago

Dear Dr. Qiuchen Zhao,

the leatest reply was by @kiaradamiani. Anyway, I suggest to use the following command: writeCbModel(HMRcore, 'xls', 'HMRcore.xlsx'). it will export the metabolic model into a more readable excel file named 'HMRcore.xlsx' located in you working directory. In the excel file you will find a worksheet 'Reaction List' where information (reaction formula, gene rule, Enzime Reference, etc) for each reaction is reported.

If you require any further information, let me know.

Best regards, Davide Maspero

1213812138zqc commented 3 years ago

Dear Dr.Maspero,

I successfully obtain the excel file named 'HMRcore.xlsx' and I believe it contains the information I need. Thanks for giving me guidance of scFBA !

Thank you for your attention.

Best wishes. Qiuchen Zhao

1213812138zqc commented 2 years ago

Dear Dr. Maspero,

I have utilized your scFBA in my research and obtained interesting results. Thank you so much for developing such a useful tool! Now my paper is under review, but I have problems responding to some questions directly related to your method. It would be highly appreciated if you can look at these questions in your free time. First, how the nutrients uptake of the single cell metabolic system is constrained in scFBA? Second, what is the objective function of scFBA used for computing the metabolic flux? Last, is it possible to add viral biomass objective function (VBOF) in your model?

Thanks a lot for your kind support!

Best wishes. Qiuchen Zhao

DavideMaspero commented 2 years ago

Dear Dr Qiuchen Zhao,

Thanks for using our method for your analysis. I am glad to hear that you found exciting results with it. Regarding your questions:

First, you can export your metabolic model with the writeCbModel() function. In the excel file, you will find different columns. In particular, the 'Reaction' column includes the biochemical formula. Reactions with formula likes the following: metabolite[s] -> metabolite[c/m] -> indicate reactions where metabolite is secreted (removed) or uptake (added) from or into the microenvironment or the cell, respectively (In our HMRcore model, their corresponding 'Abbreviation' should start with 'Ex' or 'DM') Reactions with a formula like the following: metabolite[c] <-> metabolite[s] indicate reactions where metabolite is exchanged between the microenvironment and a cell (In our HMRcore model, their corresponding 'Abbreviation' should end with '_COOP'). The columns 'Lower bound' and 'Upper bound' specify the minimum and maximum flux for a particular reaction. Notice that negative values correspond to the reverse reaction (from metabolite on the right to left of the formula) So, you can see the value of the uptake and secretion rate and set it to determine the amount and the direction of the fluxes for the population level (s compartment) or every single cell (c or m compartments), accordingly to your needs.

Second, the default objective function is the biomass exchange ('Ex_biomass') which is directly related with the biomass production ('biomass_synthesis'). You can change it in different ways, for example usign the cobra toolbox functions 'addReaction()' and 'changeObjective()'.

Last, I don't understand very well what is your aim here, but as in the above answer, you can add or modify reactions using the cobra toolbox function. Moreover, it is possible to run scFBA starting from any metabolic model, including exchange and cooperation reactions.

I hope those suggestions may help you. Best regards, Davide Maspero

1213812138zqc commented 2 years ago

Dear Dr. Maspero,

Always happy to hear from you.

Your comments are very useful, and I believe I understand your method more deeply. I really appreciate your kind help!

Best wishes. Qiuchen Zhao

1213812138zqc commented 2 years ago

Dear Dr. Maspero,

Thanks for responding to my previous questions. ScFBA has helped us a lot in our project, but we encountered some problems with your method. It would be much appreciated if you can look at these questions in your free time.

First, if we don't have paired bulk RNAseq to fulfill the requirement of scFBA, what kind of data should we input (or just input nothing)? Second, I can see that you use biomass exchange as an objective function when calculating metabolic fluxes in cancer cells. Do you think it is reasonable to apply this objective function to highly activated immune cells (macrophages)? Last, I am wondering why the rescaling of reactions between 0-1 is used, since the linear programming will just change all flux values proportionally, and thus some reactions will still have very high flux (proportionally) =1, and others still very low i.e. <10-6 or lower.

Thanks so much for your help!

Best wishes, Qiuchen Zhao

DavideMaspero commented 2 years ago

Dear Dr. Qiuchen Zhao,

I will reply point by point to your questions.

First, if we don't have paired bulk RNAseq to fulfill the requirement of scFBA, what kind of data should we input (or just input nothing)?

The bulk RNA is used to fix the inconsistency among the single-cell expression (e.g., the expression of a gene not detected at the single cell level but detected in bulk is imputed in the sc dataset to reduce the number of zeros). If you don't have this information, you can use a pseudo-bulk (i.e., the sum of the count/expression among all cells) as input. Of course, this approach will not correct your single-cell dataset.

Second, I can see that you use biomass exchange as an objective function when calculating metabolic fluxes in cancer cells. Do you think it is reasonable to apply this objective function to highly activated immune cells (macrophages)?

I can not answer this question directly because you have to know your system's biology. I can say that the optimization of biomass production works well in simulating fluxes in a growing population. If it is the case of your macrophages, you can use that. Please, consider that you can also set other reactions as the objective function (e.g., ATP production to account for active cell)

Last, I am wondering why the rescaling of reactions between 0-1 is used, since the linear programming will just change all flux values proportionally, and thus some reactions will still have very high flux (proportionally) =1, and others still very low i.e. <10-6 or lower.

We rescale the flux boundaries in every single cell between 10^-3 and a max value obtained after the Flux Variability computation based on the related RAS score (values normalized [0,1])

I hope my explanation can be helpful,

Best regards, Davide Maspero

1213812138zqc commented 2 years ago

Dear Dr. Maspero,

Happy to hear from you.

All of your comments are very helpful. Thanks a lot for your kind support!

Best wishes, Qiuchen Zhao