Repository 'gap_all_glycan_tools'
hg clone https://toolshed.g2.bx.psu.edu/repos/chrisb/gap_all_glycan_tools

Changeset 1:0a5e0df17054 (2016-05-06)
Previous changeset 0:89592faa2875 (2016-03-23)
Commit message:
Uploaded
modified:
get_data/kegg_glycan/README_KEGG.md
get_data/kegg_glycan/findKEGG.py
get_data/kegg_glycan/findKEGG.xml
get_data/kegg_glycan/linkKEGG.py
get_data/kegg_glycan/linkKEGG.xml
get_data/kegg_glycan/test_findKEGG.py
get_data/kegg_glycan/test_linkKEGG.py
added:
get_data/cfg_array/.README_CFG_array.md.swp
get_data/kegg_glycan/.idea/kegg_glycan.iml
get_data/kegg_glycan/.idea/misc.xml
get_data/kegg_glycan/.idea/modules.xml
get_data/kegg_glycan/.idea/workspace.xml
get_data/kegg_glycan/2
get_data/kegg_glycan/KEGGnotes.md
get_data/kegg_glycan/db.output
get_data/kegg_glycan/findKEGG.pyc
get_data/kegg_glycan/found_entries.txt
get_data/kegg_glycan/getkcfKEGG.pyc
get_data/kegg_glycan/kcf.output
get_data/kegg_glycan/linkKEGG.pyc
get_data/kegg_glycan/linked_entries.txt
get_data/kegg_glycan/plus
get_data/kegg_glycan/test-data/shiga-toxin-example-AND
get_data/kegg_glycan/test-data/shiga-toxin-example-AND-broken
get_data/kegg_glycan/test-data/shiga-toxin-example-OR
get_data/kegg_glycan/test-data/shiga-toxin-example-OR-broken
get_data/kegg_glycan/test_findKEGG.pyc
get_data/kegg_glycan/test_getkcfKEGG.pyc
get_data/kegg_glycan/test_linkKEGG.pyc
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/cfg_array/.README_CFG_array.md.swp
b
Binary file get_data/cfg_array/.README_CFG_array.md.swp has changed
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/.idea/kegg_glycan.iml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/.idea/kegg_glycan.iml Fri May 06 08:05:48 2016 -0400
b
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+  <component name="TestRunnerService">
+    <option name="projectConfiguration" value="Nosetests" />
+    <option name="PROJECT_TEST_RUNNER" value="Nosetests" />
+  </component>
+</module>
\ No newline at end of file
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/.idea/misc.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/.idea/misc.xml Fri May 06 08:05:48 2016 -0400
b
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
+    <OptionsSetting value="true" id="Add" />
+    <OptionsSetting value="true" id="Remove" />
+    <OptionsSetting value="true" id="Checkout" />
+    <OptionsSetting value="true" id="Update" />
+    <OptionsSetting value="true" id="Status" />
+    <OptionsSetting value="true" id="Edit" />
+    <ConfirmationsSetting value="0" id="Add" />
+    <ConfirmationsSetting value="0" id="Remove" />
+  </component>
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7.5 (/usr/bin/python2.7)" project-jdk-type="Python SDK" />
+</project>
\ No newline at end of file
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/.idea/modules.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/.idea/modules.xml Fri May 06 08:05:48 2016 -0400
b
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/kegg_glycan.iml" filepath="$PROJECT_DIR$/.idea/kegg_glycan.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/.idea/workspace.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/.idea/workspace.xml Fri May 06 08:05:48 2016 -0400
b
b'@@ -0,0 +1,477 @@\n+<?xml version="1.0" encoding="UTF-8"?>\n+<project version="4">\n+  <component name="ChangeListManager">\n+    <list default="true" id="f9cd5c5d-2d50-4e30-b473-a89d14fa8c92" name="Default" comment="" />\n+    <ignored path="kegg_glycan.iws" />\n+    <ignored path=".idea/workspace.xml" />\n+    <ignored path=".idea/dataSources.local.xml" />\n+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />\n+    <option name="TRACKING_ENABLED" value="true" />\n+    <option name="SHOW_DIALOG" value="false" />\n+    <option name="HIGHLIGHT_CONFLICTS" value="true" />\n+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />\n+    <option name="LAST_RESOLUTION" value="IGNORE" />\n+  </component>\n+  <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />\n+  <component name="CoverageDataManager">\n+    <SUITE FILE_PATH="coverage/kegg_glycan$Nosetest_SimpleUnitTest_test_bad_db.coverage" NAME="Nosetest SimpleUnitTest.test_bad_db Coverage Results" MODIFIED="1462440058620" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />\n+    <SUITE FILE_PATH="coverage/kegg_glycan$Nosetests_in_test_findKEGG.coverage" NAME="Nosetests in test_findKEGG Coverage Results" MODIFIED="1462439970167" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />\n+    <SUITE FILE_PATH="coverage/kegg_glycan$Nosetest_SimpleUnitTest_test_unfindable_entry.coverage" NAME="Nosetest SimpleUnitTest.test_unfindable_entry Coverage Results" MODIFIED="1462440121507" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />\n+  </component>\n+  <component name="CreatePatchCommitExecutor">\n+    <option name="PATCH_PATH" value="" />\n+  </component>\n+  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />\n+  <component name="FavoritesManager">\n+    <favorites_list name="kegg_glycan" />\n+  </component>\n+  <component name="FileEditorManager">\n+    <leaf>\n+      <file leaf-file-name="test_findKEGG.py" pinned="false" current-in-tab="true">\n+        <entry file="file://$PROJECT_DIR$/test_findKEGG.py">\n+          <provider selected="true" editor-type-id="text-editor">\n+            <state relative-caret-position="255">\n+              <caret line="45" column="22" selection-start-line="45" selection-start-column="22" selection-end-line="45" selection-end-column="22" />\n+              <folding />\n+            </state>\n+          </provider>\n+        </entry>\n+      </file>\n+    </leaf>\n+  </component>\n+  <component name="IdeDocumentHistory">\n+    <option name="CHANGED_PATHS">\n+      <list>\n+        <option value="$PROJECT_DIR$/test_findKEGG.py" />\n+      </list>\n+    </option>\n+  </component>\n+  <component name="JsBuildToolGruntFileManager" detection-done="true" />\n+  <component name="JsBuildToolPackageJson" detection-done="true" />\n+  <component name="JsGulpfileManager">\n+    <detection-done>true</detection-done>\n+  </component>\n+  <component name="ProjectFrameBounds">\n+    <option name="x" value="-1" />\n+    <option name="y" value="28" />\n+    <option name="width" value="1922" />\n+    <option name="height" value="1019" />\n+  </component>\n+  <component name="ProjectLevelVcsManager" settingsEditedManually="false">\n+    <OptionsSetting value="true" id="Add" />\n+    <OptionsSetting value="true" id="Remove" />\n+    <OptionsSetting value="true" id="Checkout" />\n+    <OptionsSetting value="true" id="Update" />\n+    <OptionsSetting value="true" id="Status" />\n+    <OptionsSetting value="true" id="Edit" />\n+    <ConfirmationsSetting value="0" id="Add" />\n+    <ConfirmationsSetting value="0" id="Remove" />\n+  </component>\n+  <component na'..b'OCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />\n+      <window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.5749168" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />\n+      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />\n+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />\n+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />\n+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />\n+      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />\n+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />\n+      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />\n+      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />\n+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />\n+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />\n+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />\n+    </layout>\n+  </component>\n+  <component name="Vcs.Log.UiProperties">\n+    <option name="RECENTLY_FILTERED_USER_GROUPS">\n+      <collection />\n+    </option>\n+    <option name="RECENTLY_FILTERED_BRANCH_GROUPS">\n+      <collection />\n+    </option>\n+  </component>\n+  <component name="VcsContentAnnotationSettings">\n+    <option name="myLimit" value="2678400000" />\n+  </component>\n+  <component name="XDebuggerManager">\n+    <breakpoint-manager />\n+    <watches-manager />\n+  </component>\n+  <component name="editorHistoryManager">\n+    <entry file="file://$PROJECT_DIR$/test_findKEGG.py">\n+      <provider selected="true" editor-type-id="text-editor">\n+        <state relative-caret-position="255">\n+          <caret line="45" column="22" selection-start-line="45" selection-start-column="22" selection-end-line="45" selection-end-column="22" />\n+          <folding />\n+        </state>\n+      </provider>\n+    </entry>\n+  </component>\n+</project>\n\\ No newline at end of file\n'
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/2 Fri May 06 08:05:48 2016 -0400
b
@@ -0,0 +1,54 @@
+
+from KEGG searches as follows should work
+
+
+/find/genes/shiga+toxin    for keywords "shiga" and "toxin"
+/find/genes/"shiga toxin"    for keywords "shiga toxin"
+
+these do not function on all databases esp. enzyme
+
+http://rest.kegg.jp/find/enzyme/deoxy+1.1.1 AND works
+http://rest.kegg.jp/find/enzyme/"deoxy%201.1.1" OR does not work
+http://rest.kegg.jp/find/enzyme/"deoxy 1.1.1" OR does not work
+
+0
+http://rest.kegg.jp/find/enzyme/ec:2.4.99.1+ec:2.4.99.6 AND works but return nothing as no overlap
+http://rest.kegg.jp/find/enzyme/"ec:2.4.99.1 ec:2.4.99.6" OR doesn't work
+http://rest.kegg.jp/find/enzyme/ec:2.4.99.  works
+
+ ../../../virtualpy/bin/python findKEGG.py  -d enzyme -q 2.4.99.1+2.4.99.6 . works but return None in python. which breaks file writing. rather fix this.
+
+
+
+
+
+# updated notes on KEGG behaviour
+
+True for release  Release 78.0+/05-05, May 16 (see http://rest.kegg.jp/info/genes)
+
+multiple complex queries are not recommended.
+
+Using the shiga toxin example from http://www.genome.jp/kegg/rest/keggapi.html
+/find/genes/shiga+toxin    for keywords "shiga" and "toxin"
+/find/genes/"shiga toxin"    for keywords "shiga toxin"
+
+## AND example
+/find/genes/shiga+toxin    for keywords "shiga" and "toxin"
+http://rest.kegg.jp/find/genes/shiga+toxin
+
+## OR example
+/find/genes/"shiga toxin"    for keywords "shiga toxin"
+http://rest.kegg.jp/find/genes/"shiga%20toxin"
+
+## BROKEN AND
+http://rest.kegg.jp/find/genes/"shiga+toxin"
+If query is in put in quotes.
+ this result is the same as OR.
+
+## BROKEN OR
+http://rest.kegg.jp/find/genes/shiga%20toxin
+If query is not placed in quotations.
+ this result is the same as AND.
+
+# Recommendation 
+Do not combine AND with OR queries
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/KEGGnotes.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/KEGGnotes.md Fri May 06 08:05:48 2016 -0400
b
@@ -0,0 +1,51 @@
+
+# notes on KEGG behaviour
+
+Tested with  Release 78.0+/05-05, May 16 (see http://rest.kegg.jp/info/genes)
+
+*Recommendation 1 - Do not combine AND with OR queries*
+multiple complex queries are not recommended.
+
+*OR's on certain db's e.g. glycan, enzyme do not always return correctly*
+
+## Shiga toxin behaviour test
+Using the shiga toxin example from http://www.genome.jp/kegg/rest/keggapi.html
+/find/genes/shiga+toxin    for keywords "shiga" and "toxin"
+/find/genes/"shiga toxin"    for keywords "shiga toxin"
+
+results in test-data
+ - test-data/shiga-toxin-example-AND
+ - test-data/shiga-toxin-example-AND-broken
+ - test-data/shiga-toxin-example-OR
+ - test-data/shiga-toxin-example-OR-broken
+
+
+### AND example
+/find/genes/shiga+toxin    for keywords "shiga" and "toxin"
+http://rest.kegg.jp/find/genes/shiga+toxin
+
+### OR example
+/find/genes/"shiga toxin"    for keywords "shiga toxin"
+http://rest.kegg.jp/find/genes/"shiga%20toxin"
+
+### BROKEN AND
+http://rest.kegg.jp/find/genes/"shiga+toxin"
+If query is in put in quotes.
+ this result is the same as OR.
+
+### BROKEN OR
+http://rest.kegg.jp/find/genes/shiga%20toxin
+If query is not placed in quotations.
+ this result is the same as AND.
+
+## Enzyme tests
+
+http://rest.kegg.jp/find/enzyme/deoxy+1.1.1 AND works
+http://rest.kegg.jp/find/enzyme/"deoxy%201.1.1" OR does not work
+http://rest.kegg.jp/find/enzyme/"deoxy 1.1.1" OR does not work
+
+0
+http://rest.kegg.jp/find/enzyme/ec:2.4.99.1+ec:2.4.99.6 AND works but return nothing as no overlap
+http://rest.kegg.jp/find/enzyme/"ec:2.4.99.1 ec:2.4.99.6" OR doesn't work
+http://rest.kegg.jp/find/enzyme/ec:2.4.99.  works
+
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/README_KEGG.md
--- a/get_data/kegg_glycan/README_KEGG.md Wed Mar 23 14:35:56 2016 -0400
+++ b/get_data/kegg_glycan/README_KEGG.md Fri May 06 08:05:48 2016 -0400
[
@@ -20,6 +20,9 @@
 findKEGG.py -d $dbname -q $searchpattern -o $output
 ```
 
+## Known Issues
+Yes, the and/or functionality of the KEGG rest API (Release 78.0+/05-05, May 16 ) does not always function as expected. This has been resolved in the code. More details,  [KEGGnotes.md ](KEGGnotes.md)
+
 ## Help
 ```
 ../../virtualpy/bin/activate
@@ -31,7 +34,7 @@
 
 ```
 ../../virtualpy/bin/activate
-python  test_findKEGG.py
+nosetests  test_findKEGG.py
 ```
 
 # 2. getkcfKEGG,py
@@ -67,7 +70,7 @@
 
 ```
 ../../virtualpy/bin/activate
-python  test_getkcfKEGG.py
+nosetests  test_getkcfKEGG.py
 ```
 
 # 3. linkKEGG.py
@@ -101,6 +104,6 @@
 
 ```
 ../../virtualpy/bin/activate
-python  test_linkKEGG.py
+nosetests  test_linkKEGG.py
 ```
 
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/db.output
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/db.output Fri May 06 08:05:48 2016 -0400
b
@@ -0,0 +1,83 @@
+ENTRY       G10495                      Glycan
+NAME        1,4-alpha-D-Glucan;
+            1,4-alpha-Glucan;
+            Amylose;
+            Maltodextrin
+COMPOSITION (Glc)1 (*)2
+CLASS       Polysaccharide
+REMARK      Same as: C00718 C01935 D02329
+REACTION    R06049 R06050 R06051 R06052 R06069 R06158 R06159 R06160 
+            R06184 R06185 R06186 R06243
+ENZYME      2.4.1.1         2.4.1.2         2.4.1.4         2.4.1.11        
+            2.4.1.18        2.4.1.21        2.4.1.25        3.2.1.2         
+            3.2.1.33        3.2.1.54        5.4.99.15
+DBLINKS     GlycomeDB: 12100
+NODE        3
+            1   *           8     0
+            2   Glc         0     0
+            3   *          -8     0
+EDGE        2
+            1     2:a1    1    
+            2     3       2:4  
+BRACKET     1  -4.0   2.0  -4.0  -2.0
+            1   5.0  -2.0   5.0   2.0
+            1 n
+///
+ENTRY       G10608                      Glycan
+NAME        UDP-D-glucose;
+            UDP-glucose;
+            Uridine diphosphate glucose
+COMPOSITION (UDP-Glc)1
+REMARK      Same as: C00029
+REACTION    R06020 R06023 R06036 R06043 R06045 R06051 R06062 R06073 
+            R06181 R06226 R06275 R09315 R09316
+ENZYME      2.4.1.11        2.4.1.12        2.4.1.13        2.4.1.14        
+            2.4.1.15        2.4.1.34        2.4.1.53        2.4.1.80        
+            2.4.1.183       2.4.1.188       2.4.1.-
+NODE        1
+            1   UDP-Glc  -0.3     0
+EDGE        0
+///
+ENTRY       G10619                      Glycan
+NAME        UDP;
+            Uridine 5'-diphosphate
+COMPOSITION (UDP)1
+REMARK      Same as: C00015
+REACTION    R05901 R05902 R05903 R05907 R05908 R05909 R05910 R05912 
+            R05915 R05916 R05925 R05926 R05927 R05928 R05929 R05930 
+            R05931 R05932 R05933 R05934 R05935 R05936 R05938 R05939 
+            R05941 R05946 R05948 R05952 R05953 R05956 R05960 R05962 
+            R05964 R05965 R05970 R05971 R05974 R05975 R05977 R05978 
+            R05983 R05985 R05986 R05987 R05989 R05991 R05992 R06006 
+            R06011 R06013 R06014 R06016 R06020 R06021 R06023 R06028 
+            R06029 R06033 R06036 R06043 R06045 R06051 R06055 R06062 
+            R06067 R06068 R06072 R06073 R06083 R06097 R06129 R06130 
+            R06145 R06167 R06168 R06169 R06172 R06173 R06174 R06181 
+            R06182 R06187 R06189 R06190 R06191 R06192 R06193 R06197 
+            R06198 R06210 R06214 R06226 R06234 R06275 R06276 R06277 
+            R06278 R07131 R07609 R07610 R07611 R07614 R07615 R07616 
+            R07617 R07619 R07621 R07622 R07623 R07624 R07625 R07628 
+            R09290 R09296 R09299 R09304 R09315 R09316 R09320 R10138 
+            R10139
+ENZYME      2.4.1.11        2.4.1.12        2.4.1.13        2.4.1.14        
+            2.4.1.15        2.4.1.16        2.4.1.22        2.4.1.34        
+            2.4.1.37        2.4.1.38        2.4.1.40        2.4.1.41        
+            2.4.1.43        2.4.1.45        2.4.1.47        2.4.1.53        
+            2.4.1.62        2.4.1.70        2.4.1.79        2.4.1.80        
+            2.4.1.86        2.4.1.87        2.4.1.88        2.4.1.90        
+            2.4.1.92        2.4.1.101       2.4.1.102       2.4.1.122       
+            2.4.1.123       2.4.1.133       2.4.1.134       2.4.1.135       
+            2.4.1.138       2.4.1.141       2.4.1.143       2.4.1.144       
+            2.4.1.145       2.4.1.146       2.4.1.147       2.4.1.148       
+            2.4.1.149       2.4.1.150       2.4.1.155       2.4.1.163       
+            2.4.1.164       2.4.1.165       2.4.1.167       2.4.1.174       
+            2.4.1.175       2.4.1.183       2.4.1.187       2.4.1.188       
+            2.4.1.198       2.4.1.201       2.4.1.206       2.4.1.212       
+            2.4.1.222       2.4.1.223       2.4.1.224       2.4.1.225       
+            2.4.1.226       2.4.1.227       2.4.1.228       2.4.1.244       
+            2.4.1.255       2.4.1.274       2.4.1.275       2.4.1.-         
+            2.4.2.24        2.4.2.26        2.4.2.38        2.4.2.-
+NODE        1
+            1   UDP      -0.4   0.3
+EDGE        0
+///
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/findKEGG.py
--- a/get_data/kegg_glycan/findKEGG.py Wed Mar 23 14:35:56 2016 -0400
+++ b/get_data/kegg_glycan/findKEGG.py Fri May 06 08:05:48 2016 -0400
[
@@ -1,6 +1,6 @@
 __author__ = 'cbarnett'
 __license__ = "MIT"
-__version__ = "0.3"
+__version__ = "0.4"
 # http://www.kegg.jp/kegg/rest/keggapi.html
 
 
@@ -16,8 +16,18 @@
         raise IOError("no db given")
     if query == [] or query == "" or query is None:
         raise IOError("no query given")
-    query = query.replace('\n', ' ')  # in case of new lines
-    query = query.replace('\r', ' ')  # in case of new lines
+    query = query.replace('\n', '+')  # in case of new lines, assume this means the user want to "AND"
+    query = query.replace('\r', '+')  # in case of new lines, assume this means the user want to "AND"
+    query = query.replace('ec: ', 'ec:')  # in case of ec: spaces - e.g. issue "ec: 2.4.99.1" spaces are ok usually as allows for combination searching "2.4.99.1 2.4.99.6"
+    
+    import re
+    p = re.compile(' *\+ *') # ensure no unneccesary space in an AND query, otherwise incorrect behaviour from KEGG
+    queryfix = p.subn('+', query)
+    query=queryfix[0]
+
+    if ' ' in query:
+        query='"'+query+'"' # if spaces, query must be placed in quotes, otherwise incorrect behaviour from KEGG
+    query = query.replace(' ', '%20')  # previous behaviour was ignoring text after a space, rather convert to '%20' and pass on to KEGG REST service
     uri = 'http://rest.kegg.jp/find/'
     fulluri = uri + db + "/" + query
     try:
@@ -25,7 +35,7 @@
     except Exception as e:
         raise urllib2.HTTPError(e.url, e.code, e.msg, e.hdrs, e.fp)
     if str(response.strip()) == "":
-        return None
+        return "" # change return from None to "" for easily writing to file
     return response
 
 
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/findKEGG.pyc
b
Binary file get_data/kegg_glycan/findKEGG.pyc has changed
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/findKEGG.xml
--- a/get_data/kegg_glycan/findKEGG.xml Wed Mar 23 14:35:56 2016 -0400
+++ b/get_data/kegg_glycan/findKEGG.xml Fri May 06 08:05:48 2016 -0400
b
@@ -1,4 +1,4 @@
-<tool id="glytools_kegg_find" name="GAP Find KEGG glycans " version="0.3.1">
+<tool id="glytools_kegg_find" name="GAP Find KEGG glycans " version="0.4.0">
     <description> using the KEGG  database</description>
     <requirements>
         <requirement type="package" version="1.0">python_for_glycan_tools</requirement>
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/found_entries.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/found_entries.txt Fri May 06 08:05:48 2016 -0400
[
@@ -0,0 +1,19 @@
+ec:1.1.1.133 dTDP-4-dehydrorhamnose reductase; dTDP-4-keto-L-rhamnose reductase; dTDP-4-ketorhamnose reductase; TDP-4-keto-rhamnose reductase; thymidine diphospho-4-ketorhamnose reductase; dTDP-6-deoxy-L-mannose:NADP+ 4-oxidoreductase; dTDP-6-deoxy-beta-L-mannose:NADP+ 4-oxidoreductase
+ec:1.1.1.340 1-deoxy-11beta-hydroxypentalenate dehydrogenase; 1-deoxy-11beta-hydroxypentalenic acid dehydrogenase; ptlF (gene name); penF (gene name)
+ec:1.14.11.35 1-deoxypentalenic acid 11beta-hydroxylase; ptlH (gene name); sav2991 (gene name); pntH (gene name)
+ec:2.3.1.202 UDP-4-amino-4,6-dideoxy-N-acetyl-beta-L-altrosamine N-acetyltransferase; PseH
+ec:2.4.1.27 DNA beta-glucosyltransferase; T4-HMC-beta-glucosyl transferase; T4-beta-glucosyl transferase; T4 phage beta-glucosyltransferase; UDP glucose-DNA beta-glucosyltransferase; uridine diphosphoglucose-deoxyribonucleate beta-glucosyltransferase
+ec:2.4.1.28 glucosyl-DNA beta-glucosyltransferase; T6-glucosyl-HMC-beta-glucosyl transferase; T6-beta-glucosyl transferase; uridine diphosphoglucose-glucosyldeoxyribonucleate beta-glucosyltransferase
+ec:2.4.1.335 dolichyl N-acetyl-alpha-D-glucosaminyl phosphate 3-beta-D-2,3-diacetamido-2,3-dideoxy-beta-D-glucuronosyltransferase; AglC; UDP-Glc-2,3-diNAcA glycosyltransferase
+ec:2.6.1.87 UDP-4-amino-4-deoxy-L-arabinose aminotransferase; UDP-(beta-L-threo-pentapyranosyl-4''-ulose diphosphate) aminotransferase; UDP-4-amino-4-deoxy-L-arabinose---oxoglutarate aminotransferase; UDP-Ara4O aminotransferase; UDP-L-Ara4N transaminase
+ec:2.6.1.92 UDP-4-amino-4,6-dideoxy-N-acetyl-beta-L-altrosamine transaminase; PseC
+ec:2.7.7.7 DNA-directed DNA polymerase; DNA polymerase I; DNA polymerase II; DNA polymerase III; DNA polymerase alpha; DNA polymerase beta; DNA polymerase gamma; DNA nucleotidyltransferase (DNA-directed); DNA nucleotidyltransferase (DNA-directed); deoxyribonucleate nucleotidyltransferase; deoxynucleate polymerase; deoxyribonucleic acid duplicase; deoxyribonucleic acid polymerase; deoxyribonucleic duplicase; deoxyribonucleic polymerase; deoxyribonucleic polymerase I; DNA duplicase; DNA nucleotidyltransferase; DNA polymerase; DNA replicase; DNA-dependent DNA polymerase; duplicase; Klenow fragment; sequenase; Taq DNA polymerase; Taq Pol I; Tca DNA polymerase
+ec:3.1.6.9 chondro-4-sulfatase; chondroitin-4-sulfatase; 4-deoxy-beta-D-gluc-4-enuronosyl-(1,3)-N-acetyl-D-galactosamine-4-sulfate 4-sulfohydrolase
+ec:3.1.6.10 chondro-6-sulfatase; 4-deoxy-beta-D-gluc-4-enuronosyl-(1,3)-N-acetyl-D-galactosamine-6-sulfate 6-sulfohydrolase
+ec:3.2.1.52 beta-N-acetylhexosaminidase; hexosaminidase; beta-acetylaminodeoxyhexosidase; N-acetyl-beta-D-hexosaminidase; N-acetyl-beta-hexosaminidase; beta-hexosaminidase; beta-acetylhexosaminidinase; beta-D-N-acetylhexosaminidase; beta-N-acetyl-D-hexosaminidase; beta-N-acetylglucosaminidase; hexosaminidase A; N-acetylhexosaminidase; beta-D-hexosaminidase
+ec:3.2.1.92 peptidoglycan beta-N-acetylmuramidase; exo-beta-N-acetylmuramidase; exo-beta-acetylmuramidase; beta-2-acetamido-3-O-(D-1-carboxyethyl)-2-deoxy-D-glucoside acetamidodeoxyglucohydrolase
+ec:3.2.1.96 mannosyl-glycoprotein endo-beta-N-acetylglucosaminidase; N,N'-diacetylchitobiosyl beta-N-acetylglucosaminidase; endo-beta-N-acetylglucosaminidase; mannosyl-glycoprotein endo-beta-N-acetylglucosamidase; di-N-acetylchitobiosyl beta-N-acetylglucosaminidase; endo-beta-acetylglucosaminidase; endo-beta-(1->4)-N-acetylglucosaminidase; mannosyl-glycoprotein 1,4-N-acetamidodeoxy-beta-D-glycohydrolase; endoglycosidase S; endo-N-acetyl-beta-D-glucosaminidase; endo-N-acetyl-beta-glucosaminidase; endo-beta-N-acetylglucosaminidase D; endo-beta-N-acetylglucosaminidase F; endo-beta-N-acetylglucosaminidase H; endo-beta-N-acetylglucosaminidase L; glycopeptide-D-mannosyl-4-N-(N-acetyl-D-glucosaminyl)2-asparagine 1,4-N-acetyl-beta-glucosaminohydrolase; endoglycosidase H
+ec:3.5.1.105 chitin disaccharide deacetylase; chitobiose amidohydolase; COD; chitin oligosaccharide deacetylase; chitin oligosaccharide amidohydolase; 2-(acetylamino)-4-O-[2-(acetylamino)-2-deoxy-beta-D-glucopyranosyl]-2-deoxy-D-glucopyranose acetylhydrolase
+ec:3.6.1.57 UDP-2,4-diacetamido-2,4,6-trideoxy-beta-L-altropyranose hydrolase; PseG; UDP-6-deoxy-AltdiNAc hydrolase; Cj1312; UDP-2,4-bis(acetamido)-2,4,6-trideoxy-beta-L-altropyranose hydrolase
+ec:4.1.2.20 2-dehydro-3-deoxyglucarate aldolase; 2-keto-3-deoxyglucarate aldolase; alpha-keto-beta-deoxy-D-glucarate aldolase; 2-dehydro-3-deoxy-D-glucarate tartronate-semialdehyde-lyase; 2-dehydro-3-deoxy-D-glucarate tartronate-semialdehyde-lyase (pyruvate-forming)
+ec:4.2.1.115 UDP-N-acetylglucosamine 4,6-dehydratase (configuration-inverting); FlaA1; UDP-N-acetylglucosamine 5-inverting 4,6-dehydratase; PseB; UDP-N-acetylglucosamine hydro-lyase (inverting; UDP-2-acetamido-2,6-dideoxy-beta-L-arabino-hex-4-ulose-forming)
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/getkcfKEGG.pyc
b
Binary file get_data/kegg_glycan/getkcfKEGG.pyc has changed
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/kcf.output
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/kcf.output Fri May 06 08:05:48 2016 -0400
b
@@ -0,0 +1,22 @@
+ENTRY       G10495                      Glycan
+NODE        3
+            1   *           8     0
+            2   Glc         0     0
+            3   *          -8     0
+EDGE        2
+            1     2:a1    1    
+            2     3       2:4  
+BRACKET     1  -4.0   2.0  -4.0  -2.0
+            1   5.0  -2.0   5.0   2.0
+            1 n
+///
+ENTRY       G10608                      Glycan
+NODE        1
+            1   UDP-Glc  -0.3     0
+EDGE        0
+///
+ENTRY       G10619                      Glycan
+NODE        1
+            1   UDP      -0.4   0.3
+EDGE        0
+///
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/linkKEGG.py
--- a/get_data/kegg_glycan/linkKEGG.py Wed Mar 23 14:35:56 2016 -0400
+++ b/get_data/kegg_glycan/linkKEGG.py Fri May 06 08:05:48 2016 -0400
[
@@ -1,6 +1,6 @@
 __author__ = 'cbarnett'
 __license__ = "MIT"
-__version = "0.3"
+__version = "0.3.1"
 # http://www.kegg.jp/kegg/rest/keggapi.html
 
 
@@ -13,6 +13,15 @@
     import urllib2
 
     uri = 'http://rest.kegg.jp/link/'
+
+    import re
+    p = re.compile(' *\+ *') # ensure no unneccessary space in an AND query
+    sdbfix = p.subn('+', sourcedb)
+    sourcedb=sdbfix[0]
+
+    if ' ' in sourcedb:
+        sourcedb = sourcedb.replace(' ', '%20')  # previous behaviour was ignoring text after a space, rather convert to '%20' and pass on to KEGG REST service
+
     fulluri = uri + targetdb + "/" + sourcedb
     try:
         response = urllib2.urlopen(fulluri).read()
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/linkKEGG.pyc
b
Binary file get_data/kegg_glycan/linkKEGG.pyc has changed
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/linkKEGG.xml
--- a/get_data/kegg_glycan/linkKEGG.xml Wed Mar 23 14:35:56 2016 -0400
+++ b/get_data/kegg_glycan/linkKEGG.xml Fri May 06 08:05:48 2016 -0400
b
@@ -1,4 +1,4 @@
-<tool id="glytools_kegg_link" name="GAP Cross-reference with KEGG databases " version="0.3.1">
+<tool id="glytools_kegg_link" name="GAP Cross-reference with KEGG databases " version="0.3.2">
     <description> searches KEGG for related database entries</description>
     <requirements>
         <requirement type="package" version="1.0">python_for_glycan_tools</requirement>
@@ -34,7 +34,7 @@
  <tests>
     <test>
       <param name="targetdb" value="glycan" />
-      <param name="source" value="ec:2.4.1.11"" />
+      <param name="source" value="ec:2.4.1.11" />
       <output name="output" file="link_test1.txt" />     
   </test>
   </tests>
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/plus
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/plus Fri May 06 08:05:48 2016 -0400
[
@@ -0,0 +1,21 @@
+ec:1.1.1.125 2-deoxy-D-gluconate 3-dehydrogenase; 2-deoxygluconate dehydrogenase
+ec:1.1.1.126 2-dehydro-3-deoxy-D-gluconate 6-dehydrogenase; 2-keto-3-deoxy-D-gluconate dehydrogenase; 2-keto-3-deoxygluconate dehydrogenase
+ec:1.1.1.127 2-dehydro-3-deoxy-D-gluconate 5-dehydrogenase; 2-keto-3-deoxygluconate 5-dehydrogenase; 2-keto-3-deoxy-D-gluconate dehydrogenase; 2-keto-3-deoxygluconate (nicotinamide adenine dinucleotide (phosphate)) dehydrogenase; 2-keto-3-deoxy-D-gluconate (3-deoxy-D-glycero-2,5-hexodiulosonic acid) dehydrogenase
+ec:1.1.1.133 dTDP-4-dehydrorhamnose reductase; dTDP-4-keto-L-rhamnose reductase; dTDP-4-ketorhamnose reductase; TDP-4-keto-rhamnose reductase; thymidine diphospho-4-ketorhamnose reductase; dTDP-6-deoxy-L-mannose:NADP+ 4-oxidoreductase; dTDP-6-deoxy-beta-L-mannose:NADP+ 4-oxidoreductase
+ec:1.1.1.134 dTDP-6-deoxy-L-talose 4-dehydrogenase (NADP+); thymidine diphospho-6-deoxy-L-talose dehydrogenase; TDP-6-deoxy-L-talose dehydrogenase; dTDP-6-deoxy-L-talose dehydrogenase (4-reductase); dTDP-6-deoxy-L-talose:NADP+ 4-oxidoreductase
+ec:1.1.1.135 GDP-6-deoxy-D-talose 4-dehydrogenase; guanosine diphospho-6-deoxy-D-talose dehydrogenase; GDP-6-deoxy-D-talose:NAD(P)+ 4-oxidoreductase
+ec:1.1.1.136 UDP-N-acetylglucosamine 6-dehydrogenase; uridine diphosphoacetylglucosamine dehydrogenase; UDP-acetylglucosamine dehydrogenase; UDP-2-acetamido-2-deoxy-D-glucose:NAD oxidoreductase; UDP-GlcNAc dehydrogenase; WbpA; WbpO
+ec:1.1.1.187 GDP-4-dehydro-D-rhamnose reductase; GDP-4-keto-6-deoxy-D-mannose reductase; GDP-4-keto-D-rhamnose reductase; guanosine diphosphate-4-keto-D-rhamnose reductase; GDP-6-deoxy-D-mannose:NAD(P)+ 4-oxidoreductase; GDP-6-deoxy-alpha-D-mannose:NAD(P)+ 4-oxidoreductase
+ec:1.1.1.235 8-oxocoformycin reductase; 8-ketodeoxycoformycin reductase
+ec:1.1.1.266 dTDP-4-dehydro-6-deoxyglucose reductase; dTDP-4-keto-6-deoxyglucose reductase; dTDP-D-fucose:NADP+ oxidoreductase; Fcf1; dTDP-6-deoxy-D-xylo-hex-4-ulopyranose reductase
+ec:1.1.1.267 1-deoxy-D-xylulose-5-phosphate reductoisomerase; DXP-reductoisomerase; 1-deoxy-D-xylulose-5-phosphate isomeroreductase; 2-C-methyl-D-erythritol 4-phosphate (MEP) synthase
+ec:1.1.1.271 GDP-L-fucose synthase; GDP-4-keto-6-deoxy-D-mannose-3,5-epimerase-4-reductase; GDP-L-fucose:NADP+ 4-oxidoreductase (3,5-epimerizing)
+ec:1.1.1.281 GDP-4-dehydro-6-deoxy-D-mannose reductase; GDP-4-keto-6-deoxy-D-mannose reductase [ambiguous]; GDP-6-deoxy-D-lyxo-4-hexulose reductase; Rmd; GDP-6-deoxy-D-mannose:NAD(P)+ 4-oxidoreductase (D-rhamnose-forming); GDP-6-deoxy-alpha-D-mannose:NAD(P)+ 4-oxidoreductase (D-rhamnose-forming)
+ec:1.1.1.329 2-deoxy-scyllo-inosamine dehydrogenase; neoA (gene name); kanK (gene name, ambiguous); kanE (gene name, ambiguous)
+ec:1.1.1.335 UDP-N-acetyl-2-amino-2-deoxyglucuronate dehydrogenase; WlbA; WbpB
+ec:1.1.1.339 dTDP-6-deoxy-L-talose 4-dehydrogenase (NAD+); tll (gene name)
+ec:1.1.1.340 1-deoxy-11beta-hydroxypentalenate dehydrogenase; 1-deoxy-11beta-hydroxypentalenic acid dehydrogenase; ptlF (gene name); penF (gene name)
+ec:1.1.1.344 dTDP-6-deoxy-L-talose 4-dehydrogenase [NAD(P)+]; tal (gene name)
+ec:1.1.1.364 dTDP-4-dehydro-6-deoxy-alpha-D-gulose 4-ketoreductase; dTDP-4-dehydro-6-deoxygulose reductase; tylD (gene name); gerKI (gene name); chmD (gene name); mydI (gene name)
+ec:1.1.1.384 dTDP-3,4-didehydro-2,6-dideoxy-alpha-D-glucose 3-reductase; KijD10; dTDP-4-keto-2,6-dideoxy-D-glucose 3-oxidoreductase; dTDP-4-dehydro-2,6-dideoxy-alpha-D-glucose 3-oxidoreductase
+ec:1.1.1.389 2-dehydro-3-deoxy-L-galactonate 5-dehydrogenase
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/test-data/shiga-toxin-example-AND
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/test-data/shiga-toxin-example-AND Fri May 06 08:05:48 2016 -0400
b
b'@@ -0,0 +1,103 @@\n+ece:Z1464\tstx2A; shiga-like toxin II A subunit encoded by bacteriophage BP-933W; K11006 shiga toxin subunit A\n+ece:Z1465\tstx2B; shiga-like toxin II B subunit encoded by bacteriophage BP-933W; K11007 shiga toxin subunit B\n+ece:Z3343\tstx1B; shiga-like toxin 1 subunit B encoded within prophage CP-933V; K11007 shiga toxin subunit B\n+ece:Z3344\tstx1A; shiga-like toxin 1 subunit A encoded within prophage CP-933V; K11006 shiga toxin subunit A\n+ecs:ECs1205\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+ecs:ECs1206\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+ecs:ECs2973\tShiga toxin I subunit B; K11007 shiga toxin subunit B\n+ecs:ECs2974\tShiga toxin I subunit A; K11006 shiga toxin subunit A\n+ecf:ECH74115_2905\tshigatoxin 2, subunit B; K11007 shiga toxin subunit B\n+ecf:ECH74115_2906\tshiga toxin subunit A; K11006 shiga toxin subunit A\n+ecf:ECH74115_3532\tshiga toxin 2 B subunit; K11007 shiga toxin subunit B\n+ecf:ECH74115_3533\tshiga toxin subunit A; K11006 shiga toxin subunit A\n+etw:ECSP_2722\tstx2cB; Shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B\n+etw:ECSP_2723\tstx2A1; Shiga-like toxin II subunit A precursor; K11006 shiga toxin subunit A\n+etw:ECSP_3252\tstx2B; shiga toxin II subunit B; K11007 shiga toxin subunit B\n+etw:ECSP_3253\tstx2A2; shiga toxin II subunit A; K11006 shiga toxin subunit A\n+elx:CDCO157_1154\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+elx:CDCO157_1155\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+elx:CDCO157_2738\tShiga toxin I subunit B precursor; K11007 shiga toxin subunit B\n+elx:CDCO157_2739\tShiga toxin I subunit A precursor; K11006 shiga toxin subunit A\n+eoj:ECO26_1599\tShiga toxin 1 subunit A; K11006 shiga toxin subunit A\n+eoj:ECO26_1600\tShiga toxin 1 subunit B; K11007 shiga toxin subunit B\n+eoi:ECO111_2429\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+eoi:ECO111_2430\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+eoi:ECO111_3361\tShiga toxin 1 subunit A; K11006 shiga toxin subunit A\n+eoi:ECO111_3362\tShiga toxin 1 subunit B; K11007 shiga toxin subunit B\n+eoh:ECO103_2844\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+eoh:ECO103_2845\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+eoh:ECO103_5197\tShiga toxin 1 subunit A; K11006 shiga toxin subunit A\n+eoh:ECO103_5198\tShiga toxin 1 subunit B; K11007 shiga toxin subunit B\n+eso:O3O_09170\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+eso:O3O_09165\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+esm:O3M_16105\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+esm:O3M_16110\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+esl:O3K_16130\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+esl:O3K_16135\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+ecoo:ECRM13514_3144\tstx2B; Shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B\n+ecoo:ECRM13514_3145\tstx2A; Shiga-like toxin II subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A\n+ecoh:ECRM13516_2315\tstx2B; Shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B\n+ecoh:ECRM13516_2316\tstx2A; Shiga-like toxin II subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A\n+stm:STM0284\tshiga-like toxin A subunit\n+seo:STM14_0332\tputative Shiga-like toxin A subunit\n+sev:STMMW_02891\tputative shiga-like toxin A subunit\n+sem:STMDT12_C02790\tputative Shiga-like toxin A subunit\n+sej:STMUK_0287\tputative Shiga-like toxin A subunit\n+setu:STU288_13325\tputative shiga-like toxin A subunit\n+setc:CFSAN001921_15985\tShiga toxin A subunit\n+send:DT104_02831\tsciR; shiga-like toxin a subunit, type VI secretion system SciR protein flags: precursor\n+seni:CY43_01420\tShiga toxin A subunit\n+seen:SE451236_07435\tShiga toxin A subunit\n+spt:SPA2480\tputative shiga-like toxin A subunit\n+sek:SSPA2315\tshiga-like toxin A subunit\n+sei:SPC_0292\tputative shiga-like toxin A subunit\n+sec:SCH_0277\tputative shiga-like toxin A subunit\n+shb:SU5_0926\tSciR Shiga-like toxin A subunit\n+senh:CFSAN0020'..b'; Shigella phage POCJ13; shiga toxin A-chain precursor (EC:3.2.2.22); K11006 shiga toxin subunit A\n+vg:22277200\tPI30_gp35; Shigella phage POCJ13; shiga toxin I subunit B precursor; K11007 shiga toxin subunit B\n+vg:1262301\tAPSE-1_07; Endosymbiont phage APSE-1; P7; K11007 shiga toxin subunit B\n+vg:1481747\tstx1A, Stx1_p142; Escherichia Stx1 converting phage; Shiga toxin1 subunit A; K11006 shiga toxin subunit A\n+vg:1481748\tstx1B, Stx1_p143; Escherichia Stx1 converting phage; Shiga toxin1 subunit B; K11007 shiga toxin subunit B\n+vg:1481767\tstx2A, Stx2II_p143; Stx2 converting phage II; Shiga toxin2 subunit A; K11006 shiga toxin subunit A\n+vg:1481768\tstx2B, Stx2II_p144; Stx2 converting phage II; Shiga toxin2 subunit B; K11007 shiga toxin subunit B\n+vg:26228052\tAS349_gp84; Escherichia phage PA2; shiga-like toxin II subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A\n+vg:26228100\tAS349_gp83; Escherichia phage PA2; shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B\n+vg:26516496\tstx2A, AU085_gp42; Enterobacteria phage VT2phi_272; Shiga toxin 2 A subunit; K11006 shiga toxin subunit A\n+vg:26516448\tstx2B, AU085_gp41; Enterobacteria phage VT2phi_272; Shiga toxin 2 B subunit; K11007 shiga toxin subunit B\n+vg:26516283\tstxB, phi191_00011, AU083_gp11; Escherichia phage phi191; shiga toxin subunit B precursor; K11007 shiga toxin subunit B\n+vg:26516284\tstxA, phi191_00012, AU083_gp12; Escherichia phage phi191; shiga toxin subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A\n+vg:26519429\tAU154_gp39; Shigella phage Ss-VASD; Stx1 A subunit; K11006 shiga toxin subunit A\n+vg:26519430\tAU154_gp40; Shigella phage Ss-VASD; Stx1 B subunit; K11007 shiga toxin subunit B\n+vg:1261950\tstxA2, L0103, sltIIA, stx2A, 933Wp40; Enterobacteria phage 933W; Shiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+vg:1262010\tstxB2, L0104, sltIIB, stx2B, 933Wp41; Enterobacteria phage 933W; Shiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+vg:2641645\tstxA1, phi4795p38, PBV4795_ORF40; Enterobacteria phage BP-4795; Shiga toxin 1 subunit A; K11006 shiga toxin subunit A\n+vg:2641657\tstxB1, phi4795p39, PBV4795_ORF41; Enterobacteria phage BP-4795; Shiga toxin 1 subunit B; K11007 shiga toxin subunit B\n+vg:929695\tstxA2e, P27p25; Enterobacteria phage phiP27; shiga toxin 2e A-subunit; K11006 shiga toxin subunit A\n+vg:929727\tstxB2e, P27p26; Enterobacteria phage phiP27; shiga toxin 2e B-subunit; K11007 shiga toxin subunit B\n+vg:4397483\tstx2A, Stx2-86_gp01; Stx2-converting phage 86; shiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+vg:4397484\tstx2B, Stx2-86_gp02; Stx2-converting phage 86; shiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+vg:6159405\tstx2A, pMIN27_41; Enterobacteria phage Min27; ORF44; K11006 shiga toxin subunit A\n+vg:6159351\tstx2B, pMIN27_42; Enterobacteria phage Min27; ORF45; K11007 shiga toxin subunit B\n+vg:6973138\tStx2-1717_gp41; Stx2-converting phage 1717; verocytotoxin 2 variant 2c subunit A; K11006 shiga toxin subunit A\n+vg:6972909\tstx2cB, Stx2-1717_gp42; Stx2-converting phage 1717; verocytotoxin 2 variant 2c subunit B; K11007 shiga toxin subunit B\n+vg:6973079\tYYZ_gp39; Enterobacteria phage YYZ-2008; Shiga toxin 1 subunit A; K11006 shiga toxin subunit A\n+vg:6973080\tYYZ_gp40; Enterobacteria phage YYZ-2008; Shiga toxin 1 subunit B; K11007 shiga toxin subunit B\n+vg:13828571\tstx2A, D300_gp43; Escherichia phage P13374; shiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+vg:13828535\tstx2B, D300_gp42; Escherichia phage P13374; shiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+vg:14005228\tF366_gp36; Escherichia phage TL-2011c; Shiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+vg:14005229\tF366_gp37; Escherichia phage TL-2011c; Shiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+vg:1262249\tstx2A, VT2-Sap42; Enterobacteria phage VT2-Sakai; Shiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+vg:1262250\tstx2B, VT2-Sap43; Enterobacteria phage VT2-Sakai; Shiga toxin 2 subunit B; K11007 shiga toxin subunit B\n'
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/test-data/shiga-toxin-example-AND-broken
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/test-data/shiga-toxin-example-AND-broken Fri May 06 08:05:48 2016 -0400
b
@@ -0,0 +1,88 @@
+ece:Z1464 stx2A; shiga-like toxin II A subunit encoded by bacteriophage BP-933W; K11006 shiga toxin subunit A
+ece:Z1465 stx2B; shiga-like toxin II B subunit encoded by bacteriophage BP-933W; K11007 shiga toxin subunit B
+ece:Z3343 stx1B; shiga-like toxin 1 subunit B encoded within prophage CP-933V; K11007 shiga toxin subunit B
+ece:Z3344 stx1A; shiga-like toxin 1 subunit A encoded within prophage CP-933V; K11006 shiga toxin subunit A
+ecs:ECs1205 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+ecs:ECs1206 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+ecs:ECs2973 Shiga toxin I subunit B; K11007 shiga toxin subunit B
+ecs:ECs2974 Shiga toxin I subunit A; K11006 shiga toxin subunit A
+ecf:ECH74115_2905 shigatoxin 2, subunit B; K11007 shiga toxin subunit B
+ecf:ECH74115_2906 shiga toxin subunit A; K11006 shiga toxin subunit A
+ecf:ECH74115_3532 shiga toxin 2 B subunit; K11007 shiga toxin subunit B
+ecf:ECH74115_3533 shiga toxin subunit A; K11006 shiga toxin subunit A
+etw:ECSP_2722 stx2cB; Shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B
+etw:ECSP_2723 stx2A1; Shiga-like toxin II subunit A precursor; K11006 shiga toxin subunit A
+etw:ECSP_3252 stx2B; shiga toxin II subunit B; K11007 shiga toxin subunit B
+etw:ECSP_3253 stx2A2; shiga toxin II subunit A; K11006 shiga toxin subunit A
+elx:CDCO157_1154 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+elx:CDCO157_1155 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+elx:CDCO157_2738 Shiga toxin I subunit B precursor; K11007 shiga toxin subunit B
+elx:CDCO157_2739 Shiga toxin I subunit A precursor; K11006 shiga toxin subunit A
+eoj:ECO26_1599 Shiga toxin 1 subunit A; K11006 shiga toxin subunit A
+eoj:ECO26_1600 Shiga toxin 1 subunit B; K11007 shiga toxin subunit B
+eoi:ECO111_2429 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+eoi:ECO111_2430 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+eoi:ECO111_3361 Shiga toxin 1 subunit A; K11006 shiga toxin subunit A
+eoi:ECO111_3362 Shiga toxin 1 subunit B; K11007 shiga toxin subunit B
+eoh:ECO103_2844 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+eoh:ECO103_2845 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+eoh:ECO103_5197 Shiga toxin 1 subunit A; K11006 shiga toxin subunit A
+eoh:ECO103_5198 Shiga toxin 1 subunit B; K11007 shiga toxin subunit B
+eso:O3O_09170 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+eso:O3O_09165 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+esm:O3M_16105 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+esm:O3M_16110 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+esl:O3K_16130 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+esl:O3K_16135 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+ecoo:ECRM13514_3144 stx2B; Shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B
+ecoo:ECRM13514_3145 stx2A; Shiga-like toxin II subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A
+ecoh:ECRM13516_2315 stx2B; Shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B
+ecoh:ECRM13516_2316 stx2A; Shiga-like toxin II subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A
+setc:CFSAN001921_15985 Shiga toxin A subunit
+seni:CY43_01420 Shiga toxin A subunit
+seen:SE451236_07435 Shiga toxin A subunit
+senh:CFSAN002069_07720 Shiga toxin A subunit
+seec:CFSAN002050_07960 Shiga toxin A subunit
+sene:IA1_01505 Shiga toxin A subunit
+senc:SEET0819_08350 Shiga toxin A subunit
+sdy:SDY_1389 stxA; Shiga toxin subunit A; K11006 shiga toxin subunit A
+sdy:SDY_1390 stxB; Shiga toxin subunit B; K11007 shiga toxin subunit B
+sdz:Asd1617_01826 Shiga toxin subunit A (EC:3.2.2.22); K11006 shiga toxin subunit A
+ssab:SSABA_v1c03870 hypothetical protein; K11006 shiga toxin subunit A
+ssab:SSABA_v1c09020 hypothetical protein; K11006 shiga toxin subunit A
+calt:Cal6303_2132 ribosome-inactivating protein; K11006 shiga toxin subunit A
+vg:22277199 PI30_gp34; Shigella phage POCJ13; shiga toxin A-chain precursor (EC:3.2.2.22); K11006 shiga toxin subunit A
+vg:22277200 PI30_gp35; Shigella phage POCJ13; shiga toxin I subunit B precursor; K11007 shiga toxin subunit B
+vg:1262301 APSE-1_07; Endosymbiont phage APSE-1; P7; K11007 shiga toxin subunit B
+vg:1481747 stx1A, Stx1_p142; Escherichia Stx1 converting phage; Shiga toxin1 subunit A; K11006 shiga toxin subunit A
+vg:1481748 stx1B, Stx1_p143; Escherichia Stx1 converting phage; Shiga toxin1 subunit B; K11007 shiga toxin subunit B
+vg:1481767 stx2A, Stx2II_p143; Stx2 converting phage II; Shiga toxin2 subunit A; K11006 shiga toxin subunit A
+vg:1481768 stx2B, Stx2II_p144; Stx2 converting phage II; Shiga toxin2 subunit B; K11007 shiga toxin subunit B
+vg:26228052 AS349_gp84; Escherichia phage PA2; shiga-like toxin II subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A
+vg:26228100 AS349_gp83; Escherichia phage PA2; shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B
+vg:26516496 stx2A, AU085_gp42; Enterobacteria phage VT2phi_272; Shiga toxin 2 A subunit; K11006 shiga toxin subunit A
+vg:26516448 stx2B, AU085_gp41; Enterobacteria phage VT2phi_272; Shiga toxin 2 B subunit; K11007 shiga toxin subunit B
+vg:26516283 stxB, phi191_00011, AU083_gp11; Escherichia phage phi191; shiga toxin subunit B precursor; K11007 shiga toxin subunit B
+vg:26516284 stxA, phi191_00012, AU083_gp12; Escherichia phage phi191; shiga toxin subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A
+vg:26519429 AU154_gp39; Shigella phage Ss-VASD; Stx1 A subunit; K11006 shiga toxin subunit A
+vg:26519430 AU154_gp40; Shigella phage Ss-VASD; Stx1 B subunit; K11007 shiga toxin subunit B
+vg:1261950 stxA2, L0103, sltIIA, stx2A, 933Wp40; Enterobacteria phage 933W; Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+vg:1262010 stxB2, L0104, sltIIB, stx2B, 933Wp41; Enterobacteria phage 933W; Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+vg:2641645 stxA1, phi4795p38, PBV4795_ORF40; Enterobacteria phage BP-4795; Shiga toxin 1 subunit A; K11006 shiga toxin subunit A
+vg:2641657 stxB1, phi4795p39, PBV4795_ORF41; Enterobacteria phage BP-4795; Shiga toxin 1 subunit B; K11007 shiga toxin subunit B
+vg:929695 stxA2e, P27p25; Enterobacteria phage phiP27; shiga toxin 2e A-subunit; K11006 shiga toxin subunit A
+vg:929727 stxB2e, P27p26; Enterobacteria phage phiP27; shiga toxin 2e B-subunit; K11007 shiga toxin subunit B
+vg:4397483 stx2A, Stx2-86_gp01; Stx2-converting phage 86; shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+vg:4397484 stx2B, Stx2-86_gp02; Stx2-converting phage 86; shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+vg:6159405 stx2A, pMIN27_41; Enterobacteria phage Min27; ORF44; K11006 shiga toxin subunit A
+vg:6159351 stx2B, pMIN27_42; Enterobacteria phage Min27; ORF45; K11007 shiga toxin subunit B
+vg:6973138 Stx2-1717_gp41; Stx2-converting phage 1717; verocytotoxin 2 variant 2c subunit A; K11006 shiga toxin subunit A
+vg:6972909 stx2cB, Stx2-1717_gp42; Stx2-converting phage 1717; verocytotoxin 2 variant 2c subunit B; K11007 shiga toxin subunit B
+vg:6973079 YYZ_gp39; Enterobacteria phage YYZ-2008; Shiga toxin 1 subunit A; K11006 shiga toxin subunit A
+vg:6973080 YYZ_gp40; Enterobacteria phage YYZ-2008; Shiga toxin 1 subunit B; K11007 shiga toxin subunit B
+vg:13828571 stx2A, D300_gp43; Escherichia phage P13374; shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+vg:13828535 stx2B, D300_gp42; Escherichia phage P13374; shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+vg:14005228 F366_gp36; Escherichia phage TL-2011c; Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+vg:14005229 F366_gp37; Escherichia phage TL-2011c; Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+vg:1262249 stx2A, VT2-Sap42; Enterobacteria phage VT2-Sakai; Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+vg:1262250 stx2B, VT2-Sap43; Enterobacteria phage VT2-Sakai; Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/test-data/shiga-toxin-example-OR
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/test-data/shiga-toxin-example-OR Fri May 06 08:05:48 2016 -0400
b
@@ -0,0 +1,88 @@
+ece:Z1464 stx2A; shiga-like toxin II A subunit encoded by bacteriophage BP-933W; K11006 shiga toxin subunit A
+ece:Z1465 stx2B; shiga-like toxin II B subunit encoded by bacteriophage BP-933W; K11007 shiga toxin subunit B
+ece:Z3343 stx1B; shiga-like toxin 1 subunit B encoded within prophage CP-933V; K11007 shiga toxin subunit B
+ece:Z3344 stx1A; shiga-like toxin 1 subunit A encoded within prophage CP-933V; K11006 shiga toxin subunit A
+ecs:ECs1205 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+ecs:ECs1206 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+ecs:ECs2973 Shiga toxin I subunit B; K11007 shiga toxin subunit B
+ecs:ECs2974 Shiga toxin I subunit A; K11006 shiga toxin subunit A
+ecf:ECH74115_2905 shigatoxin 2, subunit B; K11007 shiga toxin subunit B
+ecf:ECH74115_2906 shiga toxin subunit A; K11006 shiga toxin subunit A
+ecf:ECH74115_3532 shiga toxin 2 B subunit; K11007 shiga toxin subunit B
+ecf:ECH74115_3533 shiga toxin subunit A; K11006 shiga toxin subunit A
+etw:ECSP_2722 stx2cB; Shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B
+etw:ECSP_2723 stx2A1; Shiga-like toxin II subunit A precursor; K11006 shiga toxin subunit A
+etw:ECSP_3252 stx2B; shiga toxin II subunit B; K11007 shiga toxin subunit B
+etw:ECSP_3253 stx2A2; shiga toxin II subunit A; K11006 shiga toxin subunit A
+elx:CDCO157_1154 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+elx:CDCO157_1155 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+elx:CDCO157_2738 Shiga toxin I subunit B precursor; K11007 shiga toxin subunit B
+elx:CDCO157_2739 Shiga toxin I subunit A precursor; K11006 shiga toxin subunit A
+eoj:ECO26_1599 Shiga toxin 1 subunit A; K11006 shiga toxin subunit A
+eoj:ECO26_1600 Shiga toxin 1 subunit B; K11007 shiga toxin subunit B
+eoi:ECO111_2429 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+eoi:ECO111_2430 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+eoi:ECO111_3361 Shiga toxin 1 subunit A; K11006 shiga toxin subunit A
+eoi:ECO111_3362 Shiga toxin 1 subunit B; K11007 shiga toxin subunit B
+eoh:ECO103_2844 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+eoh:ECO103_2845 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+eoh:ECO103_5197 Shiga toxin 1 subunit A; K11006 shiga toxin subunit A
+eoh:ECO103_5198 Shiga toxin 1 subunit B; K11007 shiga toxin subunit B
+eso:O3O_09170 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+eso:O3O_09165 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+esm:O3M_16105 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+esm:O3M_16110 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+esl:O3K_16130 Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+esl:O3K_16135 Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+ecoo:ECRM13514_3144 stx2B; Shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B
+ecoo:ECRM13514_3145 stx2A; Shiga-like toxin II subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A
+ecoh:ECRM13516_2315 stx2B; Shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B
+ecoh:ECRM13516_2316 stx2A; Shiga-like toxin II subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A
+setc:CFSAN001921_15985 Shiga toxin A subunit
+seni:CY43_01420 Shiga toxin A subunit
+seen:SE451236_07435 Shiga toxin A subunit
+senh:CFSAN002069_07720 Shiga toxin A subunit
+seec:CFSAN002050_07960 Shiga toxin A subunit
+sene:IA1_01505 Shiga toxin A subunit
+senc:SEET0819_08350 Shiga toxin A subunit
+sdy:SDY_1389 stxA; Shiga toxin subunit A; K11006 shiga toxin subunit A
+sdy:SDY_1390 stxB; Shiga toxin subunit B; K11007 shiga toxin subunit B
+sdz:Asd1617_01826 Shiga toxin subunit A (EC:3.2.2.22); K11006 shiga toxin subunit A
+ssab:SSABA_v1c03870 hypothetical protein; K11006 shiga toxin subunit A
+ssab:SSABA_v1c09020 hypothetical protein; K11006 shiga toxin subunit A
+calt:Cal6303_2132 ribosome-inactivating protein; K11006 shiga toxin subunit A
+vg:22277199 PI30_gp34; Shigella phage POCJ13; shiga toxin A-chain precursor (EC:3.2.2.22); K11006 shiga toxin subunit A
+vg:22277200 PI30_gp35; Shigella phage POCJ13; shiga toxin I subunit B precursor; K11007 shiga toxin subunit B
+vg:1262301 APSE-1_07; Endosymbiont phage APSE-1; P7; K11007 shiga toxin subunit B
+vg:1481747 stx1A, Stx1_p142; Escherichia Stx1 converting phage; Shiga toxin1 subunit A; K11006 shiga toxin subunit A
+vg:1481748 stx1B, Stx1_p143; Escherichia Stx1 converting phage; Shiga toxin1 subunit B; K11007 shiga toxin subunit B
+vg:1481767 stx2A, Stx2II_p143; Stx2 converting phage II; Shiga toxin2 subunit A; K11006 shiga toxin subunit A
+vg:1481768 stx2B, Stx2II_p144; Stx2 converting phage II; Shiga toxin2 subunit B; K11007 shiga toxin subunit B
+vg:26228052 AS349_gp84; Escherichia phage PA2; shiga-like toxin II subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A
+vg:26228100 AS349_gp83; Escherichia phage PA2; shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B
+vg:26516496 stx2A, AU085_gp42; Enterobacteria phage VT2phi_272; Shiga toxin 2 A subunit; K11006 shiga toxin subunit A
+vg:26516448 stx2B, AU085_gp41; Enterobacteria phage VT2phi_272; Shiga toxin 2 B subunit; K11007 shiga toxin subunit B
+vg:26516283 stxB, phi191_00011, AU083_gp11; Escherichia phage phi191; shiga toxin subunit B precursor; K11007 shiga toxin subunit B
+vg:26516284 stxA, phi191_00012, AU083_gp12; Escherichia phage phi191; shiga toxin subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A
+vg:26519429 AU154_gp39; Shigella phage Ss-VASD; Stx1 A subunit; K11006 shiga toxin subunit A
+vg:26519430 AU154_gp40; Shigella phage Ss-VASD; Stx1 B subunit; K11007 shiga toxin subunit B
+vg:1261950 stxA2, L0103, sltIIA, stx2A, 933Wp40; Enterobacteria phage 933W; Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+vg:1262010 stxB2, L0104, sltIIB, stx2B, 933Wp41; Enterobacteria phage 933W; Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+vg:2641645 stxA1, phi4795p38, PBV4795_ORF40; Enterobacteria phage BP-4795; Shiga toxin 1 subunit A; K11006 shiga toxin subunit A
+vg:2641657 stxB1, phi4795p39, PBV4795_ORF41; Enterobacteria phage BP-4795; Shiga toxin 1 subunit B; K11007 shiga toxin subunit B
+vg:929695 stxA2e, P27p25; Enterobacteria phage phiP27; shiga toxin 2e A-subunit; K11006 shiga toxin subunit A
+vg:929727 stxB2e, P27p26; Enterobacteria phage phiP27; shiga toxin 2e B-subunit; K11007 shiga toxin subunit B
+vg:4397483 stx2A, Stx2-86_gp01; Stx2-converting phage 86; shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+vg:4397484 stx2B, Stx2-86_gp02; Stx2-converting phage 86; shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+vg:6159405 stx2A, pMIN27_41; Enterobacteria phage Min27; ORF44; K11006 shiga toxin subunit A
+vg:6159351 stx2B, pMIN27_42; Enterobacteria phage Min27; ORF45; K11007 shiga toxin subunit B
+vg:6973138 Stx2-1717_gp41; Stx2-converting phage 1717; verocytotoxin 2 variant 2c subunit A; K11006 shiga toxin subunit A
+vg:6972909 stx2cB, Stx2-1717_gp42; Stx2-converting phage 1717; verocytotoxin 2 variant 2c subunit B; K11007 shiga toxin subunit B
+vg:6973079 YYZ_gp39; Enterobacteria phage YYZ-2008; Shiga toxin 1 subunit A; K11006 shiga toxin subunit A
+vg:6973080 YYZ_gp40; Enterobacteria phage YYZ-2008; Shiga toxin 1 subunit B; K11007 shiga toxin subunit B
+vg:13828571 stx2A, D300_gp43; Escherichia phage P13374; shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+vg:13828535 stx2B, D300_gp42; Escherichia phage P13374; shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+vg:14005228 F366_gp36; Escherichia phage TL-2011c; Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+vg:14005229 F366_gp37; Escherichia phage TL-2011c; Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
+vg:1262249 stx2A, VT2-Sap42; Enterobacteria phage VT2-Sakai; Shiga toxin 2 subunit A; K11006 shiga toxin subunit A
+vg:1262250 stx2B, VT2-Sap43; Enterobacteria phage VT2-Sakai; Shiga toxin 2 subunit B; K11007 shiga toxin subunit B
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/test-data/shiga-toxin-example-OR-broken
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/get_data/kegg_glycan/test-data/shiga-toxin-example-OR-broken Fri May 06 08:05:48 2016 -0400
b
b'@@ -0,0 +1,103 @@\n+ece:Z1464\tstx2A; shiga-like toxin II A subunit encoded by bacteriophage BP-933W; K11006 shiga toxin subunit A\n+ece:Z1465\tstx2B; shiga-like toxin II B subunit encoded by bacteriophage BP-933W; K11007 shiga toxin subunit B\n+ece:Z3343\tstx1B; shiga-like toxin 1 subunit B encoded within prophage CP-933V; K11007 shiga toxin subunit B\n+ece:Z3344\tstx1A; shiga-like toxin 1 subunit A encoded within prophage CP-933V; K11006 shiga toxin subunit A\n+ecs:ECs1205\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+ecs:ECs1206\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+ecs:ECs2973\tShiga toxin I subunit B; K11007 shiga toxin subunit B\n+ecs:ECs2974\tShiga toxin I subunit A; K11006 shiga toxin subunit A\n+ecf:ECH74115_2905\tshigatoxin 2, subunit B; K11007 shiga toxin subunit B\n+ecf:ECH74115_2906\tshiga toxin subunit A; K11006 shiga toxin subunit A\n+ecf:ECH74115_3532\tshiga toxin 2 B subunit; K11007 shiga toxin subunit B\n+ecf:ECH74115_3533\tshiga toxin subunit A; K11006 shiga toxin subunit A\n+etw:ECSP_2722\tstx2cB; Shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B\n+etw:ECSP_2723\tstx2A1; Shiga-like toxin II subunit A precursor; K11006 shiga toxin subunit A\n+etw:ECSP_3252\tstx2B; shiga toxin II subunit B; K11007 shiga toxin subunit B\n+etw:ECSP_3253\tstx2A2; shiga toxin II subunit A; K11006 shiga toxin subunit A\n+elx:CDCO157_1154\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+elx:CDCO157_1155\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+elx:CDCO157_2738\tShiga toxin I subunit B precursor; K11007 shiga toxin subunit B\n+elx:CDCO157_2739\tShiga toxin I subunit A precursor; K11006 shiga toxin subunit A\n+eoj:ECO26_1599\tShiga toxin 1 subunit A; K11006 shiga toxin subunit A\n+eoj:ECO26_1600\tShiga toxin 1 subunit B; K11007 shiga toxin subunit B\n+eoi:ECO111_2429\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+eoi:ECO111_2430\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+eoi:ECO111_3361\tShiga toxin 1 subunit A; K11006 shiga toxin subunit A\n+eoi:ECO111_3362\tShiga toxin 1 subunit B; K11007 shiga toxin subunit B\n+eoh:ECO103_2844\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+eoh:ECO103_2845\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+eoh:ECO103_5197\tShiga toxin 1 subunit A; K11006 shiga toxin subunit A\n+eoh:ECO103_5198\tShiga toxin 1 subunit B; K11007 shiga toxin subunit B\n+eso:O3O_09170\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+eso:O3O_09165\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+esm:O3M_16105\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+esm:O3M_16110\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+esl:O3K_16130\tShiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+esl:O3K_16135\tShiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+ecoo:ECRM13514_3144\tstx2B; Shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B\n+ecoo:ECRM13514_3145\tstx2A; Shiga-like toxin II subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A\n+ecoh:ECRM13516_2315\tstx2B; Shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B\n+ecoh:ECRM13516_2316\tstx2A; Shiga-like toxin II subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A\n+stm:STM0284\tshiga-like toxin A subunit\n+seo:STM14_0332\tputative Shiga-like toxin A subunit\n+sev:STMMW_02891\tputative shiga-like toxin A subunit\n+sem:STMDT12_C02790\tputative Shiga-like toxin A subunit\n+sej:STMUK_0287\tputative Shiga-like toxin A subunit\n+setu:STU288_13325\tputative shiga-like toxin A subunit\n+setc:CFSAN001921_15985\tShiga toxin A subunit\n+send:DT104_02831\tsciR; shiga-like toxin a subunit, type VI secretion system SciR protein flags: precursor\n+seni:CY43_01420\tShiga toxin A subunit\n+seen:SE451236_07435\tShiga toxin A subunit\n+spt:SPA2480\tputative shiga-like toxin A subunit\n+sek:SSPA2315\tshiga-like toxin A subunit\n+sei:SPC_0292\tputative shiga-like toxin A subunit\n+sec:SCH_0277\tputative shiga-like toxin A subunit\n+shb:SU5_0926\tSciR Shiga-like toxin A subunit\n+senh:CFSAN0020'..b'; Shigella phage POCJ13; shiga toxin A-chain precursor (EC:3.2.2.22); K11006 shiga toxin subunit A\n+vg:22277200\tPI30_gp35; Shigella phage POCJ13; shiga toxin I subunit B precursor; K11007 shiga toxin subunit B\n+vg:1262301\tAPSE-1_07; Endosymbiont phage APSE-1; P7; K11007 shiga toxin subunit B\n+vg:1481747\tstx1A, Stx1_p142; Escherichia Stx1 converting phage; Shiga toxin1 subunit A; K11006 shiga toxin subunit A\n+vg:1481748\tstx1B, Stx1_p143; Escherichia Stx1 converting phage; Shiga toxin1 subunit B; K11007 shiga toxin subunit B\n+vg:1481767\tstx2A, Stx2II_p143; Stx2 converting phage II; Shiga toxin2 subunit A; K11006 shiga toxin subunit A\n+vg:1481768\tstx2B, Stx2II_p144; Stx2 converting phage II; Shiga toxin2 subunit B; K11007 shiga toxin subunit B\n+vg:26228052\tAS349_gp84; Escherichia phage PA2; shiga-like toxin II subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A\n+vg:26228100\tAS349_gp83; Escherichia phage PA2; shiga-like toxin II subunit B precursor; K11007 shiga toxin subunit B\n+vg:26516496\tstx2A, AU085_gp42; Enterobacteria phage VT2phi_272; Shiga toxin 2 A subunit; K11006 shiga toxin subunit A\n+vg:26516448\tstx2B, AU085_gp41; Enterobacteria phage VT2phi_272; Shiga toxin 2 B subunit; K11007 shiga toxin subunit B\n+vg:26516283\tstxB, phi191_00011, AU083_gp11; Escherichia phage phi191; shiga toxin subunit B precursor; K11007 shiga toxin subunit B\n+vg:26516284\tstxA, phi191_00012, AU083_gp12; Escherichia phage phi191; shiga toxin subunit A precursor (EC:3.2.2.22); K11006 shiga toxin subunit A\n+vg:26519429\tAU154_gp39; Shigella phage Ss-VASD; Stx1 A subunit; K11006 shiga toxin subunit A\n+vg:26519430\tAU154_gp40; Shigella phage Ss-VASD; Stx1 B subunit; K11007 shiga toxin subunit B\n+vg:1261950\tstxA2, L0103, sltIIA, stx2A, 933Wp40; Enterobacteria phage 933W; Shiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+vg:1262010\tstxB2, L0104, sltIIB, stx2B, 933Wp41; Enterobacteria phage 933W; Shiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+vg:2641645\tstxA1, phi4795p38, PBV4795_ORF40; Enterobacteria phage BP-4795; Shiga toxin 1 subunit A; K11006 shiga toxin subunit A\n+vg:2641657\tstxB1, phi4795p39, PBV4795_ORF41; Enterobacteria phage BP-4795; Shiga toxin 1 subunit B; K11007 shiga toxin subunit B\n+vg:929695\tstxA2e, P27p25; Enterobacteria phage phiP27; shiga toxin 2e A-subunit; K11006 shiga toxin subunit A\n+vg:929727\tstxB2e, P27p26; Enterobacteria phage phiP27; shiga toxin 2e B-subunit; K11007 shiga toxin subunit B\n+vg:4397483\tstx2A, Stx2-86_gp01; Stx2-converting phage 86; shiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+vg:4397484\tstx2B, Stx2-86_gp02; Stx2-converting phage 86; shiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+vg:6159405\tstx2A, pMIN27_41; Enterobacteria phage Min27; ORF44; K11006 shiga toxin subunit A\n+vg:6159351\tstx2B, pMIN27_42; Enterobacteria phage Min27; ORF45; K11007 shiga toxin subunit B\n+vg:6973138\tStx2-1717_gp41; Stx2-converting phage 1717; verocytotoxin 2 variant 2c subunit A; K11006 shiga toxin subunit A\n+vg:6972909\tstx2cB, Stx2-1717_gp42; Stx2-converting phage 1717; verocytotoxin 2 variant 2c subunit B; K11007 shiga toxin subunit B\n+vg:6973079\tYYZ_gp39; Enterobacteria phage YYZ-2008; Shiga toxin 1 subunit A; K11006 shiga toxin subunit A\n+vg:6973080\tYYZ_gp40; Enterobacteria phage YYZ-2008; Shiga toxin 1 subunit B; K11007 shiga toxin subunit B\n+vg:13828571\tstx2A, D300_gp43; Escherichia phage P13374; shiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+vg:13828535\tstx2B, D300_gp42; Escherichia phage P13374; shiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+vg:14005228\tF366_gp36; Escherichia phage TL-2011c; Shiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+vg:14005229\tF366_gp37; Escherichia phage TL-2011c; Shiga toxin 2 subunit B; K11007 shiga toxin subunit B\n+vg:1262249\tstx2A, VT2-Sap42; Enterobacteria phage VT2-Sakai; Shiga toxin 2 subunit A; K11006 shiga toxin subunit A\n+vg:1262250\tstx2B, VT2-Sap43; Enterobacteria phage VT2-Sakai; Shiga toxin 2 subunit B; K11007 shiga toxin subunit B\n'
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/test_findKEGG.py
--- a/get_data/kegg_glycan/test_findKEGG.py Wed Mar 23 14:35:56 2016 -0400
+++ b/get_data/kegg_glycan/test_findKEGG.py Fri May 06 08:05:48 2016 -0400
b
@@ -41,9 +41,10 @@
             m = fk.find_entries_in_KEGG("john", "glucose")
 
     def test_unfindable_entry(self):
-        """should return None"""
+        """should return an empty string"""
         m = fk.find_entries_in_KEGG("glycan", "sally")
-        self.assertIsNone(m)
+        emptystring=""
+        self.assertItemsEqual(m,emptystring,"Expected Empty String for non-existent entry")
 
     def test_find_example(self):
         m = fk.find_entries_in_KEGG("glycan", "glucose")
@@ -52,9 +53,123 @@
 
     def test_query_has_newlines(self):
         """
-        should be fine and return entries
+        Assume a new line query is an AND query. 
+        """
+        m = fk.find_entries_in_KEGG("glycan", "glucose\nUDP")
+        self.assertIsNotNone(m)
+        print m
+        self.assertIn("UDP-D-glucose", m)
+
+    def test_query_has_newlines_and_a_space(self):
+        """
+        glucose\\n UDP. OR's should pass 
         """
         m = fk.find_entries_in_KEGG("glycan", "glucose\n UDP")
         self.assertIsNotNone(m)
         self.assertIn("UDP-D-glucose", m)
 
+    def test_gene_specific_or(self):
+        """
+        test "shiga toxin" returns. 
+         /find/genes/"shiga toxin" for keywords "shiga toxin"
+        """
+        m = fk.find_entries_in_KEGG("genes","shiga toxin")
+        self.assertIsNotNone(m)
+        #. not matching to all entries - that is silly, the db get updated!
+        self.assertIn("shiga", m)
+        self.assertIn("toxin", m)
+        self.assertNotIn("stm:STM0284",m) # should not be found in the OR query
+
+    def test_gene_specific_and(self):
+        """
+        test "shiga+toxin" returns. it should
+         /find/genes/shiga+toxin   for keywords "shiga" and "toxin"
+        """
+        m = fk.find_entries_in_KEGG("genes","shiga+toxin")
+        self.assertIsNotNone(m)
+        #. not matching to all entries - that is silly, the db get updated!
+        self.assertIn("shiga", m)
+        self.assertIn("toxin", m)
+        self.assertIn("stm:STM0284",m) # should be found in the AND query
+
+    def test_enzyme_specific_1(self):
+        """
+        test 2.4.99.1 returns
+        """
+        m = fk.find_entries_in_KEGG("enzyme","2.4.99.1")
+        self.assertIsNotNone(m)
+        #. not matching to all entries - that is silly, the db get updated!
+        self.assertIn("2.4.99.1", m)
+
+    def test_enzyme_specific_2(self):
+        """
+        test 2.4.99.6 returns
+        """
+        m = fk.find_entries_in_KEGG("enzyme","2.4.99.6")
+        self.assertIsNotNone(m)
+        #. not matching to all entries - that is silly, the db get updated!
+        self.assertIn("2.4.99.6", m)
+
+    def test_enzyme_specific_3(self):
+        """
+        test ec: 2.4.99.6 with space (tests stripping space functionality)
+        """
+        m = fk.find_entries_in_KEGG("enzyme","ec: 2.4.99.6")
+        self.assertIsNotNone(m)
+        #. not matching to all entries - that is silly, the db get updated!
+        self.assertIn("2.4.99.6", m)
+
+    def test_enzyme_specific_4(self):
+        """
+        test ec: 2.4.99. , should return 2.4.99.*
+        """
+        m = fk.find_entries_in_KEGG("enzyme","ec: 2.4.99.")
+        self.assertIsNotNone(m)
+        #. not matching to all entries - that is silly, the db get updated!
+        self.assertIn("2.4.99.1", m)
+        self.assertIn("2.4.99.6", m)
+        self.assertIn("2.4.99.11", m)
+
+    def test_enzyme_specific_5(self):
+        """
+        test ec: 2.4.99.1+2.4.99.6 . AND function, so returns nothing here. Do not expect an enzyme to be doubly classified. 
+        """
+        m = fk.find_entries_in_KEGG("enzyme","2.4.99.1+2.4.99.6")
+        self.assertIsNotNone(m)
+        emptystring=""
+        self.assertItemsEqual(m,emptystring,"Expected Empty String for non-existent entry")
+
+    def test_enzyme_specific_6(self):
+        """
+        test ec: 2.4.99.1 2.4.99.6 . OR function, should return something but does not (KEGG FAILURE?).
+         note that trying this without "" will return the AND function result which is incorrect.
+        """
+        m = fk.find_entries_in_KEGG("enzyme","2.4.99.1 2.4.99.6")
+        self.assertIsNotNone(m)
+        #self.assertIn("2.4.99.1", m)
+        emptystring=""
+        print m
+        self.assertItemsEqual(m,emptystring,"Expected Empty String for non-existent entry")
+
+
+    def test_enzyme_specific_7(self):
+        """
+        test deoxy+1.1.1. . AND function, that should return something
+        """
+        m = fk.find_entries_in_KEGG("enzyme","deoxy+1.1.1")
+        self.assertIsNotNone(m)
+        print m
+        self.assertIn("deoxy", m)
+        self.assertIn("1.1.1", m)
+
+    def test_enzyme_specific_8(self):
+        """
+        test deoxy 1.1.1. . OR function. should return deoxy or 1.1.1. but does not (KEGG FAILURE?). i
+         note that trying this without "" will return the AND function result which is incorrect.
+        """
+        m = fk.find_entries_in_KEGG("enzyme","deoxy 1.1.1")
+        self.assertIsNotNone(m)
+        emptystring=""
+        print m
+        self.assertItemsEqual(m,emptystring,"Expected Empty String for non-existent entry")
+
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/test_findKEGG.pyc
b
Binary file get_data/kegg_glycan/test_findKEGG.pyc has changed
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/test_getkcfKEGG.pyc
b
Binary file get_data/kegg_glycan/test_getkcfKEGG.pyc has changed
b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/test_linkKEGG.py
--- a/get_data/kegg_glycan/test_linkKEGG.py Wed Mar 23 14:35:56 2016 -0400
+++ b/get_data/kegg_glycan/test_linkKEGG.py Fri May 06 08:05:48 2016 -0400
b
@@ -40,3 +40,76 @@
         m = lk.linked_entries_from_kegg("br", "gl:G10496")
         self.assertEquals(m,"")
 
+    def test_enzyme_glycan_search_1(self):
+         """
+         test  "2.4.99.1 ec: " returns
+         """
+         m = lk.linked_entries_from_kegg("glycan", "2.4.99.1 ec:")
+         self.assertIn("2.4.99.1", m)


+    def test_enzyme_glycan_search_2(self):
+         """
+         test  "2.4.99.1 ec: 2.4.99.6" returns
+         """
+         m = lk.linked_entries_from_kegg("glycan", "2.4.99.1 ec: 2.4.99.6" )
+         self.assertIn("2.4.99.1", m)
+         self.assertIn("2.4.99.6", m)

+    def test_enzyme_glycan_search_3(self):
+         """
+         test  "2.4.99.1 ec:2.4.99.6" returns
+         """
+         m = lk.linked_entries_from_kegg("glycan", "2.4.99.1 ec:2.4.99.6" )
+         self.assertIn("2.4.99.1", m)
+         self.assertIn("2.4.99.6", m)

+    def test_enzyme_glycan_search_4(self):
+         """
+         test  "2.4.99.1+2.4.99.6" returns. This time '+' is or.
+         """
+         m = lk.linked_entries_from_kegg("glycan", "2.4.99.1+2.4.99.6" )
+         self.assertIn("2.4.99.1", m)
+         self.assertIn("2.4.99.6", m)

+    def test_enzyme_glycan_search_4b(self):
+         """
+         test  "2.4.99.1+ 2.4.99.6" returns. This time '+' is or.
+         """
+         m = lk.linked_entries_from_kegg("glycan", "2.4.99.1+ 2.4.99.6" )
+         self.assertIn("2.4.99.1", m)
+         self.assertIn("2.4.99.6", m)

+    def test_enzyme_glycan_search_5(self):
+         """
+         test  "2.4.99.1 2.4.99.6" returns. Space also means or for the link db. 
+         """
+         m = lk.linked_entries_from_kegg("glycan", "2.4.99.1 2.4.99.6" )
+         self.assertIn("2.4.99.1", m)
+         self.assertIn("2.4.99.6", m)


+    def test_enzyme_glycan_search_6(self):
+         """
+         test  "2.4.99.1+nana+2.4.99.6" returns. strangely when inserting junk it still works.
+         """
+         m = lk.linked_entries_from_kegg("glycan", "2.4.99.1+nana+2.4.99.6" )
+         self.assertIn("2.4.99.1", m)
+         self.assertIn("2.4.99.6", m)

+    def test_enzyme_glycan_search_6b(self):
+         """
+         test  "2.4.99.1 nana 2.4.99.6" returns. strangely when inserting junk it still works.
+         """
+         m = lk.linked_entries_from_kegg("glycan", "2.4.99.1+nana+2.4.99.6" )
+         self.assertIn("2.4.99.1", m)
+         self.assertIn("2.4.99.6", m)

+    def test_enzyme_glycan_search_7(self):
+         """
+         test  "\"2.4.99.1\""  is a bad request as it includes quotes. 
+         """
+         from urllib2 import HTTPError
+         with self.assertRaises(HTTPError):
+             m = lk.linked_entries_from_kegg("glycan", "\"2.4.99.1\"" )

b
diff -r 89592faa2875 -r 0a5e0df17054 get_data/kegg_glycan/test_linkKEGG.pyc
b
Binary file get_data/kegg_glycan/test_linkKEGG.pyc has changed