View extend.js
/**
* @desc From https://gomakethings.com/merging-objects-with-vanilla-javascript/
*/
function extend() {
// Variables
var extended = {};
var deep = false;
var i = 0;
var length = arguments.length;
View bb2.json
{
"pixelsPerMeter": 1000000,
"tileSources": [
"ftp://bigbrain.loris.ca/BigBrainRelease.2015/2D_Final_Sections/Coronal/Dzi/pm0001o.dzi"
]
}
View token_stop.js
app.post('/api/stop', tokenAuthentication, (req, res) => {
console.log('hello', req.body);
if( req.isTokenAuthenticated ) {
console.log("Stopped by", req.tokenUsername);
process.exit();
} else {
console.log("Token required");
}
res.send();
});
View bb.jsonp
f({
"tileSources": [
{
"width": 6572,
"tileSize": 256,
"getTileUrl": "function(level,x,y){ return \"ftp://bigbrain.loris.ca/BigBrainRelease.2015/2D_Final_Sections/Coronal/Dzi/pm2886o_files/\"+level+\"/\"+x+\"_\"+y+\".png\"}",
"tileOverlap": 0,
"height": 5711
}
],
View bigbrain_slice.jsonp
f()(return {
"pixelsPerMeter": 1000000,
"tileSources": [
"ftp://bigbrain.loris.ca/BigBrainRelease.2015/2D_Final_Sections/Coronal/Dzi/pm0001o.dzi"
]
};)
View plot_anat.py
def plot_anat(img,output_file=None,vmax=None):
sh=img.get_data().shape
midvox=[sh[0]/2,sh[1]/2,sh[2]/2,1]
worldmidvox=img.affine.dot(midvox)
if vmax is None:
data=img.get_data().ravel()
data=data[data>data.max()*0.2]
vmax=data[range(0,len(data),len(data)/1000)].max()
plotting.plot_anat(img,vmax=vmax,cut_coords=worldmidvox[:3],output_file=output_file)
View make-a-box.js
// the box geometry to initialise
var box=new THREE.Geometry();
// the trick to make all faces: vectors i, j and k have the coordinates of the triangles in the box
var i="011010111111100101000000001011110100".split('').map(c=>(c=='0')?0:1),
j="000000011010111111100101011010011010".split('').map(c=>(c=='0')?0:1),
k="001011001011001011001011000000111111".split('').map(c=>(c=='0')?0:1);
// this function multiplies each of the coordinates by a transformation matrix that turns them
// into an arbitrary box
View file.md

A programmatic gist

View hash.js
/*
Given the string str, produce a shorter random hash.
Different strings could produce the same hash, although
this is unlikely.
*/
function hash(str) {
var i,v0,v1,abc="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
v0=0;
for(i=0;i<str.length;i++) {
v1=str.charCodeAt(i);