Giter Site home page Giter Site logo

comp-engine-features's Introduction

Comp-Engine-Features

DOI

Comp-Engine-Features is a web platform that compares a user's time-series analysis algorithm (python) and compares its behavior to that of a library of >7000 existing algorithms from hctsa.

See CompEngine for an analogous living library of time-series data.

To setup and run on localhost:

  1. Clone the repository.
  2. Install all the required packages mentioned in requirements.txt
   pip install -r requirements.txt
  1. In settings.pymake the following changes:
   Debug=True
   Allowed_hosts=[]
  1. Create .env file in the project's root directory and add the secret key in it.
SECRET_KEY= "Add 50 characters long string by combination of
             digits,characters,special characters and symbols"
  1. Run the app
   python manage.py runserver

How to use :

To use Comp-Engine-Features:

  1. Create a .py file containing analysis method coded in python (structure of the code is mentioned in HowItWorks page. )

  2. Submit the function name and the .py file on the form given on home page.

  3. Get the results.

You can also download all the best matching results in .csv format.


Contribution

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

comp-engine-features's People

Contributors

benfulcher avatar diptanshumittal avatar salmankhancodes avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

diptanshumittal

comp-engine-features's Issues

[INVALID] Requirements for Linux/MacOS

File "requirements.txt" contains pywin32 as the required package. pywin32 is a wrapper for Windows API calls and thus only supports Windows OS. Users installing the requirements in other OS will face errors.

[BUG] Download Results fails to download file

In the current implementation, the anchor tag for downloading results in results.html is having "/exploremode/1/media/matching%20data.csv" as the hyperlink. This hyperlink doesn't matches with URLs in the CompEngineFeaturesWeb app. Thus "NOT FOUND" error is showed on the development server, and downloading fails due to "no file".

Some ways to fix the problem are -

  1. Remove the curly brackets in the href attribute of the downloading button's anchor tag which will make the hyperlink point to "/media/matching%20data.csv". Given the settings in the urls.py of the project, we will get the file, but this will work only on the development server.
  2. Instead of sending only the top 100 features in the JSON format, send complete data and for downloading convert it to CSV using Javascript.
  3. Django’s HttpResponse objects are file-like objects, and python's CSV module acts on file-like objects. Thus we can output CSV files dynamically using Django's views and can even stream large CSV files using StreamingHttpResponse.

[INVALID] Mechanism to store feature's complete results in CSV

CSV for complete results of a feature is stored inside "matching data.csv" inside the media folder.
There is a possibility that in the time gap between a user getting results for a feature and downloading complete results for a feature, another user sends a request and updates the CSV file used to store results.

Possible workarounds can be

  1. Store results for each request in a separate CSV file and send the filename along with the response.
  2. Send complete results in the JSON format in the response and use Javascript to convert results into CSV format for download.

[ENHANCEMENT] Decrease computation time for feture exploration using buffer memory

In the current implementation, on every request, results for the feature are computed from scratch.
This creates a hindrance in the smooth analysis as the computation time takes around 12sec.
Using OrderedDict in python, we can store results for the last "x" features explored.
OrderedDict helps in preserving the order in which the keys are inserted and has the functionality of dictionaries.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.