Exemplo n.º 1
0
    def load_table(name, external=False, sep=','):
        '''
        This function loads a csv file to into a Qtable
        '''

        # Here we're just finding the delimiters in case someone
        # wants tab separation or whatever other crazy formats
        # someone might try to stuff through here. Note: Autodetecting
        # the delimiter with sniffer does not work very well for online
        # csv files, at least how I tried it. So I guess we can write this:
        # TODO: figure out how to make csv.sniffer work well with online files
        # so we can autodetect the delimiters.

        # Probably not the best way of doing this...
        extension = name.split(".")[-1]
        if extension != 'csv':
            print("The file " + name +
                  " needs to be a .csv file to load properly")
            return

        # The tables made by the QtableWidget have a little bit of a different
        # format that caouses the index to be topsy-turvy as compared to regular
        # csv files, this flag prevents us from accidentally using data as an index
        try:
            if not external:
                df = pd.read_csv(name, index_col=0, sep=sep)
            if external:
                try:
                    df = pd.read_csv(name, sep=sep)
                except UnicodeDecodeError:
                    df = pd.read_csv(name, sep=sep, encoding="ISO-8859-1")

        except FileNotFoundError:
            print("Cannot find the file " + name +
                  ", please check that the path is correct.")
            return

        # This lets us scroll large data sets.
        qgrid.set_grid_option('forceFitColumns', False)
        return qgrid.show_grid(df, show_toolbar=True)
Exemplo n.º 2
0
except ImportError:
    from IPython.html import widgets
try:
    import traitlets
except ImportError:
    from IPython.utils import traitlets
from . import (
    retrieve, LcmsRun, to_dataframe, database, get_chromatogram,
    get_spectrogram, get_info
)
from .object_helpers import format_timestamp

try:
    import qgrid
    qgrid.nbinstall(overwrite=True)
    qgrid.set_grid_option('forceFitColumns', False)
    qgrid.set_grid_option('defaultColumnWidth', 120)
except Exception:
    print('Could not import QGrid')


def create_qgrid(objects, options=None):
    """Create a qgrid from a list of metatlas objects.
    """
    dataframe = to_dataframe(objects)
    if options:
        defaults = qgrid.grid.defaults.grid_options
        options = defaults.update(options)
    else:
        options = qgrid.grid.defaults.grid_options
    grid = qgrid.grid.QGridWidget(df=dataframe,
Exemplo n.º 3
0
    def create_joblist_tab(self):
        items = []
        self.btn_joblist_visualize = self.create_btn('Visualize', 'success')
        self.btn_joblist_download = self.create_btn('Download', 'warning')
        self.btn_joblist_delete = self.create_btn('Delete', 'danger')
        self.btn_joblist_refresh = self.create_btn('Refresh', 'info')

        # Buttons
        items.append(
            ipyw.Box([
                self.btn_joblist_visualize, self.btn_joblist_download,
                self.btn_joblist_delete, self.btn_joblist_refresh
            ]))
        #items.append(ipyw.Box([self.btn_joblist_visualize, self.btn_joblist_delete, self.btn_joblist_refresh]))

        # Job list Grid
        qgrid.set_grid_option('maxVisibleRows', 10)
        df = pd.DataFrame(columns=self.JOBLIST_COLS).set_index('jobid')

        self.grid_joblist = qgrid.show_grid(df,
                                            grid_options={
                                                'editable': False,
                                                'fullWidthRows': False,
                                                'forceFitColumns': False,
                                                'defaultColumnWidth': 144
                                            })
        self.grid_joblist.add_class('hg_grid_joblist')
        items.append(self.grid_joblist)

        # for grid click handler
        display(
            Javascript('''
        document.addEventListener("DOMNodeInserted", function (ev) {
          var node = ev.target;
          if( $(node).hasClass('slick-row') ){
          	$(node).click(function(){
                if ($(this)[0].children.length > 0){
                    var jobid = $(this)[0].children[0].innerHTML;
                    //console.log("Init.hgmain.load_job_output(" + jobid+ ")");
                    IPython.notebook.kernel.execute("Init.hgmain.load_job_output(" + jobid+ ")");
                }
            });
          }
        });
        '''))

        self.txt_joboutout_title = ipyw.Label(value='Output')
        items.append(self.txt_joboutout_title)
        self.txt_joboutput = ipyw.Textarea(value='',
                                           layout=ipyw.Layout(height="250px",
                                                              width="100%"),
                                           disabled=True)

        self.txt_joboutput.add_class('hg_txt_joboutput')

        items.append(self.txt_joboutput)

        panel = ipyw.Box(items,
                         layout=ipyw.Layout(display='flex',
                                            flex_flow='column',
                                            border='1px solid #ddd',
                                            width='100%',
                                            padding='10px 10px 10px 10px'))

        panel.add_class('hg_tab_content')
        return panel
Exemplo n.º 4
0
from metatlas import gui as mgui
import numpy as np
import time
import os

from IPython.display import display

try:
    import ipywidgets as widgets
except ImportError:
    from IPython.html import widgets

try:
    import qgrid
    qgrid.nbinstall(overwrite=True)
    qgrid.set_grid_option('defaultColumnWidth', 200)
except Exception:
    print('Could not import QGrid')

from datetime import datetime
import pandas as pd
import json
import gspread
from oauth2client.client import SignedJwtAssertionCredentials

from matplotlib import pyplot as plt
import re


def clean_string(oldstr):
    newstr = re.sub('[\[\]]', '', oldstr)
Exemplo n.º 5
0
from ipywidgets import HTML
import ipywidgets as widgets
from oawidgets.plantgl import PlantGL

import openalea.strawberry
from openalea.mtg.io import write_mtg
from openalea.mtg import MTG
from openalea.strawberry.application.layout import layout_dataframe, layout_output_wgt, layout_visu3d
from openalea.deploy.shared_data import shared_data

data_directory = shared_data(openalea.strawberry.__path__)

if layout_dataframe == "qgrid":
    try:
        import qgrid
        qgrid.set_grid_option('maxVisibleRows', 10)
    except:
        layout_dataframe == "pandas"

if layout_visu3d == "pgljupyter":
    try:
        from pgljupyter import SceneWidget
    except:
        layout_visu3d = "oawidgets"


def init_allmtg():
    global all_mtg
    all_mtg = MTG()

Exemplo n.º 6
0
import sys
import sqlparse

# Import all models for current dataset
m = ModelDelegator(os.environ.get('DATASET'))
m.import_all(globals())

# Access to Scanner protobufs
cfg = Config()
proto = ProtobufGenerator(cfg)

# Only run if we're in an IPython notebook
if get_ipython() is not None:
    # Render all DataFrames via qgrid
    import qgrid
    qgrid.set_grid_option('minVisibleRows', 1)
    qgrid.enable()

    # Matplotlib/seaborn config
    import matplotlib.pyplot as plt
    import seaborn as sns
    plt.rc("axes.spines", top=False, right=False)
    sns.set_style('white')


def progress_bar(n):
    import progressbar
    return progressbar.ProgressBar(max_value=n,
                                   widgets=[
                                       progressxbar.Percentage(),
                                       ' ',
Exemplo n.º 7
0
import sys
sys.path.insert(
    0,
    '/global/project/projectdirs/metatlas/anaconda/lib/python2.7/site-packages'
)
#sys.path.append('/project/projectdirs/metatlas/projects/ms_monitor_tools')
import metatlas_get_data_helper_fun as ma_data
from metatlas import metatlas_objects as metob
from metatlas import h5_query as h5q
from metatlas import gui as mgui
import numpy as np
import os
from IPython.display import display
try:
    import ipywidgets as widgets
except ImportError:
    from IPython.html import widgets
try:
    import qgrid
    qgrid.nbinstall(overwrite=True)
    qgrid.set_grid_option('defaultColumnWidth', 200)
except Exception:
    print('Could not import QGrid')
from datetime import datetime
import pandas as pd
import json
import gspread
from oauth2client.client import SignedJwtAssertionCredentials

def get_rt_mz_tolerance_from_user():
Exemplo n.º 8
0
import sys
sys.path.insert(0,'/global/project/projectdirs/metatlas/anaconda/lib/python2.7/site-packages' )
#sys.path.append('/project/projectdirs/metatlas/projects/ms_monitor_tools')
import metatlas_get_data_helper_fun as ma_data
from metatlas import metatlas_objects as metob
from metatlas import h5_query as h5q
from metatlas import gui as mgui
import numpy as np

import os

from IPython.display import display

try:
    import ipywidgets as widgets
except ImportError:
    from IPython.html import widgets

try:
    import qgrid
    qgrid.nbinstall(overwrite=True)
    qgrid.set_grid_option('defaultColumnWidth', 200)
except Exception:
    print('Could not import QGrid')

from datetime import datetime
import pandas as pd
import json
import gspread
from oauth2client.client import SignedJwtAssertionCredentials
Exemplo n.º 9
0
from metatlas import gui as mgui
import numpy as np
import time
import os

from IPython.display import display

try:
    import ipywidgets as widgets
except ImportError:
    from IPython.html import widgets

try:
    import qgrid
    qgrid.nbinstall(overwrite=True)
    qgrid.set_grid_option('defaultColumnWidth', 200)
except Exception:
    print('Could not import QGrid')

from datetime import datetime
import pandas as pd
import json
import gspread
from oauth2client.client import SignedJwtAssertionCredentials

from matplotlib import pyplot as plt
import re

def clean_string(oldstr):
    newstr = re.sub('[\[\]]','',oldstr)
    newstr = re.sub('[^A-Za-z0-9+-]+', '_', newstr)