TraitDB
TraitDB: Web application database of phenotypic trait data. - Published in JOSS (2019)
Science Score: 93.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Repository
Trait Database using Rails 4
Basic Info
Statistics
- Stars: 4
- Watchers: 4
- Forks: 2
- Open Issues: 29
- Releases: 5
Metadata Files
README.md
TraitDB
Synopsis
TraitDB is a Ruby on Rails web application for storing and searching trait data. It is in development at NESCent to support working groups.
Installation
TraitDB is a Rails 4 application. It requires ruby and rubygems to run. Other dependencies are specified in the Gemfile. To get up and running with the development environment, you will need Postgres installed. TraitDB can also be configured to work with MySQL if you wish, but Postgres is preferred.
Clone the repository
git clone git@github.com:NESCent/TraitDB.gitInstall dependencies with
bundle installSet your database credentials as environment variables.
config/database.ymlwill read these values out of the environment. If your database server is on a different host, set the host/port as well:export TRAITDB_PG_DEV_USER="traitdb_dev_user" export TRAITDB_PG_DEV_PASS="your-password-here"Run
createuser -d -P traitdb_dev_userto create this user in your database.Run
rake db:setup. It will verify rails can connect to the database and run arake db:migrateto create database tables. If not successful, you can create the databases and users manually, then runrake db:migratemanually.If you wish to enable Google Sign-in (recommended), you will need to
- Register an application for Google OAuth 2.0
- Enable the Google+ API
- Set the Client ID and Client Secret credentials in your environment:
export TRAITDB_GOOGLE_APP_ID="your-google-app-id" export TRAITDB_GOOGLE_APP_SECRET="your-google-app-secret"
Start the server with
rails server.Visit http://localhost:3000 to access the application. You will be shown the about page. If you click Upload, you will be redirected to the sign-in screen. From here, you can sign in with OpenID or a Google Account
Start a delayed_job worker. Delayed job is used to execute dataset imports as a background process. It includes a rake task to start a worker. You can run
rake jobs:workin an additional terminal process, or run a worker as a daemon withscript/delayed_job start.
Usage
Getting Started - Projects and Users
Data in TraitDB is publicly searchable and organized into projects. Initially there are no projects, and only administrators can create projects. Authentication is handled by OpenID, so in order to get started, you must:
- After signing in, there will be an entry in the users table with your email address.
- Upgrade this user to an Administrator with the following rake command:
$ rake traitdb:upgrade_admin[email@domain.com] Upgrading email@domain.com - Reload your web browser, you will have an Admin menu option.
- Click Admin->Projects, and the New Project button.
- Fill out the project details and save the new project
Any authenticated user can upload data to any project, but only administrators can create projects and upload Import Configs.
Upload
TraitDB accepts data uploads in CSV format, with a specific focus on data validation and organization. Only logged-in users can upload data. When not logged-in, the upload link will not appear.
In order to upload data into a project, you must write at least one import configuration file in YAML format. This configuration file will contain the project-specific data for your spreadsheets, as well as allowable values and rules for data relationships and which columns to import, ignore, or convert.
For detailed information on writing import configs, see the documentation on the wiki.
Examples for the configuration files are in the lib/traitdb_import directory.
Generally, the CSV files are required to have the following general characteristics
- The first row contains column header names The column names include Taxonomic ranks (e.g. Order, Genus, Species), names of traits, and column names for metadata.
- Each data row includes trait data and metadata for one Operational Taxonomic Unit (OTU)
- Data for a single trait (column) may be either categorical (One or more string tokens separated by a delimeter) or continuous (floating point values)
- Source / Reference information for a trait may be in an associated column
As an admin user, you can upload and manage Import Configs for a project. Authenticated users will be able to choose an Import Config when they upload data to the project.
At the upload stage, the user can get information about the Import Config, or download a template CSV file that conforms to it.
Community
For contributing to TraitDB (patches, feature requests, bugs), please see CONTRIBUTING.md. For support requests, please create an issue.
License
TraitDB is open source under the MIT License. See LICENSE.txt for more information.
Owner
- Name: National Evolutionary Synthesis Center
- Login: NESCent
- Kind: organization
- Email: informatics@nescent.org
- Location: Durham, NC
- Website: http://nescent.org
- Repositories: 48
- Profile: https://github.com/NESCent
JOSS Publication
TraitDB: Web application database of phenotypic trait data.
Authors
National Evolutionary Synthesis Center
Tags
trait rails csvCodeMeta (codemeta.json)
{
"@context": "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld",
"@type": "Code",
"author": [
{
"@id": " https://orcid.org/0000-0003-3221-9579",
"@type": "Person",
"email": "dan.leehr@duke.edu",
"name": "Dan Leehr",
"affiliation": "Duke University"
}
],
"identifier": "",
"codeRepository": "https://github.com/NESCent/TraitDB",
"datePublished": "2018-07-20",
"dateModified": "2019-03-26",
"dateCreated": "2018-07-20",
"description": "Web application database of phenotypic trait data",
"keywords": "trait, rails, csv",
"license": "MIT",
"title": "TraitDB",
"version": "v1.0.1"
}
GitHub Events
Total
Last Year
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Dan Leehr | d****r@n****g | 650 |
| Vladimir Gapeyev | v****v@n****g | 1 |
| Steve Moss | g****l@g****m | 1 |
| Katrin Leinweber | k****r | 1 |
| Hilmar Lapp | h****p@d****t | 1 |
| Bryce Mecum | p****h@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 47
- Total pull requests: 100
- Average time to close issues: 7 months
- Average time to close pull requests: 1 day
- Total issue authors: 5
- Total pull request authors: 4
- Average comments per issue: 0.45
- Average comments per pull request: 0.29
- Merged pull requests: 99
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- dleehr (40)
- hlapp (3)
- eeg (2)
- amoeba (1)
- gawbul (1)
Pull Request Authors
- dleehr (96)
- hlapp (2)
- katrinleinweber (1)
- amoeba (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- capybara ~> 2.2.1 development
- coveralls >= 0 development
- poltergeist ~> 1.5.0 development
- rake >= 0 development
- webmock ~> 1.17.4 development
- aws-sdk ~> 1.51.0
- coffee-rails ~> 4.0.1
- daemons >= 0
- delayed_job ~> 4.0.0
- delayed_job_active_record ~> 4.0.0
- devise ~> 3.3.0
- jquery-rails >= 0
- jquery-tablesorter ~> 1.26.1
- less-rails-bootstrap ~> 2.3.3
- omniauth ~> 1.2.2
- omniauth-google-oauth2 >= 0
- omniauth-openid ~> 1.0.1
- paperclip ~> 4.3.7
- pg ~> 0.17.1
- protected_attributes ~> 1.0.8
- rails = 4.1.4
- rails_12factor >= 0
- sass-rails ~> 4.0.3
- therubyracer >= 0
- thin >= 0
- uglifier ~> 2.5.1
- wicked >= 0
- actionmailer 4.1.4
- actionpack 4.1.4
- actionview 4.1.4
- activemodel 4.1.4
- activerecord 4.1.4
- activesupport 4.1.4
- addressable 2.5.2
- arel 5.0.1.20140414130214
- aws-sdk 1.51.0
- bcrypt 3.1.11
- builder 3.2.3
- capybara 2.2.1
- climate_control 0.2.0
- cliver 0.3.2
- cocaine 0.5.8
- coffee-rails 4.0.1
- coffee-script 2.4.1
- coffee-script-source 1.12.2
- commonjs 0.2.7
- concurrent-ruby 1.0.5
- coveralls 0.8.21
- crack 0.4.3
- daemons 1.2.5
- delayed_job 4.0.6
- delayed_job_active_record 4.0.3
- devise 3.3.0
- docile 1.1.5
- erubis 2.7.0
- eventmachine 1.2.5
- execjs 2.7.0
- faraday 0.12.2
- hashie 3.5.7
- hike 1.2.3
- i18n 0.9.1
- jquery-rails 3.1.4
- jquery-tablesorter 1.26.1
- json 1.8.6
- jwt 1.5.6
- less 2.3.3
- less-rails 2.3.3
- less-rails-bootstrap 2.3.3
- libv8 3.16.14.19
- mail 2.5.5
- mime-types 1.25.1
- mimemagic 0.3.0
- mini_portile2 2.3.0
- minitest 5.10.3
- multi_json 1.12.2
- multi_xml 0.6.0
- multipart-post 2.0.0
- nokogiri 1.8.1
- oauth2 1.4.0
- omniauth 1.2.2
- omniauth-google-oauth2 0.5.2
- omniauth-oauth2 1.5.0
- omniauth-openid 1.0.1
- orm_adapter 0.5.0
- paperclip 4.3.7
- pg 0.17.1
- poltergeist 1.5.1
- polyglot 0.3.5
- protected_attributes 1.0.9
- public_suffix 3.0.1
- rack 1.5.5
- rack-openid 1.3.1
- rack-test 0.6.3
- rails 4.1.4
- rails_12factor 0.0.3
- rails_serve_static_assets 0.0.5
- rails_stdout_logging 0.0.5
- railties 4.1.4
- rake 12.3.0
- ref 2.0.0
- ruby-openid 2.7.0
- safe_yaml 1.0.4
- sass 3.2.19
- sass-rails 4.0.5
- simplecov 0.14.1
- simplecov-html 0.10.2
- sprockets 2.12.4
- sprockets-rails 2.3.3
- term-ansicolor 1.6.0
- therubyracer 0.12.3
- thin 1.7.2
- thor 0.19.4
- thread_safe 0.3.6
- tilt 1.4.1
- tins 1.16.3
- treetop 1.4.15
- tzinfo 1.2.4
- uglifier 2.5.3
- warden 1.2.7
- webmock 1.17.4
- websocket-driver 0.7.0
- websocket-extensions 0.1.3
- wicked 1.3.2
- xpath 2.1.0
