Skip to content
Snippets Groups Projects
Commit f6de4a1a authored by David Sehnal's avatar David Sehnal
Browse files

Updated readme + cleanup

parent 6dbc1b35
No related branches found
No related tags found
No related merge requests found
The MIT License
Copyright (c) 2017, Mol* contributors
Copyright (c) 2017 - now, Mol* contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
......
[![License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](./LICENSE)
# Mol*
[![License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://github.com/arose/molio/blob/master/LICENSE)
The goal of **Mol\*** (*/'mol-star/*) is to provide a technology stack that will serve as basis for the next-generation data delivery and analysis tools for macromolecular structure data. This is a collaboration between PDBe and RCSB PDB teams and the development will be open source and available to anyone who wants to use it for developing visualisation tools for macromolecular structure data available from [PDB](https://www.wwpdb.org/) and other institutions.
- general, non-opinionated library for reading and writing molecular structure related file formats
- extending on the ideas of the CIFTools.js library
This particular project is a prototype implementation of this technology (still under development).
## Project Overview
## Module Overview
The core of Mol* currently consists of these modules:
- `mol-task` Computation abstraction with progress tracking and cancellation support.
- `mol-data` Collections (integer based sets, inteface to columns/tables, etc.)
- `mol-data` Collections (integer based sets, interface to columns/tables, etc.)
- `mol-math` Math related (loosely) algorithms and data structures.
- `mol-io` Parsing library. Each format is parsed into an interface that corresponds to the data stored by it.
- `mol-model` Data structures and algorithms (such as querying) for representing molecular data.
- `mol-ql` Mapping of `mol-model` to the MolQL query language spec.
- `mol-io` Parsing library. Each format is parsed into an interface that corresponds to the data stored by it. Support for common coordinate, experimental/map, and annotation data formats.
- `mol-model` Data structures and algorithms (such as querying) for representing molecular data (including coordinate, experimental/map, and annotation data).
- `mol-ql` Mapping of `mol-model` to the [MolQL query language](https://molql.github.io) spec.
- `mol-util` Useful things that do not fit elsewhere.
The project also contains performance tests (`perf-tests`), `examples`, and basic proof of concept `apps` (CIF to BinaryCIF converter and JSON domain annotation to CIF converter).
## Previous Work
This project builds on experience from previous solutions:
- [LiteMol Suite](https://www.litemol.org)
- [WebChemistry](https://webchem.ncbr.muni.cz)
- [NGL Viewer](http://nglviewer.org/)
- [MolQL](https://molql.github.io)
- [PDB Component Library](https://www.ebi.ac.uk/pdbe/pdb-component-library/)
- And many others (list will be continuously expanded).
## Building & Running
### Build:
npm install
npm run build
npm install
npm run build
### Build automatically on file save:
npm run watch
npm run watch
### Bundle with rollup (UMD and ES6)
npm run bundle
### Make distribution files
npm run dist
### Build everything above
npm run-script build && npm run-script bundle && npm run-script dist
## Example script
### Build
npm run script
### Run
node ./build/js/script.js
### Run test script from src/script.ts
npm run script
TODO
----
## Contributing
Just open an issue or make a pull request. All contributions are welcome.
- write about unittest (AR)
\ No newline at end of file
## Roadmap
Continually develop this prototype project. As individual modules become stable, make them into standalone libraries.
This diff is collapsed.
{
"folders":
[
{
"path": "."
}
]
}
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
{
"name": "mol-star",
"name": "mol-star-proto",
"version": "0.1.0",
"description": "Comprehensive molecular library.",
"main": "dist/molio.js",
"module": "dist/molio.esm.js",
"types": "src/index.d.ts",
"scripts": {
"lint": "./node_modules/.bin/tslint src/**/*.ts",
"build": "./node_modules/.bin/tsc",
"watch": "./node_modules/.bin/tsc -watch",
"bundle": "./node_modules/.bin/rollup -c",
"test": "./node_modules/.bin/jest",
"dist": "./node_modules/.bin/uglifyjs build/js/molio.dev.js -cm > dist/molio.js && cp build/js/molio.esm.js dist/molio.esm.js",
"script": "./node_modules/.bin/rollup build/node_modules/script.js -e fs -f cjs -o build/js/script.js",
"runscript": "node build/node_modules/script.js",
"script": "node build/node_modules/script.js",
"download-dics": "./node_modules/.bin/download -o build/dics http://mmcif.wwpdb.org/dictionaries/ascii/mmcif_pdbx_v50.dic && ./node_modules/.bin/download -o build/dics http://mmcif.wwpdb.org/dictionaries/ascii/mmcif_ddl.dic"
},
"jest": {
......@@ -34,9 +28,9 @@
"license": "MIT",
"devDependencies": {
"@types/benchmark": "^1.0.31",
"@types/express": "^4.0.39",
"@types/jest": "^21.1.8",
"@types/node": "^8.0.56",
"@types/express": "^4.11.0",
"@types/jest": "^21.1.10",
"@types/node": "^8.5.8",
"@types/node-fetch": "^1.6.7",
"benchmark": "^2.1.4",
"download-cli": "^1.0.5",
......@@ -45,12 +39,12 @@
"rollup-plugin-buble": "^0.16.0",
"rollup-plugin-commonjs": "^8.2.6",
"rollup-plugin-json": "^2.3.0",
"rollup-plugin-node-resolve": "^3.0.0",
"rollup-plugin-node-resolve": "^3.0.2",
"rollup-watch": "^4.3.1",
"ts-jest": "^21.2.4",
"tslint": "^5.8.0",
"tslint": "^5.9.1",
"typescript": "^2.6.2",
"uglify-js": "^3.2.1",
"uglify-js": "^3.3.7",
"util.promisify": "^1.0.0"
},
"dependencies": {
......
// import buble from 'rollup-plugin-buble';
import json from 'rollup-plugin-json';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
var path = require('path');
var pkg = require('./package.json');
var external = Object.keys(pkg.dependencies);
export default {
input: 'build/js/src/index.js',
plugins: [
resolve({
jsnext: true,
main: true
}),
commonjs(),
json(),
// buble()
],
output: [
{
file: "build/js/molio.dev.js",
format: 'umd',
name: 'MOLIO',
sourcemap: false
},
// {
// file: "build/js/molio.esm.js",
// format: 'es',
// sourcemap: false
// }
],
external: external,
sourcemap: false,
onwarn(warning, warn) {
if (warning.code === 'THIS_IS_UNDEFINED') return;
warn(warning); // this requires Rollup 0.46
}
};
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment