Exemple #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)
Exemple #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,
    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
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)
Exemple #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()

Exemple #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(),
                                       ' ',
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():
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
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)