Skip to content

Commit d76fc1f

Browse files
Merge branch 'jsonvalidation' into eubic2020hackathon
2 parents c27f2bd + 1aeeb7d commit d76fc1f

59 files changed

Lines changed: 17447 additions & 468 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

MainClass.cs

Lines changed: 95 additions & 104 deletions
Large diffs are not rendered by default.

ParseInput.cs

Lines changed: 23 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class ParseInput
1414
/// <summary>
1515
/// The RAW folder path.
1616
/// </summary>
17-
public string RawDirectoryPath { get; }
17+
public string RawDirectoryPath { get; set; }
1818

1919
public string RawFilePath
2020
{
@@ -34,50 +34,50 @@ public string RawFilePath
3434
/// <summary>
3535
/// The output directory.
3636
/// </summary>
37-
public string OutputDirectory { get; }
37+
public string OutputDirectory { get; set; }
3838

3939
/// <summary>
4040
/// The output file.
4141
/// </summary>>
42-
public string OutputFile { get; }
42+
public string OutputFile { get; set; }
4343

4444
/// <summary>
4545
/// The output format.
4646
/// </summary>
47-
public OutputFormat OutputFormat { get; }
47+
public OutputFormat OutputFormat { get; set; }
4848

4949
/// <summary>
50-
/// Output the metadata.
50+
/// The metadata output format.
5151
/// </summary>
52-
public MetadataFormat OutputMetadata { get; }
52+
public MetadataFormat MetadataFormat { get; set; }
5353

5454
/// <summary>
5555
/// The metadata output file.
5656
/// </summary>>
57-
public string MetadataOutputFile { get; }
57+
public string MetadataOutputFile { get; set; }
5858

5959
/// <summary>
6060
/// Gzip the output file.
6161
/// </summary>
62-
public bool Gzip { get; }
62+
public bool Gzip { get; set; }
6363

64-
public bool NoPeakPicking { get; }
64+
public bool NoPeakPicking { get; set; }
6565

66-
public bool NoZlibCompression { get; }
66+
public bool NoZlibCompression { get; set; }
6767

68-
public LogFormat LogFormat { get; }
68+
public LogFormat LogFormat { get; set; }
6969

70-
public bool IgnoreInstrumentErrors { get; }
70+
public bool IgnoreInstrumentErrors { get; set; }
7171

7272
private S3Loader S3Loader { get; set; }
7373

74-
private string S3AccessKeyId { get; }
74+
public string S3AccessKeyId { get; set; }
7575

76-
private string S3SecretAccessKey { get; }
76+
public string S3SecretAccessKey { get; set; }
7777

78-
private string S3url { get; }
78+
public string S3Url { get; set; }
7979

80-
private readonly string bucketName;
80+
public string BucketName { get; set; }
8181

8282
/// <summary>
8383
/// The raw file name.
@@ -89,76 +89,29 @@ public string RawFilePath
8989
/// </summary>
9090
public string RawFileNameWithoutExtension { get; private set; }
9191

92-
public ParseInput(string rawFilePath, string rawDirectoryPath, string outputDirectory, string outputFile,
93-
OutputFormat outputFormat
94-
)
92+
public ParseInput()
9593
{
96-
RawFilePath = rawFilePath;
97-
RawDirectoryPath = rawDirectoryPath;
98-
OutputDirectory = outputDirectory;
99-
OutputFile = outputFile;
100-
OutputFormat = outputFormat;
101-
OutputMetadata = MetadataFormat.NONE;
94+
MetadataFormat = MetadataFormat.NONE;
95+
OutputFormat = OutputFormat.NONE;
10296
Gzip = false;
10397
NoPeakPicking = false;
10498
NoZlibCompression = false;
10599
LogFormat = LogFormat.DEFAULT;
106100
IgnoreInstrumentErrors = false;
107-
108-
if (S3url != null && S3AccessKeyId != null && S3SecretAccessKey != null && bucketName != null)
109-
if (Uri.IsWellFormedUriString(S3url, UriKind.Absolute))
110-
{
111-
InitializeS3Bucket();
112-
}
113-
else
114-
{
115-
throw new RawFileParserException("Invalid S3 url: " + S3url);
116-
}
117-
118-
if (OutputDirectory == null && OutputFile != null)
119-
OutputDirectory = Path.GetDirectoryName(OutputFile);
120101
}
121102

122-
public ParseInput(string rawFilePath, string rawDirectoryPath, string outputDirectory, string outputFile,
123-
OutputFormat outputFormat, MetadataFormat outputMetadata, string metadataOutputFile, bool gzip,
124-
bool noPeakPicking, bool noZlibCompression, LogFormat logFormat, bool ignoreInstrumentErrors, string s3url,
125-
string s3AccessKeyId, string s3SecretAccessKey, string bucketName
126-
)
103+
public ParseInput(string rawFilePath, string rawDirectoryPath, string outputDirectory, OutputFormat outputFormat
104+
) : this()
127105
{
128106
RawFilePath = rawFilePath;
129107
RawDirectoryPath = rawDirectoryPath;
130108
OutputDirectory = outputDirectory;
131-
OutputFile = outputFile;
132109
OutputFormat = outputFormat;
133-
OutputMetadata = outputMetadata;
134-
MetadataOutputFile = metadataOutputFile;
135-
Gzip = gzip;
136-
NoPeakPicking = noPeakPicking;
137-
NoZlibCompression = noZlibCompression;
138-
LogFormat = logFormat;
139-
IgnoreInstrumentErrors = ignoreInstrumentErrors;
140-
S3url = s3url;
141-
S3AccessKeyId = s3AccessKeyId;
142-
S3SecretAccessKey = s3SecretAccessKey;
143-
this.bucketName = bucketName;
144-
145-
if (S3url != null && S3AccessKeyId != null && S3SecretAccessKey != null && bucketName != null)
146-
if (Uri.IsWellFormedUriString(S3url, UriKind.Absolute))
147-
{
148-
InitializeS3Bucket();
149-
}
150-
else
151-
{
152-
throw new RawFileParserException("Invalid S3 url: " + S3url);
153-
}
154-
155-
if (OutputDirectory == null && OutputFile != null)
156-
OutputDirectory = Path.GetDirectoryName(OutputFile);
157110
}
158111

159-
private void InitializeS3Bucket()
112+
public void InitializeS3Bucket()
160113
{
161-
S3Loader = new S3Loader(S3url, S3AccessKeyId, S3SecretAccessKey, bucketName);
114+
S3Loader = new S3Loader(S3Url, S3AccessKeyId, S3SecretAccessKey, BucketName);
162115
}
163116
}
164117
}

Query/ProxiSpectrumReader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class ProxiSpectrumReader
1919
private const string PositivePolarity = "+";
2020
private const string NegativePolarity = "-";
2121

22-
private QueryParameters queryParameters;
22+
private readonly QueryParameters queryParameters;
2323

2424
public ProxiSpectrumReader(QueryParameters _queryParameters)
2525
{

Query/QueryExecutor.cs

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,23 @@ namespace ThermoRawFileParser.Query
1010
{
1111
public class QueryExecutor
1212
{
13-
public static int Run(QueryParameters parameters)
13+
public static void Run(QueryParameters parameters)
1414
{
1515
// parse the scans string
16-
HashSet<int> scanIds = ParseScanIds(parameters.scans);
16+
var scanIds = ParseScanIds(parameters.scans);
1717
parameters.scanNumbers = scanIds;
18-
19-
ProxiSpectrumReader reader = new ProxiSpectrumReader(parameters);
20-
List<PROXISpectrum> results = reader.Retrieve();
18+
19+
var reader = new ProxiSpectrumReader(parameters);
20+
var results = reader.Retrieve();
2121

2222
if (parameters.stdout)
2323
{
2424
StdOutputQueryData(results);
2525
}
26-
else
26+
else
2727
{
2828
string outputFileName;
29+
2930
// if outputFile has been defined, put output there.
3031
if (parameters.outputFile != null)
3132
{
@@ -36,34 +37,35 @@ public static int Run(QueryParameters parameters)
3637
{
3738
outputFileName = Path.GetFullPath(parameters.rawFilePath);
3839
}
39-
string directory = Path.GetDirectoryName(outputFileName);
40-
outputFileName = Path.Combine(directory ?? throw new NoNullAllowedException(), Path.GetFileNameWithoutExtension(outputFileName) + ".JSON");
40+
41+
var directory = Path.GetDirectoryName(outputFileName);
42+
43+
outputFileName = Path.Combine(directory ?? throw new NoNullAllowedException(),
44+
Path.GetFileNameWithoutExtension(outputFileName) + ".json");
45+
4146
OutputQueryData(results, outputFileName);
4247
}
43-
return 0;
4448
}
45-
46-
47-
public static void OutputQueryData(List<PROXISpectrum> outputData, string outputFileName)
49+
50+
51+
private static void OutputQueryData(List<PROXISpectrum> outputData, string outputFileName)
4852
{
49-
string outputString = JsonConvert.SerializeObject(outputData);
53+
var outputString = JsonConvert.SerializeObject(outputData);
5054
File.WriteAllText(outputFileName, outputString);
5155
}
52-
5356

54-
public static void StdOutputQueryData(List<PROXISpectrum> outputData)
57+
58+
private static void StdOutputQueryData(List<PROXISpectrum> outputData)
5559
{
56-
string outputString = JsonConvert.SerializeObject(outputData);
60+
var outputString = JsonConvert.SerializeObject(outputData);
5761
Console.Write(outputString);
5862
}
59-
60-
61-
63+
6264

6365
private static HashSet<int> ParseScanIds(string text)
6466
{
6567
if (text.Length == 0) throw new OptionException("Scan ID string invalid, nothing specified", null);
66-
foreach (char c in text)
68+
foreach (var c in text)
6769
{
6870
int ic = c;
6971
if (!((ic == ',') || (ic == '-') || (ic == ' ') || ('0' <= ic && ic <= '9')))
@@ -72,14 +74,14 @@ private static HashSet<int> ParseScanIds(string text)
7274
}
7375
}
7476

75-
string[] tokens = text.Split(new[] {','}, StringSplitOptions.None);
77+
var tokens = text.Split(new[] {','}, StringSplitOptions.None);
7678

77-
HashSet<int> container = new HashSet<int>();
79+
var container = new HashSet<int>();
7880

79-
for (int i = 0; i < tokens.Length; ++i)
81+
for (var i = 0; i < tokens.Length; ++i)
8082
{
8183
if (tokens[i].Length == 0) throw new OptionException("Scan ID string has invalid format", null);
82-
string[] rangeBoundaries = tokens[i].Split(new[] {'-'}, StringSplitOptions.None);
84+
var rangeBoundaries = tokens[i].Split(new[] {'-'}, StringSplitOptions.None);
8385
if (rangeBoundaries.Length == 1)
8486
{
8587
int rangeStart;
@@ -108,7 +110,7 @@ private static HashSet<int> ParseScanIds(string text)
108110
throw new OptionException("Scan ID string has invalid format", null);
109111
}
110112

111-
for (int l = rangeStart; l <= rangeEnd; ++l)
113+
for (var l = rangeStart; l <= rangeEnd; ++l)
112114
{
113115
container.Add(l);
114116
}
@@ -119,4 +121,4 @@ private static HashSet<int> ParseScanIds(string text)
119121
return container;
120122
}
121123
}
122-
}
124+
}

RawFileParser.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ private static void ProcessFile(ParseInput parseInput)
103103
var firstScanNumber = rawFile.RunHeaderEx.FirstSpectrum;
104104
var lastScanNumber = rawFile.RunHeaderEx.LastSpectrum;
105105

106-
if (parseInput.OutputMetadata != MetadataFormat.NONE)
106+
if (parseInput.MetadataFormat != MetadataFormat.NONE)
107107
{
108108
MetadataWriter metadataWriter;
109109
if (parseInput.MetadataOutputFile != null)
@@ -116,7 +116,7 @@ private static void ProcessFile(ParseInput parseInput)
116116
parseInput.RawFileNameWithoutExtension);
117117
}
118118

119-
switch (parseInput.OutputMetadata)
119+
switch (parseInput.MetadataFormat)
120120
{
121121
case MetadataFormat.JSON:
122122
metadataWriter.WriteJsonMetada(rawFile, firstScanNumber, lastScanNumber);

ThermoRawFileParser.csproj

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,23 @@
8080
<HintPath>packages\MathNet.Numerics.4.8.1\lib\net461\MathNet.Numerics.dll</HintPath>
8181
<Private>True</Private>
8282
</Reference>
83+
<Reference Include="Microsoft.CSharp" />
8384
<Reference Include="Mono.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null">
8485
<HintPath>packages\Mono.Options.5.3.0.1\lib\net4-client\Mono.Options.dll</HintPath>
8586
</Reference>
8687
<Reference Include="mscorlib" />
88+
<Reference Include="Namotion.Reflection, Version=1.0.8.0, Culture=neutral, PublicKeyToken=c2f9c3bdfae56102">
89+
<HintPath>packages\Namotion.Reflection.1.0.8\lib\net45\Namotion.Reflection.dll</HintPath>
90+
<Private>True</Private>
91+
</Reference>
8792
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
8893
<HintPath>packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
8994
<Private>True</Private>
9095
</Reference>
96+
<Reference Include="NJsonSchema, Version=10.1.5.0, Culture=neutral, PublicKeyToken=c2f9c3bdfae56102">
97+
<HintPath>packages\NJsonSchema.10.1.5\lib\net45\NJsonSchema.dll</HintPath>
98+
<Private>True</Private>
99+
</Reference>
91100
<Reference Include="nunit.framework, Version=3.12.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb">
92101
<HintPath>packages\NUnit.3.12.0\lib\net45\nunit.framework.dll</HintPath>
93102
<Private>True</Private>
@@ -96,7 +105,9 @@
96105
<HintPath>packages\Parquet.Net.2.0.0\lib\net451\Parquet.dll</HintPath>
97106
</Reference>
98107
<Reference Include="System" />
108+
<Reference Include="System.ComponentModel.DataAnnotations" />
99109
<Reference Include="System.Core" />
110+
<Reference Include="System.Net" />
100111
<Reference Include="System.Numerics" />
101112
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
102113
<HintPath>packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)