lujunyan1118 / SimpleBool

A python package for simulation and analysis of dynamic Boolean network models
GNU General Public License v3.0
10 stars 5 forks source link

List index out of range #2

Open priyambial123 opened 7 years ago

priyambial123 commented 7 years ago

Hi, I could run the BoolSimulation.py for few genes. But when I run the simulation for some more genes, I get the error: List index out of range. I have mentioned rules for all the genes as well I have checked the Boolean rules specified for all the genes. Not sure why the script is throwing error for this list of genes. Kindly help me to solve the problem. I have pasted below the rules specified for each gene, please help in solving this issue. It would be of great help

DISC1 = (PCM1 and BBS4) and (MITF or GATA1 or TAL1 or EZH2 or AR or TCF3 or HNF4A or RUNX1) and not (miR124 or let7b or let7a or let7d) MITF = MITF GATA1 = GATA1 TAL1 = TAL1 and not miR377 EZH2 = EZH2 and not miR124 AR = AR and not miR124 TCF3 = TCF3 and not miR124 miR124 = EGR1 miR377 = miR377 let7b = let7b let7a = let7a let7d = let7d PCM1 = (DISC1 and BBS4) and (EGR1 or SALL4 or POU3F2 or THAP11 or HCFC1 or ZFP281 or WT1 or SOX2 or CUX1 or SIN3B or KDM5B or HOXB4 or ELK1 or TCF3 or FLI1 or HNF4A or RUNX1 or MITF) and not miR33a miR33a = miR33a EGR1 = EGR1 and not miR124 SALL4 = SALL4 POU3F2 = POU3F2 THAP11 = THAP11 HCFC1 = HCFC1 ZFP281 = ZFP281 WT1 = WT1 SOX2 = SOX2 CUX1 = CUX1 SIN3B = SIN3B KDM5B = KDM5B HOXB4 = HOXB4 ELK1 = ELK1 FLI1 = FLI1 HNF4A = HNF4A RUNX1 = RUNX1 BBS4 = (DISC1 and PCM1) and (E2F1 or GATA1 or FLI1 or MITF or ELK1 or CUX1 or KDM5B or SIN3B or GABP or EOMES or TFAP2A) and not (miR432 or miR382 or miR127 or miR377) miR432 = miR432 miR382 = miR382 miR127 = miR127 E2F1 = E2F1 and not let7a TFAP2A = TFAP2A EOMES = EOMES GABP = GABP Migration* = (DISC1 and PCM1 and BBS4) and not (miR124 or let7b or let7a or let7d or miR33a or miR432 or miR382 or miR127 or miR377)

Thank you Priya

lujunyan1118 commented 7 years ago

Hi Priya,

Sorry for the late response, I was in a vacation earlier.

It seems this is because the trailing characters used in different platforms. The script was written under Linux platform, so it works properly with files in Linux format. After I removed the blank lines in the CAC.txt file, it works well. I also updated this script to make it more robust when working with input files generated under different platforms. Now it should work properly with your input file.

Best,

Junyan

priyambial123 commented 7 years ago

Hi Junyan, Thank you for the reply. I could run the BoolSimulation.py file but couldn't run the BoolAttractor.py. I removed the blank lines in my rules.text file, but still get the error, when I run the Boolattractor.py. I also updated the scripts from github but still get the error.

I get this following error when I run the Boolattractor.py:

_IOError Traceback (most recent call last)

in () ----> 1 execfile(u'/home/JPJ/Priya_Ph.D/simple_bool/simplebool-recent/SimpleBool-master/BoolAttractor.py') /home/JPJ/Priya_Ph.D/simple_bool/simplebool-recent/SimpleBool-master/BoolAttractor.py in () 538 else: 539 para_file = 'steady.in' --> 540 INPUT = ParaParser(para_file) 541 text = open(INPUT['rules']).read() 542 ini_state = {} # define inital states of each nodes,initial state include turn_on or turn_off nodes /home/JPJ/Priya_Ph.D/simple_bool/simplebool-recent/SimpleBool-master/BoolAttractor.py in ParaParser(ParaFile) 46 } # define parameters 47 ---> 48 for each_line in open(ParaFile).readlines(): 49 para_name = each_line.split('=')[0].strip() 50 para_value = each_line.split('=')[1].strip() IOError: [Errno 2] No such file or directory: '-f'_ I have attached steady.in file and the rules.txt used for running the BoolAttractor.py. [steady.in.txt](https://github.com/lujunyan1118/SimpleBool/files/580080/steady.in.txt) [rules.txt](https://github.com/lujunyan1118/SimpleBool/files/580083/rules.txt) I am using SimpleBool in RedHat Linux 7, 64 bit system with 16GB RAM. Kindly help me to fix this problem Thank you Regards Priya
lujunyan1118 commented 7 years ago

Hi Priya,

I used your input file and could successfully run the script. I used the command: "python BoolAttractor.py steady.in.txt" under the command line.

From your error message, it seems there was something wrong with the file input.

Besides, I think your current model is too large for an attractor analysis. Some simplification of the network model is needed. Ideally, the network nodes should be less than 20. Otherwise, there will be some memory issues and the time for calculating will be extremely long. If you just want to find the attractors using synchronous updating methods, there are some more efficient tools that may handle large network as yours. https://arxiv.org/abs/0901.4448 http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0060593

Best,

Junyan

priyambial123 commented 7 years ago

Hi Junyan, Thank you for the links about finding attractors using synchronous updating methods. For running the BoolAttractor.py, should I run this script file in command line or should I rename the steady.in text file as python BoolAttractor.py steady.in.txt and then run the BoolAttractor.py file in the command line? I am sorry, I have recently started to use Python, so I am not able to understand the mistake that I am doing when I run this BoolAttractor script.

Thank you Regards Priya

lujunyan1118 commented 7 years ago

I suggest run it in the command line. But "python BoolAttractor.py steady.in.txt" is not the file name. It's the command that you need to type in the command line. Or you can also rename the steady.in.txt to steady.in and run the script directly.

Best,

Junyan

priyambial123 commented 7 years ago

Hi Junyan, As you have suggested I ran the command "python BoolAttractor.py steady.in.txt" in the command line, but I got an error: ERROR: File u'python.py' not found. I also tried by changing the steady.in.txt file as steady.in, still get the index error. Not sure about the problem, so I also tried running the steady.in and CAC.txt files in the command line. I have pasted the errors below that I get when running the text files. Am I specifying something wrong in the text files? Pls help me to solve the issue.

I ran the CAC.txt (rules) file in the command line using the command "run CAC.txt", I got this error:

_File "/home/JPJ/Priya_Ph.D/simple_bool/simplebool-recent/SimpleBool-master/Untitled Folder/CAC.txt", line 1 DISC1* = (PCM1 and BBS4) or (MITF) or (GATA1) or (TAL1) or (EZH2) or (AR) or (TCF3) or (HNFA) or ^ (RUNX1) or not (miR124) or not (let7b) or not (let7a) or not (let7d)

SyntaxError: invalid syntax_

When I ran the steady.in.txt file using the commnd " run steady.in.txt", I got this error:

_NameError Traceback (most recent call last) /home/JPJ/Priya_Ph.D/simple_bool/simplebool-recent/SimpleBool-master/Untitled Folder/steady.in.txt in () ----> 1 rules = CAC.txt 2 turn_on = DISC1 3 turn_off = PCM1 4 ini_on = DISC1, PCM1, BBS4 5 ini_off = Migration

NameError: name 'CAC' is not defined_

I have attached the CAC.txt file and steady.in.txt file along with this mail.Pls find it. It would be great help, if you help me to run the BoolAttractor.py script, as I have a manuscript for which the attractor analysis is pending. I can use the proceed with the analysis and start the interpretation part for my paper

Thank you Regards Priya CAC.txt steady.in.txt

lujunyan1118 commented 7 years ago

Hi,

"run CAC.txt" and "run steady.in" are not the correct way to run the script...

"python BoolAttractor.py steady.in.txt" or "python BoolAttractor.py steady.in" (depends on your input file name) is the correct way. Are you sure your python is correctly installed in a linux environment ? It seems the system couldn't find the python program.

Another way is to rename the steady.in.txt to steady.in, and directly execute the BoolAttractor.py. Bure steady.in and BoolAttractor.py are in the same folder.

Best,

Junyan

priyambial123 commented 7 years ago

Hi Junyan,                  I have installed Python 2.7 in Canopy. Does directly executing the BoolAttractory.py mean copying the entire script. paste in the command line and run it?Thank youRegardsPriya  

On Monday, 21 November 2016 2:22 PM, Junyan Lu <notifications@github.com> wrote:

Hi,"run CAC.txt" and "run steady.in" are not the correct way to run the script..."python BoolAttractor.py steady.in.txt" or "python BoolAttractor.py steady.in" (depends on your input file name) is the correct way. Are you sure your python is correctly installed in a linux environment ? It seems the system couldn't find the python program.Another way is to rename the steady.in.txt to steady.in, and directly execute the BoolAttractor.py. Bure steady.in and BoolAttractor.py are in the same folder.Best,Junyan— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

priyambial123 commented 7 years ago

Hi Junyan, As I am not able to still execute the BoolAttractor.py script, I have attached files about the system information. Pls find it After changing the name of steady.in.txt file to steady.in, when I run this code -python BoolAttractor.py steady.in, I get this error message. File "", line 1 python BoolAttractor.py steady.in ^ SyntaxError: invalid syntax

I had some error in the CAC and steady in file text that I created. Now I have made the changes and attached the text files along with this mail. I am have also attached the system information. Pls find it

Any insight about the error could be of great help.

Thank you Regards Priya CAC.txt steady.in.txt sys_info.txt

lujunyan1118 commented 7 years ago

How did you run the python command?

Type "python BoolAttractor.py steady.in" directly in the linux command line (just like running any linux program in the command line). This will call python program in linux and pass steady.in to python as a parameter. Do not type "python BoolAttractor.py steady.in" in the Canopy command line or Python command line.

priyambial123 commented 7 years ago

Hi Junyan, Now the BoolAttractor.py script is running in the linux command line. It has been running from Saturday evening. The system has 16GB RAM. Does it usually take so long for running the BoolAttractor.py script? Thank you Regards Priya

lujunyan1118 commented 7 years ago

Yes, identifying attractors, especially when using asynchronous method, can be very computational intensive. If you want to identify all the attractor, the node number of the network should be reduced to less than 20.

priyambial123 commented 7 years ago

Hi Junyan, As you have suggested I ran the entire script (BoolAttractor.py) in the linux terminal. This time I have only 4 nodes and the mode is asynchronous mode and the script is running for 2 weeks. I have attached the input file (sample.txt), steady.in file along with this mail.Pls find it. I have also attached the script that has been running in the terminal (script.txt).Pls find it sample.txt steady.in.txt. [script.txt](https://github.com/lujunyan1118/SimpleBool/files/670240/script.txt

Is there any way to reduce the computation time and identify the attractors? Any suggestions, would of great help. Thank you.

Wishing you a very Happy Christmas

Regards Priya