1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- """
- This is free and unencumbered software released into the public domain.
- Anyone is free to copy, modify, publish, use, compile, sell, or
- distribute this software, either in source code form or as a compiled
- binary, for any purpose, commercial or non-commercial, and by any
- means.
- In jurisdictions that recognize copyright laws, the author or authors
- of this software dedicate any and all copyright interest in the
- software to the public domain. We make this dedication for the benefit
- of the public at large and to the detriment of our heirs and
- successors. We intend this dedication to be an overt act of
- relinquishment in perpetuity of all present and future rights to this
- software under copyright law.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- For more information, please refer to [http://unlicense.org]
- """
- import sys
- import os
- import pandas as pd
- MCELL_PATH = os.environ.get('MCELL_PATH', '')
- if MCELL_PATH:
- sys.path.append(os.path.join(MCELL_PATH, 'lib'))
- else:
- print("Error: variable MCELL_PATH that is used to find the mcell library was not set.")
- sys.exit(1)
- import mcell as m
- def read_species_file(file_name):
- # load the .species file as a list of pairs (mcell.Complex, int), the second item is count
- res = []
- with open(file_name, 'r') as f:
- for line in f:
- if not line.strip():
- continue
-
- items = line.split()
- assert len(items) == 2, "Invalid input file contents " + line
-
- # constructor m.Complex parses the BNGL representaion into
- # a MCell4 API representation
- # (see https://cnl.salk.edu/~ahusar/mcell4_documentation/generated/subsystem.html#complex
- cplx = m.Complex(items[0])
- res.append((cplx, str(items[1])))
-
- return res
|