add smid dump script.
[SMMID.git] / script / dump_smids.pl
blob67361cbe6fa44efc666dc7cb51b99e397d152fe4
2 use strict;
3 use Getopt::Std;
4 use SMIDDB;
5 use JSON::XS;
7 our($opt_H, $opt_D, $opt_p);
8 getopts('H:D:p:');
10 my $schema = SMIDDB->connect("dbi:Pg:host=$opt_H;dbname=$opt_D;user=postgres;password=$opt_p");
12 my $rs = $schema->resultset("SMIDDB::Result::Compound")
13 ->search(
14 { 'me.compound_id' => { '>' => 0 },
15 'experiments.experiment_type' => 'ms_spectrum'
17 { join => 'experiments',
18 '+select' => [ 'experiments.data' ],
19 '+as' => [ 'data' ]
26 while (my $row = $rs->next()) {
27 my $data_json = $row->get_column('data');
28 # print STDERR $data_json;
30 my $data = undef;
31 if ($data_json) {
32 $data = JSON::XS->new->decode($data_json);
35 my $spectrum = $data->{ms_spectrum_mz_intensity};
36 my $adduct = $data->{ms_spectrum_adduct_fragmented};
40 print join("\t", $row->smid_id(), $row->smiles(), $adduct)."\n";
42 if (ref($spectrum) eq "ARRAY") {
43 foreach my $line (@$spectrum) {
44 print $line;