Bladeren bron

read .map files as CCP4

Alexander Rose 6 jaren geleden
bovenliggende
commit
1f3a2c44a6

+ 5 - 5
src/mol-plugin/state/actions/basic.ts

@@ -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 })
         }, {

+ 1 - 1
src/mol-plugin/state/objects.ts

@@ -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' }) { }
     }
 

+ 2 - 2
src/mol-plugin/state/transforms/data.ts

@@ -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);

+ 2 - 2
src/mol-plugin/state/transforms/model.ts

@@ -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);