{"action":"created","issue":{"url":"https://api.github.com/repos/opencobra/cobrapy/issues/303","repository_url":"https://api.github.com/repos/opencobra/cobrapy","labels_url":"https://api.github.com/repos/opencobra/cobrapy/issues/303/labels{/name}","comments_url":"https://api.github.com/repos/opencobra/cobrapy/issues/303/comments","events_url":"https://api.github.com/repos/opencobra/cobrapy/issues/303/events","html_url":"https://github.com/opencobra/cobrapy/issues/303","id":185523769,"number":303,"title":"design / implement better management of growth media","user":{"login":"mmundy42","id":2896238,"avatar_url":"https://avatars.githubusercontent.com/u/2896238?v=3","gravatar_id":"","url":"https://api.github.com/users/mmundy42","html_url":"https://github.com/mmundy42","followers_url":"https://api.github.com/users/mmundy42/followers","following_url":"https://api.github.com/users/mmundy42/following{/other_user}","gists_url":"https://api.github.com/users/mmundy42/gists{/gist_id}","starred_url":"https://api.github.com/users/mmundy42/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmundy42/subscriptions","organizations_url":"https://api.github.com/users/mmundy42/orgs","repos_url":"https://api.github.com/users/mmundy42/repos","events_url":"https://api.github.com/users/mmundy42/events{/privacy}","received_events_url":"https://api.github.com/users/mmundy42/received_events","type":"User","site_admin":false},"labels":[{"id":18205493,"url":"https://api.github.com/repos/opencobra/cobrapy/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-10-26T22:09:19Z","updated_at":"2016-10-27T20:31:02Z","closed_at":null,"body":"I'd like to start a discussion on how to implement management of growth media. I can think of two approaches:\r\n\r\n1. Add a new method to cobra.Model that takes either a dictionary or a json file with the exchange reaction IDs and lower bound for the reaction. The method updates the exchange reactions in the model as specified in the input.\r\n2. Add a new cobra.Media object with methods to add and remove metabolites and set bound for metabolite. Add a new method to cobra.Model that takes a cobra.Media object that updates or adds exchange reactions in the model.\r\n\r\nIn either approach exchange reactions that are not in the input would have the bounds set to 0.\r\n\r\nI also think there should be a way to save media to a file so they can be shared with others.\r\n\r\nThoughts? Other ideas?"},"comment":{"url":"https://api.github.com/repos/opencobra/cobrapy/issues/comments/256760162","html_url":"https://github.com/opencobra/cobrapy/issues/303#issuecomment-256760162","issue_url":"https://api.github.com/repos/opencobra/cobrapy/issues/303","id":256760162,"user":{"login":"mmundy42","id":2896238,"avatar_url":"https://avatars.githubusercontent.com/u/2896238?v=3","gravatar_id":"","url":"https://api.github.com/users/mmundy42","html_url":"https://github.com/mmundy42","followers_url":"https://api.github.com/users/mmundy42/followers","following_url":"https://api.github.com/users/mmundy42/following{/other_user}","gists_url":"https://api.github.com/users/mmundy42/gists{/gist_id}","starred_url":"https://api.github.com/users/mmundy42/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmundy42/subscriptions","organizations_url":"https://api.github.com/users/mmundy42/orgs","repos_url":"https://api.github.com/users/mmundy42/repos","events_url":"https://api.github.com/users/mmundy42/events{/privacy}","received_events_url":"https://api.github.com/users/mmundy42/received_events","type":"User","site_admin":false},"created_at":"2016-10-27T20:31:02Z","updated_at":"2016-10-27T20:31:02Z","body":"A few more considerations:\r\n\r\n1. Some models from Thiele's lab have reactions that are boundary reactions in cobrapy but are not exchange reactions. For example, the B. theta model has 6 reactions that have only one metabolite but are not exchange reactions (DM_4HBA, DM_5DRIB, DM_AMOB, sink_chols, sink_hpyr, sink_s). \r\n2. I think there needs to be a way to store a media independent of a model. For example, we are running models for a large number of organisms from the human gut and need to apply the same media conditions to all of them.\r\n3. Media need to be independent of a compartment. For example, once we have a single species model working, we build a community model and need to apply the media to the community model which uses a different compartment at the boundary.\r\n4. There should be simple methods to add and remove a media to a model (even if under the covers it is stored in the model's notes)."}}
{"actor":{"display_login":"mmundy42"}}