- Notifications
You must be signed in to change notification settings - Fork0
A digital repository for biomedical data based on a flexible JSON data model
License
xtens-suite/xtens-app
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
XTENS 2 is an open source web-based digital repository for heterogeneous data in life science.
- Replaced the one-to-many with a many-to-many relationship between Data, Sample, and Subject tables. Now a data instance can have multiple children and multiple fathers.
- Minor fixes and improvements
To migrate from XTENS 2 v2.3 tov3.0 follow the link:guide
Download The last Release (v3.0) and follow the guide
It is designed with the following features:
- Define simply and quickly complex hierarchical structures without any code updating
- Handle multiple projects. For each project, you can define a different Data type structure
- Manage heterogenous data (subjects, samples, any type of data)
- Roles and privileges system to handle data access and allowed operations for any authenticated user
- Allows to handle binary data, organizing them in a distributed storage between all different centers of research
- Execute complex query through a simple and intuitive query builder interface ( based hierarchical data structure dynamically) and then export the query results in Excel format
- Provided by a RestFul Api Interface to allow direct communication with third application programs
At first you need to install Docker. Please follow the instructions to install docker based on your machine OS:
After the successful installation, run docker and all you need to do is:
cd dockerdocker volume create xtensdbvolumedocker-compose upIf you already have run xtens-app with docker and want to fetch the last docker image of xtens-app, type (inside xtens-app/docker path)
docker pull iggbiolmol/xtensapp-dockerdocker-compose upThen, you just need to open a web browser (chrome is recommanded) and type
http://localhost:1337into the adress bar to access XTENS.
The XTENS Admin User has the usernamedefaultAdmin and the passwordAdmin1234!. In order to use administrate XTENS, like manage Projects, Groups, Operators, Datatype Privileges, one has to be logged in with this username and password.
The following software packages are required to be installed on your system:
- Download the Release file (zip or tar gz) and extract it:
OR:
Clone the repository:
git clone https://github.com/xtens-suite/xtens-app.git
THEN:
Move into xtens-app directory:
cd xtens-appInstall npm packages:
[sudo] npm install sails -g npm install && npm install sails [sudo] npm install grunt-cli -g [sudo] npm install bower -gInstall ruby and sass
[sudo] apt-get install ruby [sudo] gem install sassInstall bower packages:
bower installLoad the bower packages:
grunt bowerCreate logs folder
mkdir logs
Now configure PostgreSQL:
Create a PostreSQL user with a password
Create a database owned by the user just created
Import the sql-schema located in xtens-app/db-schema/ into database
Then create a file namedlocal.js in theconfig/ directory. This config file should include any settings specific of your local system/setup (db passwords, operators etc.).
In the minimal setup it should contain the following information, including two default users with two user groups (an admin and a standard user).
module.exports = { port: process.env.PORT || #port, environment: process.env.NODE_ENV || 'development', connections: { 'default': 'postgresql', //your default database connection postgresql: { //your database connection adapter: 'sails-postgresql', //sails adapter host: '127.0.0.1', //ip host port: '5432', //db port (postgresql default port 5432) user: 'user', //db user password: 'password', //db user password database: 'xtensdatabase', //db name schema: true }, }, defaultGroups: [ //array of default groups { name: "admin", privilegeLevel: "wheel", canAccessPersonalData: true, canAccessSensitiveData: true }, { name: "public", privilegeLevel: "standard", canAccessPersonalData: false, canAccessSensitiveData: false } ], defaultOperators: [ //array of default users { firstName: 'default administrator', lastName: 'sysadmin', birthDate: '1970-01-01', sex: 'N.A.', email: 'email@domain.com', login: 'defaultAdmin', password: 'password', groups: [1] //operator "defaultAdmin" is associated with group "admin" }, { firstName: 'default user', lastName: 'demo user', birthDate: '1970-01-01', sex: 'N.A.', email: 'email@domain.com', login: 'demouser', password: 'password', groups: [2] //operator "demouser" is associated with group "public" } ]};Last set your connection inconfig/models.js file
module.exports.models = { migrate: 'safe', connection: 'postgresql' // your db connection name};You can choose among two options to store raw/bulk data files:
First choice:
This solution uses the file system of the local (server) machine. It is raccomended if it is not necessary share data with different centers or distribuite them across machines
- Edit local.js file in xtens-app/config/ with the proper settings
e.g:
module.exports = { port: .., environment: .., connections: { 'default': 'dbconnection', dbconnection: { ... } }, fileSystemConnections: { 'default': 'localConnection', localConnection: { type: 'local', path: '/filesystem/home/path/', // your fs home path repoDirectory: 'xtens-repo', // default Directory name landingDirectory: 'landing', // landing directory name } }, defaultOperators: [{ ... }]};Second choice:
This is the supported solution for distribuited data grid scenarios, using iRODS (https://irods.org/)Irods File System Prerequisities:
- Irods Data Grid
- Tomcat Server
- Java
- Irods Rest Api
Install and configure irods following the official guide at:https://docs.irods.org/4.1.10/
Before install tomcat, must be install Java environment
Install JAVA environment:
sudo apt-get install python-software-properties sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java7-installerSet env variable $JAVA_HOME in /etc/environment
sudo update-alternatives --config java // Display the JAVA_HOME directory to be setted in $JAVA_HOME sudo nano /etc/environment JAVA_HOME=/usr/lib/jvm/java-7-oracle // e.g. line to be added source /etc/environment
Now can install Tomcat Server (7th version): follow any installation guide likethis.
Install maven to build the tomcat package:
sudo apt-get purge maven maven2 maven3 sudo apt-add-repository ppa:andrei-pozolotin/maven3 sudo apt-get update sudo apt-get install maven3Download the zip file or clone the repo:
git clone https://github.com/DICE-UNC/irods-rest.gitEdit the config file jargon_beans.xml located in /irods-rest/src/main/resources/ with the right settings
sudo nano /irods-rest/src/main/resources/jargon_beans.xml
For any problem read the documentation at:https://github.com/DICE-UNC/irods-rest/blob/master/docs/iRODS_REST_API_Documentation.pdf
Built the tomcat package. In /irods-rest directory execute:
mvn package -Dmaven.test.skip=trueLoad the irods-rest.war package located in /irods-rest/target on tomcat server ( e.g. athttp://host:8080 )
Last Put into local.js file in xtens-app/config/ the file system settings choosed during configuration
e.g:
module.exports = { port: .., environment: .., connections: { 'default': 'dbconnection', dbconnection: { ... } }, fileSystemConnections: { 'default': 'irodRestConn', irodRestConn: { type: 'irods-rest', restURL: { // irods-rest url protocol:'http:', // protocol hostname: 'host', // tomcat ip host port: 8080, // tomcat port path: '/irods-rest/rest' // path }, irodsHome: '/nameZone/home/rods', // irods home path repoCollection: 'xtens-repo', // irods default Collection name landingCollection: 'landing', // irods landing directory name username: 'user', // irods user password: 'password' // irods user password } },defaultOperators: [{ ... }]};
You need to be in xtens-app directory:
cd path/xtens-appTo start sails (and the application) in production mode:
sails lift --prodor:
node app.js --prodTo ensure that XTENS 2 will be executed without interrupts, install a simple CLI tool like ForeverJS:
$ [sudo] npm install forever -gand now you can start your XTENS 2 Platform:
NODE_ENV=production forever start app.jsNow you can go to the application pagehttp://host:port/#/. (the host is the ip address that you set in local.js and port is the "port: process.env.PORT || #port;" that you set in local.js).
The XTENS Admin User has the usernamedefaultAdmin and the passwordAdmin1234!. In order to use administrate XTENS, like manage Projects, Groups, Operators, Datatype Privileges, one has to be logged in with this username and password.
To discover XTENS 2 RESTful API follow the link:RESTful API
To migrate from XTENS 2 v2.0.0 tov2.1.0 follow the link:guideDownload Release (v2.1.0)
To migrate from XTENS 2 v2.2.0 tov2.3.0 follow the link:guideDownload Release (v2.3.0)
XTENS 2 is published under the BSD 3-clause License.
About
A digital repository for biomedical data based on a flexible JSON data model
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.







