Skip to content
Snippets Groups Projects
Commit 69967b7a authored by bbauvin's avatar bbauvin
Browse files

Deleted Sij, added analysis features, corrected bugs for no kfolds

parent be42a514
Branches
Tags
No related merge requests found
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="BookmarkManager">
<bookmark url="file://$PROJECT_DIR$/Code/MultiView/GetMutliviewDb.py" line="271" mnemonic="3" />
</component>
<component name="ChangeListManager">
<list default="true" id="7b111a3e-1726-4d52-a9de-f7a3f867dbc7" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Code/MultiView/ExecMultiview.py" afterPath="$PROJECT_DIR$/Code/MultiView/ExecMultiview.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Code/MultiView/GetMutliviewDb.py" afterPath="$PROJECT_DIR$/Code/MultiView/GetMutliviewDb.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Code/MultiView/Mumbo/Mumbo.py" afterPath="$PROJECT_DIR$/Code/MultiView/Mumbo/Mumbo.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Code/MultiView/Mumbo/analyzeResults.py" afterPath="$PROJECT_DIR$/Code/MultiView/Mumbo/analyzeResults.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Code/MultiView/run.py" afterPath="$PROJECT_DIR$/Code/MultiView/run.py" />
</list>
<ignored path="multiview-machine-learning-omis.iws" />
......@@ -19,6 +19,9 @@
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CoverageDataManager">
<SUITE FILE_PATH="coverage/multiview-machine-learning-omis$run.coverage" NAME="run Coverage Results" MODIFIED="1471020854632" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/Code/MultiView" />
</component>
<component name="CreatePatchCommitExecutor">
<option name="PATCH_PATH" value="" />
</component>
......@@ -32,7 +35,7 @@
<entry file="file://$PROJECT_DIR$/Code/MultiView/run.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="398" selection-start-line="1" selection-start-column="398" selection-end-line="1" selection-end-column="398" />
<caret line="1" column="191" selection-start-line="1" selection-start-column="191" selection-end-line="1" selection-end-column="191" />
<folding />
</state>
</provider>
......@@ -41,8 +44,8 @@
<file leaf-file-name="GetMutliviewDb.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Code/MultiView/GetMutliviewDb.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1559">
<caret line="307" column="42" selection-start-line="307" selection-start-column="42" selection-end-line="307" selection-end-column="42" />
<state relative-caret-position="829">
<caret line="299" column="0" selection-start-line="299" selection-start-column="0" selection-end-line="299" selection-end-column="0" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
......@@ -65,8 +68,8 @@
<file leaf-file-name="analyzeResults.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/analyzeResults.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-450">
<caret line="8" column="0" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
<state relative-caret-position="342">
<caret line="25" column="17" selection-start-line="25" selection-start-column="17" selection-end-line="25" selection-end-column="17" />
<folding>
<element signature="e#0#98#0" expanded="true" />
</folding>
......@@ -89,8 +92,8 @@
<file leaf-file-name="ExecMultiview.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Code/MultiView/ExecMultiview.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="112" column="52" selection-start-line="112" selection-start-column="52" selection-end-line="112" selection-end-column="52" />
<state relative-caret-position="429">
<caret line="139" column="14" selection-start-line="139" selection-start-column="14" selection-end-line="139" selection-end-column="14" />
<folding>
<element signature="e#0#10#0" expanded="true" />
</folding>
......@@ -98,6 +101,18 @@
</provider>
</entry>
</file>
<file leaf-file-name="Mumbo.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/Mumbo.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2376">
<caret line="420" column="26" selection-start-line="420" selection-start-column="26" selection-end-line="420" selection-end-column="26" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
......@@ -120,9 +135,10 @@
<list>
<option value="$PROJECT_DIR$/Code/MultiView/Mumbo/Classifiers/SubSampling.py" />
<option value="$PROJECT_DIR$/Code/MultiView/Mumbo/Classifiers/DecisionTree.py" />
<option value="$PROJECT_DIR$/Code/MultiView/Mumbo/analyzeResults.py" />
<option value="$PROJECT_DIR$/Code/MultiView/ExecMultiview.py" />
<option value="$PROJECT_DIR$/Code/MultiView/GetMutliviewDb.py" />
<option value="$PROJECT_DIR$/Code/MultiView/Mumbo/Mumbo.py" />
<option value="$PROJECT_DIR$/Code/MultiView/ExecMultiview.py" />
<option value="$PROJECT_DIR$/Code/MultiView/Mumbo/analyzeResults.py" />
<option value="$PROJECT_DIR$/Code/MultiView/run.py" />
</list>
</option>
......@@ -164,109 +180,12 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scratches" />
<pane id="ProjectPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="multiview-machine-learning-omis" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="multiview-machine-learning-omis" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="multiview-machine-learning-omis" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="multiview-machine-learning-omis" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="multiview-machine-learning-omis" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Code" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="multiview-machine-learning-omis" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="multiview-machine-learning-omis" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Code" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="MultiView" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="multiview-machine-learning-omis" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="multiview-machine-learning-omis" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Code" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="MultiView" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Mumbo" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="multiview-machine-learning-omis" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="multiview-machine-learning-omis" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Code" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="MultiView" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Mumbo" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Classifiers" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
<subPane />
</pane>
<pane id="PackagesPane" />
<pane id="Scope" />
<pane id="Scratches" />
</panes>
</component>
<component name="PropertiesComponent">
......@@ -918,6 +837,9 @@
<updated>1470923461095</updated>
<workItem from="1470923472536" duration="152000" />
<workItem from="1470924240911" duration="7842000" />
<workItem from="1470940573142" duration="1891000" />
<workItem from="1471009339279" duration="3484000" />
<workItem from="1471015625592" duration="4908000" />
</task>
<task id="LOCAL-00001" summary="Refactored and added subsampling file in classifiers module">
<created>1470926189095</created>
......@@ -930,11 +852,11 @@
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="7994000" />
<option name="totallyTimeSpent" value="18277000" />
</component>
<component name="ToolWindowManager">
<frame x="65" y="24" width="1855" height="1056" extended-state="6" />
<editor active="false" />
<editor active="true" />
<layout>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" 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="6" side_tool="false" content_ui="tabs" />
......@@ -942,25 +864,51 @@
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" 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="7" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Run" 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="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" 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="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32925585" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<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="7" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" 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="2" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24959569" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24959569" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32925585" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<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" />
<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" />
<window_info id="UI Designer" 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="2" side_tool="false" content_ui="tabs" />
<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" />
<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="2" side_tool="true" content_ui="tabs" />
<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" />
<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" />
<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" />
<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" />
<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" />
<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" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32925585" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
<layout-to-restore>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" 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="6" side_tool="false" content_ui="tabs" />
<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" />
<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" />
<window_info id="Palette&#9;" 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="2" side_tool="false" content_ui="tabs" />
<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" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" 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="7" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<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" />
<window_info id="Version Control" 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="8" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32925585" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<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="9" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" 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="3" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24959569" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<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" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32925585" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<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" />
<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" />
<window_info id="UI Designer" 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="4" side_tool="false" content_ui="tabs" />
<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="5" side_tool="true" content_ui="tabs" />
<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" />
</layout-to-restore>
</component>
<component name="Vcs.Log.UiProperties">
<option name="RECENTLY_FILTERED_USER_GROUPS">
......@@ -986,11 +934,184 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/Code/MultiView/run.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/GetMutliviewDb.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="5706">
<caret line="317" column="17" selection-start-line="317" selection-start-column="17" selection-end-line="317" selection-end-column="17" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/Classifiers/DecisionTree.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding>
<element signature="e#0#24#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/analyzeResults.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="8" column="0" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
<folding>
<element signature="e#0#98#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/Classifiers/SubSampling.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="13" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="13" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/ExecMultiview.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1998">
<caret line="112" column="52" selection-start-line="112" selection-start-column="52" selection-end-line="112" selection-end-column="52" />
<folding>
<element signature="e#0#10#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/run.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="405" selection-start-line="1" selection-start-column="11" selection-end-line="1" selection-end-column="405" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/GetMutliviewDb.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/Classifiers/DecisionTree.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding>
<element signature="e#0#24#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/analyzeResults.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="8" column="0" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
<folding>
<element signature="e#0#98#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/Classifiers/SubSampling.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="13" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="13" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/ExecMultiview.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1998">
<caret line="112" column="52" selection-start-line="112" selection-start-column="52" selection-end-line="112" selection-end-column="52" />
<folding>
<element signature="e#0#10#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/run.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/GetMutliviewDb.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="5526">
<caret line="307" column="42" selection-start-line="307" selection-start-column="42" selection-end-line="307" selection-end-column="42" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/Classifiers/DecisionTree.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding>
<element signature="e#0#24#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/analyzeResults.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="8" column="0" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
<folding>
<element signature="e#0#98#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/Classifiers/SubSampling.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="13" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="13" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/ExecMultiview.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1998">
<caret line="112" column="52" selection-start-line="112" selection-start-column="52" selection-end-line="112" selection-end-column="52" />
<folding>
<element signature="e#0#10#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Results/Results-FeatExtract-All/2016_02_05-CT-Mini-ClassLabels.csv">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="540">
<caret line="30" column="32" selection-start-line="30" selection-start-column="32" selection-end-line="30" selection-end-column="32" />
<folding />
</state>
</provider>
</entry>
......@@ -1006,7 +1127,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="540">
<caret line="30" column="32" selection-start-line="30" selection-start-column="32" selection-end-line="30" selection-end-column="32" />
<folding />
</state>
</provider>
</entry>
......@@ -1030,30 +1150,40 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/ExecMultiview.py">
<entry file="file://$PROJECT_DIR$/Code/MultiView/GetMutliviewDb.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="112" column="52" selection-start-line="112" selection-start-column="52" selection-end-line="112" selection-end-column="52" />
<state relative-caret-position="829">
<caret line="299" column="0" selection-start-line="299" selection-start-column="0" selection-end-line="299" selection-end-column="0" />
<folding>
<element signature="e#0#10#0" expanded="true" />
<element signature="e#0#18#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/analyzeResults.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-450">
<caret line="8" column="0" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
<state relative-caret-position="342">
<caret line="25" column="17" selection-start-line="25" selection-start-column="17" selection-end-line="25" selection-end-column="17" />
<folding>
<element signature="e#0#98#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/GetMutliviewDb.py">
<entry file="file://$PROJECT_DIR$/Code/MultiView/ExecMultiview.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1559">
<caret line="307" column="42" selection-start-line="307" selection-start-column="42" selection-end-line="307" selection-end-column="42" />
<state relative-caret-position="429">
<caret line="139" column="14" selection-start-line="139" selection-start-column="14" selection-end-line="139" selection-end-column="14" />
<folding>
<element signature="e#0#10#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Code/MultiView/Mumbo/Mumbo.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2376">
<caret line="420" column="26" selection-start-line="420" selection-start-column="26" selection-end-line="420" selection-end-column="26" />
<folding>
<element signature="e#0#18#0" expanded="true" />
</folding>
......@@ -1063,7 +1193,7 @@
<entry file="file://$PROJECT_DIR$/Code/MultiView/run.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="398" selection-start-line="1" selection-start-column="398" selection-end-line="1" selection-end-column="398" />
<caret line="1" column="191" selection-start-line="1" selection-start-column="191" selection-end-line="1" selection-end-column="191" />
<folding />
</state>
</provider>
......
......@@ -115,13 +115,14 @@ logging.info("Start:\t Read "+str.upper(dataBaseType[1:])+" Database Files for "
getDatabase = getattr(DB, "get" + args.name + "DB" + dataBaseType[1:])
DATASET, LABELS_DICTIONARY = getDatabase(views, args.pathF, args.name, NB_CLASS, LABELS_NAMES)
datasetLength = DATASET["/datasetLength"][...]
views = [str(DATASET["/View"+str(viewIndex)+"/name"][...]) for viewIndex in range(NB_VIEW)]
dataBaseType = "hdf5"
logging.info("Info:\t Labels used: " + ", ".join(LABELS_DICTIONARY.values()))
logging.info("Info:\t Length of dataset:" + str(datasetLength))
for viewIndex in range(NB_VIEW):
logging.info("Info:\t Shape of " + views[viewIndex] + " :" + str(
logging.info("Info:\t Shape of " + str(DATASET["/View"+str(viewIndex)+"/name"][...]) + " :" + str(
DATASET["View" + str(viewIndex) + "/shape"][...]))
logging.info("Done:\t Read Database Files")
......@@ -136,7 +137,7 @@ logging.info("Start:\t Determine "+str(nbFolds)+" folds")
if nbFolds != 1:
kFolds = DB.getKFoldIndices(nbFolds, DATASET["/Labels/labelsArray"][...], datasetLength, NB_CLASS, learningIndices)
else:
kFolds = [range(datasetLength), []]
kFolds = [[], range(datasetLength)]
logging.info("Info:\t Length of Learning Sets: " + str(datasetLength - len(kFolds[0])))
logging.info("Info:\t Length of Testing Sets: " + str(len(kFolds[0])))
......@@ -163,7 +164,7 @@ kFoldClassifier = []
# Begin Classification
for foldIdx, fold in enumerate(kFolds):
if fold:
if fold != range(datasetLength):
logging.info("\tStart:\t Fold number " + str(foldIdx + 1))
trainIndices = [index for index in range(datasetLength) if index not in fold]
DATASET_LENGTH = len(trainIndices)
......
......@@ -265,26 +265,9 @@ def getMultiOmicDBcsv(features, path, name, NB_CLASS, LABELS_NAMES):
datasetFile["/nbClass"] = 2
datasetFile["/datasetLength"] = len(datasetFile["/Labels/labelsArray"])
labelDictionary = {0:"No", 1:"Yes"}
datasetFile = getPseudoRNASeq(datasetFile)
# datasetFile = getPseudoRNASeq(datasetFile)
return datasetFile, labelDictionary
#
# def getDiscriminantScores(Dataset):
# nbGenes = len(Dataset["/View2/matrix"][0,:])
# labels = Dataset["/Labels/labelsArray"]
# discriminantScoresMatrix = np.zeros((nbGenes, nbGenes))
# for i in range(nbGenes):
# for j in range(nbGenes):
# if i > j:
# conditionalOrderingProbaYes = sum([(Dataset["/View2/matrix"][i, n] > Dataset["/View2/matrix"][i,n]) *
# (labels[n] == 1) for n in range(nbGenes)])/sum([(labels[n] == 1)
# for n in range(nbGenes)])
# conditionalOrderingProbaNo = sum([(Dataset["/View2/matrix"][i, n] > Dataset["/View2/matrix"][i,n]) *
# (labels[n] == 1) for n in range(nbGenes)])/sum([(labels[n] == 1)
# for n in range(nbGenes)])
# discriminantScoresMatrix[i,j] = conditionalOrderingProbaYes - conditionalOrderingProbaNo
# discriminantScoresArray = np.
def makeArrayFromTriangular(pseudoRNASeqMatrix):
matrixShape = len(pseudoRNASeqMatrix[0,:])
......@@ -297,26 +280,23 @@ def makeArrayFromTriangular(pseudoRNASeqMatrix):
return exampleArray
def getPseudoRNASeq(Dataset):
nbGenes = len(Dataset["/View2/matrix"][0,:])
pseudoRNASeqMatrix = np.zeros((nbGenes, nbGenes), dtype=int)
pseudoRNASeq = np.zeros((Dataset["/datasetlength"][...], ((nbGenes-1)*nbGenes)/2), dtype=int)
for exampleIndex in xrange(Dataset["/datasetlength"][...]):
def getPseudoRNASeq(dataset):
nbGenes = len(dataset["/View2/matrix"][0, :])
pseudoRNASeq = np.zeros((dataset["/datasetlength"][...], ((nbGenes - 1) * nbGenes) / 2), dtype=bool_)
for exampleIndex in xrange(dataset["/datasetlength"][...]):
arrayIndex = 0
for i in xrange(nbGenes):
for j in xrange(nbGenes):
if i > j:
pseudoRNASeqMatrix[i, j] = int(Dataset["/View2/matrix"][exampleIndex,j] < int(Dataset["/View2/matrix"]
[exampleIndex, i]))
exampleArray = makeArrayFromTriangular(pseudoRNASeqMatrix)
pseudoRNASeq[exampleIndex, :] = exampleArray
Dataset["/View4/matrix"] = pseudoRNASeq
Dataset["/View4/name"] = "pseudoRNASeq"
return Dataset
pseudoRNASeq[exampleIndex, arrayIndex] = dataset["/View2/matrix"][exampleIndex, j] < dataset["/View2/matrix"][exampleIndex, i]
arrayIndex += 1
dataset["/View4/matrix"] = pseudoRNASeq
dataset["/View4/name"] = "pseudoRNASeq"
return dataset
def getMultiOmicDBhdf5(features, path, name, NB_CLASS, LABELS_NAMES):
datasetFile = h5py.File(path+"MultiOmicDataset.hdf5", "r")
LABELS = datasetFile["/Labels/labelsArray"]
labelDictionary = {0:"No", 1:"Yes"}
return datasetFile, labelDictionary
......
......@@ -90,7 +90,7 @@ def trainWeakClassifiers(classifierNames, DATASET, CLASS_LABELS, costMatrices,
trainedClassifiersAndLabels = Parallel(n_jobs=NB_JOBS)(
delayed(trainWeakClassifier)(classifierNames[viewIndice], DATASET[viewIndice], CLASS_LABELS,
costMatrices, NB_CLASS, DATASET_LENGTH,
iterIndice, viewIndice, classifier_config[viewIndice],)
iterIndice, viewIndice, classifier_config[viewIndice])
for viewIndice in range(NB_VIEW))
for (classifier, labelsArray, isBad) in trainedClassifiersAndLabels:
......@@ -406,6 +406,7 @@ def predict(DATASET, classifier, NB_CLASS):
def predict_hdf5(DATASET, usedIndices, classifier, NB_CLASS):
if usedIndices:
classifiers, alphas, views = classifier
DATASET_LENGTH = len(usedIndices)
predictedLabels = np.zeros(DATASET_LENGTH)
......@@ -416,6 +417,8 @@ def predict_hdf5(DATASET, usedIndices, classifier, NB_CLASS):
data = DATASET["/View"+str(int(view))+"/matrix"][exampleIndex, :]
votes[int(classifier.predict(np.array([data])))] += alpha
predictedLabels[labelIndex] = np.argmax(votes)
else:
predictedLabels=[]
return predictedLabels
......
......@@ -15,14 +15,22 @@ def findMainView(bestViews):
return mainView
def plotAccuracyByIter(trainAccuracy, testAccuracy, validationAccuracy, NB_ITER, bestViews, features):
def plotAccuracyByIter(trainAccuracy, testAccuracy, validationAccuracy, NB_ITER, bestViews, features, classifierAnalysis):
x = range(NB_ITER)
mainView = findMainView(bestViews)
figure = plt.figure()
ax1 = figure.add_subplot(111)
ax1.set_title("Accuracy depending on iteration \n Best view = " + features[int(mainView)])
titleString = ""
for view, classifierConfig in zip(features, classifierAnalysis):
titleString += "\n" + view + " : " + classifierConfig
titleString+="Best view = " + features[int(mainView)]
ax1.set_title("Accuracy depending on iteration", fontsize=20)
plt.text(0.5, 1.08, titleString,
horizontalalignment='center',
fontsize=8,
transform = ax1.transAxes)
figure.subplots_adjust(top=0.8)
ax1.set_xlabel("Iteration Index")
ax1.set_ylabel("Accuracy")
ax1.plot(x, trainAccuracy, c='red', label='Train')
......@@ -87,7 +95,7 @@ def execute(kFoldClassifier, kFoldPredictedTrainLabels, kFoldPredictedTestLabels
kFoldAccuracyOnTestByIter = []
kFoldAccuracyOnValidationByIter = []
for foldIdx, fold in enumerate(kFolds):
if fold:
if fold!=range(DATASET_LENGTH):
bestClassifiers, generalAlphas, bestViews = kFoldClassifier[foldIdx]
trainIndices = [index for index in range(DATASET_LENGTH) if index not in fold]
testLabels = CLASS_LABELS[fold]
......@@ -131,7 +139,7 @@ def execute(kFoldClassifier, kFoldPredictedTrainLabels, kFoldPredictedTestLabels
weakClassifierConfigs = [getattr(globals()[classifierName], 'getConfig')(classifierConfig) for classifierConfig,
classifierName
in zip(classifierConfigs, classifierNames)]
classifierAnalysis = ["\n\t\t-" + classifierName + " " + weakClassifierConfig + "on " + feature for classifierName,
classifierAnalysis = [classifierName + " " + weakClassifierConfig + "on " + feature for classifierName,
weakClassifierConfig,
feature
in zip(classifierNames, weakClassifierConfigs, features)]
......@@ -143,7 +151,7 @@ def execute(kFoldClassifier, kFoldPredictedTrainLabels, kFoldPredictedTestLabels
', '.join(LABELS_DICTIONARY.values()) + "\n\t-Views : " + ', '.join(features) + "\n\t-" + str(
nbFolds) + \
" folds\n\nClassification configuration : \n\t-Algorithm used : Mumbo \n\t-Iterations : " + \
str(NB_ITER) + "\n\t-Weak Classifiers : " + " ".join(
str(NB_ITER) + "\n\t-Weak Classifiers : " + "\n\t\t-".join(
classifierAnalysis) + "\n\n For each iteration : "
for iterIndex in range(NB_ITER):
......@@ -153,7 +161,7 @@ def execute(kFoldClassifier, kFoldPredictedTrainLabels, kFoldPredictedTestLabels
str(kFoldAccuracyOnTrainByIter[foldIdx][iterIndex]) + '\n\t\t\tAccuracy on test : ' + \
str(kFoldAccuracyOnTestByIter[foldIdx][iterIndex]) + '\n\t\t\tAccuracy on validation : '+\
str(kFoldAccuracyOnValidationByIter[foldIdx][iterIndex]) + '\n\t\t\tSelected View : ' + \
features[int(kFoldBestViews[foldIdx][iterIndex])]
str(DATASET["/View"+str(int(kFoldBestViews[foldIdx][iterIndex]))+"/name"][...])
stringAnalysis += "\n\t\t- Mean : \n\t\t\t Accuracy on train : " + str(
np.array(kFoldAccuracyOnTrainByIter)[:, iterIndex].mean()) + \
"\n\t\t\t Accuracy on test : " + str(np.array(kFoldAccuracyOnTestByIter)[:, iterIndex].mean())
......@@ -175,7 +183,7 @@ def execute(kFoldClassifier, kFoldPredictedTrainLabels, kFoldPredictedTestLabels
testAccuracyByIter = np.array(kFoldAccuracyOnTestByIter).mean(axis=0)
validationAccuracyByIter = np.array(kFoldAccuracyOnValidationByIter).mean(axis=0)
name, image = plotAccuracyByIter(trainAccuracyByIter, testAccuracyByIter, validationAccuracyByIter, NB_ITER,
bestViews, features)
bestViews, features, classifierAnalysis)
imagesAnalysis = {name: image}
return stringAnalysis, imagesAnalysis
import os
os.system('python ExecMultiview.py -log --name MultiOmic --type .csv --views Methyl:MiRNA:RNASEQ:Clinical:PseudoRNASeq --pathF /home/bbauvin/Documents/Data/Data_multi_omics/ --CL_split 0.3 --CL_nbFolds 5 --CL_nb_class 2 --CL_classes Positive:Negative --CL_type Mumbo --CL_cores 4 --MU_type DecisionTree:DecisionTree:DecisionTree:DecisionTree:DecisionTree --MU_config 1:0.09 1:0.09 1:0.9 2:1.0 3:1.0 --MU_iter 1')
os.system('python ExecMultiview.py -log --name MultiOmic --type .hdf5 --views Methyl:MiRNA:RNASEQ:Clinical --pathF /home/bbauvin/Documents/Data/Data_multi_omics/ --CL_split 0.3 --CL_nbFolds 5 --CL_nb_class 2 --CL_classes Positive:Negative --CL_type Mumbo --CL_cores 4 --MU_type DecisionTree:DecisionTree:DecisionTree:DecisionTree --MU_config 1:0.015 1:0.015 1:0.1 2:0.3 --MU_iter 400')
# /donnees/pj_bdd_bbauvin/Data_multi_omics/
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment