Skip to content
Snippets Groups Projects
Commit 1f3a2c44 authored by Alexander Rose's avatar Alexander Rose
Browse files

read .map files as CCP4

parent ab7dd9ea
No related branches found
No related tags found
No related merge requests found
......@@ -162,12 +162,12 @@ export const UpdateTrajectory = StateAction.build({
//
const VolumeFormats = { 'ccp4': '', 'mrc': '', 'dsn6': '', 'brix': '' }
const VolumeFormats = { 'ccp4': '', 'mrc': '', 'map': '', 'dsn6': '', 'brix': '' }
type VolumeFormat = keyof typeof VolumeFormats
function getVolumeData(format: VolumeFormat, b: StateTreeBuilder.To<PluginStateObject.Data.Binary | PluginStateObject.Data.String>) {
switch (format) {
case 'ccp4': case 'mrc':
case 'ccp4': case 'mrc': case 'map':
return b.apply(StateTransforms.Data.ParseCcp4).apply(StateTransforms.Model.VolumeFromCcp4);
case 'dsn6': case 'brix':
return b.apply(StateTransforms.Data.ParseDsn6).apply(StateTransforms.Model.VolumeFromDsn6);
......@@ -200,9 +200,9 @@ export const OpenVolume = StateAction.build({
display: { name: 'Open Volume', description: 'Load a volume from file and create its default visual' },
from: PluginStateObject.Root,
params: {
file: PD.File({ accept: '.ccp4,.mrc,.dsn6,.brix'}),
file: PD.File({ accept: '.ccp4,.mrc,.map,.dsn6,.brix'}),
format: PD.Select('auto', [
['auto', 'Automatic'], ['ccp4', 'CCP4'], ['mrc', 'MRC'], ['dsn6', 'DSN6'], ['brix', 'BRIX']
['auto', 'Automatic'], ['ccp4', 'CCP4'], ['mrc', 'MRC'], ['map', 'MAP'], ['dsn6', 'DSN6'], ['brix', 'BRIX']
]),
}
})(({ params, state }, ctx: PluginContext) => {
......@@ -230,7 +230,7 @@ const DownloadDensity = StateAction.build({
'url': PD.Group({
url: PD.Text(''),
format: PD.Select('auto', [
['auto', 'Automatic'], ['ccp4', 'CCP4'], ['mrc', 'MRC'], ['dsn6', 'DSN6'], ['brix', 'BRIX']
['auto', 'Automatic'], ['ccp4', 'CCP4'], ['mrc', 'MRC'], ['map', 'MAP'], ['dsn6', 'DSN6'], ['brix', 'BRIX']
]),
}, { isFlat: true })
}, {
......
......@@ -59,7 +59,7 @@ export namespace PluginStateObject {
export namespace Format {
export class Json extends Create<any>({ name: 'JSON Data', typeClass: 'Data' }) { }
export class Cif extends Create<CifFile>({ name: 'CIF File', typeClass: 'Data' }) { }
export class Ccp4 extends Create<Ccp4File>({ name: 'CCP4/MRC File', typeClass: 'Data' }) { }
export class Ccp4 extends Create<Ccp4File>({ name: 'CCP4/MRC/MAP File', typeClass: 'Data' }) { }
export class Dsn6 extends Create<Dsn6File>({ name: 'DSN6/BRIX File', typeClass: 'Data' }) { }
}
......
......@@ -99,12 +99,12 @@ export { ParseCcp4 }
type ParseCcp4 = typeof ParseCcp4
const ParseCcp4 = PluginStateTransform.BuiltIn({
name: 'parse-ccp4',
display: { name: 'Parse CCP4/MRC', description: 'Parse CCP4/MRC from Binary data' },
display: { name: 'Parse CCP4/MRC/MAP', description: 'Parse CCP4/MRC/MAP from Binary data' },
from: [SO.Data.Binary],
to: SO.Format.Ccp4
})({
apply({ a }) {
return Task.create('Parse CCP4/MRC', async ctx => {
return Task.create('Parse CCP4/MRC/MAP', async ctx => {
const parsed = await CCP4.parse(a.data).runInContext(ctx);
if (parsed.isError) throw new Error(parsed.message);
return new SO.Format.Ccp4(parsed.result);
......
......@@ -221,7 +221,7 @@ export { VolumeFromCcp4 }
type VolumeFromCcp4 = typeof VolumeFromCcp4
const VolumeFromCcp4 = PluginStateTransform.BuiltIn({
name: 'volume-from-ccp4',
display: { name: 'Volume from CCP4/MRC', description: 'Create Volume from CCP4/MRC data' },
display: { name: 'Volume from CCP4/MRC/MAP', description: 'Create Volume from CCP4/MRC/MAP data' },
from: SO.Format.Ccp4,
to: SO.Volume.Data,
params(a) {
......@@ -231,7 +231,7 @@ const VolumeFromCcp4 = PluginStateTransform.BuiltIn({
}
})({
apply({ a, params }) {
return Task.create('Create volume from CCP4/MRC', async ctx => {
return Task.create('Create volume from CCP4/MRC/MAP', async ctx => {
const volume = await volumeFromCcp4(a.data, params).runInContext(ctx)
const props = { label: 'Volume' };
return new SO.Volume.Data(volume, props);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment