-
Notifications
You must be signed in to change notification settings - Fork 6
/
eclipse_tutorial.html
320 lines (285 loc) · 14.4 KB
/
eclipse_tutorial.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
<!DOCTYPE html>
<html>
<head>
<!-- Basic -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MZmine 3 - MZmine development tutorial using Eclipse IDE</title>
<meta name="description" content="MZmine 3 is an open-source software for mass spectrometry data processing.">
<meta name="author" content="Thomas F. Dyrlund">
<!-- Chrome, Firefox OS and Opera -->
<meta name="theme-color" content="#0088cc">
<!-- Windows Phone -->
<meta name="msapplication-navbutton-color" content="#0088cc">
<!-- iOS Safari -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<!-- Mobile Metas -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" href="favicon.ico" />
<!-- Web Fonts -->
<link href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800%7CShadows+Into+Light" rel="stylesheet" type="text/css">
<!-- Vendor CSS -->
<link rel="stylesheet" href="vendor/bootstrap/bootstrap.css" />
<link rel="stylesheet" href="vendor/fontawesome/css/font-awesome.css" />
<link rel="stylesheet" href="vendor/owlcarousel/owl.carousel.min.css" media="screen">
<link rel="stylesheet" href="vendor/owlcarousel/owl.theme.default.min.css" media="screen">
<link rel="stylesheet" href="vendor/magnific-popup/magnific-popup.css" media="screen">
<!-- Syntax highlighter -->
<script type="text/javascript" src="vendor/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="vendor/syntaxhighlighter/scripts/shBrushJava.js"></script>
<link type="text/css" rel="stylesheet" href="vendor/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript">SyntaxHighlighter.all();</script>
<!-- Theme CSS -->
<link rel="stylesheet" href="css/theme.css" />
<link rel="stylesheet" href="css/theme-elements.css">
<link rel="stylesheet" href="css/theme-animate.css" />
<!-- Skin CSS -->
<link rel="stylesheet" href="css/skins/default.css" />
<!-- Theme Custom CSS -->
<link rel="stylesheet" href="css/custom.css">
<!--[if IE]>
<link rel="stylesheet" href="css/ie.css">
<![endif]-->
<!--[if lte IE 8]>
<script src="vendor/respond/respond.js"></script>
<script src="vendor/excanvas/excanvas.js"></script>
<![endif]-->
</head>
<body>
<div class="body">
<header id="header">
<div class="container">
<h1 class="logo">
<a href="/">
<img alt="QC" width="427" height="99" class="logo-normal" data-sticky-width="237" data-sticky-height="55" src="img/logo.png">
<img alt="QC" width="237" height="55" class="logo-sticky" src="img/logo.png">
</a>
</h1>
<button class="btn btn-responsive-nav btn-inverse" data-toggle="collapse" data-target=".nav-main-collapse">
<i class="fa fa-bars"></i>
</button>
</div>
<div class="navbar-collapse nav-main-collapse collapse">
<div class="container">
<nav class="nav-main mega-menu">
<ul class="nav nav-pills nav-main" id="mainMenu">
<li>
<a href="/">Home</a>
</li>
<li class="dropdown mega-menu-item mega-menu-fullwidth">
<a class="dropdown-toggle" href="features.html">
Features
<i class="fa fa-angle-down"></i>
</a>
<ul class="dropdown-menu">
<li>
<div class="mega-menu-content">
<div class="row">
<div class="col-md-3">
<ul class="sub-menu">
<li>
<span class="mega-menu-sub-title">General Features</span>
<ul class="sub-menu">
<li><a href="features.html#FileFormats">Raw data file formats</a></li>
<li><a href="features.html#ImportExport">Import and Export</a></li>
<li><a href="features.html#Batch">Batch Processing</a></li>
</ul>
<br/>
<span class="mega-menu-sub-title">Raw Data Methods</span>
<ul class="sub-menu">
<li><a href="features.html#RawFiltering">Filtering & Smoothing</a></li>
<li><a href="features.html#RawDetection">Peak Detection</a></li>
</ul>
</li>
</ul>
</div>
<div class="col-md-3">
<ul class="sub-menu">
<li>
<span class="mega-menu-sub-title">Peak List Methods</span>
<ul class="sub-menu">
<li><a href="features.html#GapFilling">Gap Filling</a></li>
<li><a href="features.html#Isotopes">Isotope Detection</a></li>
<li><a href="features.html#Filtering">Filtering</a></li>
<li><a href="features.html#Alignment">Alignment</a></li>
<li><a href="features.html#Normalization">Normalization</a></li>
<li><a href="features.html#Identification">Identification</a></li>
</ul>
</li>
</ul>
</div>
<div class="col-md-3">
<ul class="sub-menu">
<li>
<span class="mega-menu-sub-title">Statistical Analysis</span>
<ul class="sub-menu">
<li><a href="features.html#CV">CV Plot</a></li>
<li><a href="features.html#Logratio">Logratio Analysis</a></li>
<li><a href="features.html#PCA">Principal Component Analysis (PCA)</a></li>
<li><a href="features.html#CDA">Curvilinear Distant Analysis (CDA)</a></li>
<li><a href="features.html#SammonsProjection">Sammon's Projection</a></li>
<li><a href="features.html#Clustering">Clustering</a></li>
<li><a href="features.html#Heatmap">Heat Map Plot</a></li>
</ul>
</li>
</ul>
</div>
<div class="col-md-3">
<ul class="sub-menu">
<li>
<span class="mega-menu-sub-title">Visualization</span>
<ul class="sub-menu">
<li><a href="features.html#TIC_XIC">TIC/XIC Visualizer</a></li>
<li><a href="features.html#Spectra">Spectra Visualizer</a></li>
<li><a href="features.html#IDA">IDA Visualizer</a></li>
<li><a href="features.html#2D">2D Visualizer</a></li>
<li><a href="features.html#3D">3D Visualizer</a></li>
<li><a href="features.html#NeutralLoss">Neutral Loss Visualizer</a></li>
<li><a href="features.html#Scatter">Scatter Plot</a></li>
<li><a href="features.html#Histogram">Histogram Plot</a></li>
<li><a href="features.html#PeakIntensity">Peak Intensity Plot</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</li>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle" href="download.html">
Download
<i class="fa fa-angle-down"></i>
</a>
<ul class="dropdown-menu">
<li><a href="download.html">Download</a></li>
<li><a href="changelog.html">Changelog</a></li>
</ul>
</li>
<li>
<a href="development.html">Development</a>
</li>
<li class="dropdown active">
<a href="support.html">
Support
<i class="fa fa-angle-down"></i>
</a>
<ul class="dropdown-menu">
<li><a href="support.html">Support</a></li>
<li><a href="documentation_overview.html">Documentation</a></li>
<li><a href="support.html#Issues">Issues</a></li>
<li><a href="support.html#Suggestions">Suggestions</a></li>
</ul>
</li>
<li>
<a href="contributors.html">Contributors</a>
</li>
</ul>
</nav>
</div>
</div>
</header>
<div role="main" class="main">
<section class="page-top">
<div class="container">
<div class="row">
<div class="col-md-12">
<ul class="breadcrumb">
<li><a href="support.html">Support</a></li>
<li class="active">Development tutorial using Eclipse IDE</li>
</ul>
</div>
</div>
</div>
</section>
<div class="container">
<h2>MZmine <strong> development tutorial using Eclipse IDE</strong></h2>
In order to start developing modules for MZmine, you will need to install a basic Java development environment (IDE). This tutorial will demonstrate how to setup the Eclipse IDE, but any other development platform can be used as well.
<br/><br/>
<h4>Step 1: Java JDK</h4>
Go to <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html"><strong>Oracle.com</strong></a> and download and install the latest version of the "Java SE Development Kit - JDK" for your OS.<br/>
<br/>
<h4>Step 2: Install Eclipse</h4>
Go to <a href="http://www.eclipse.org/downloads/"><strong>Eclipse.org</strong></a> and download and install the latest version of the "Eclipse IDE for Java Developers" for your OS.<br/>
Note: This tutorial was written using Eclipse Mars (4.5), but the procedure should basically be the same if you use any other version.
<br/><br/>
<h4>Step 3: Fork the repositories</h4>
Make a copy of the repositories you want to work with on GitHub - see <a href="https://help.github.com/articles/fork-a-repo/">this article</a>. This will allow you to freely experiment with changes without affecting the original projects.<br/>
Depending on what project you want to work on you will need to fork these repositiories:<br/>
MZmine 2: <a href="https://github.com/mzmine/mzmine2">MZmine 2</a><br/>
MZmine 3: <a href="https://github.com/mzmine/mzmine3">MZmine 3</a> and <a href="https://github.com/msdk/msdk">MSDK</a>
<br/><br/>
<h4>Step 4: Download the source codes from GitHub</h4>
In Eclipse, choose the menu item "Import" under the "File" menu and select "Project from Git" and then select "Clone URI".<br/>
<img alt="Eclipse" src="img/eclipse/Eclipse-Import.png"><br/><br/>
Enter the url to your copy of the repository and enter your username and password for GitHub under authentication.
<img alt="Eclipse" src="img/eclipse/Eclipse-SourceImport.png"><br/><br/>
On the "Branch Selection" screen, import all the branches you want to work with. If you are new then you will work with the master branch.<br/>
On the "Local Destination" screen accept the default settings.<br/><br/>
After the files have been downloaded, select to import the new project as a general project and enter a project name:<br/>
<img alt="Eclipse" src="img/eclipse/Eclipse-Wizard1.png"><br/><br/>
<img alt="Eclipse" src="img/eclipse/Eclipse-Wizard2.png"><br/>
<br/><br/>
<h4>Step 5: Configure your project in Eclipse</h4>
MZmine 2 and MZmine 3 are using the Maven tool for building and tracking external dependencies. Please right click on your project and select "Convert to Maven Project" undet the "Configure" menu. Eclipse will then download all the dependencies and build the source code.
<img alt="Eclipse" src="img/eclipse/Eclipse-Maven.png"><br/>
<br/><br/>
<strong>Note:</strong> If you are planning on working with the MSDK repository then after converting your MSDK project to a Maven Project, right click on the project and select "Import". Now select "Existing Maven Projects" under "Maven". In the next window, select all projects and click on the finish button.
<br/><br/>
<h4>Step 6: Setup debug configurations</h4>
Click on the bug icon and choose "Debug Configurations...". Here you can add new debug configurations for your project. The settings will depend on which software you will be working with. Please fill in the settings as shown below for MZmine 2 or MZmine 3.
<br/><br/>
<strong>MZmine 2:</strong><br/>
<img alt="Eclipse" src="img/eclipse/Eclipse-MZmine2-1.png"><br/>
<img alt="Eclipse" src="img/eclipse/Eclipse-MZmine2-2.png"><br/>
<br/>
<strong>MZmine 3:</strong><br/>
<img alt="Eclipse" src="img/eclipse/Eclipse-MZmine3-1.png"><br/>
<img alt="Eclipse" src="img/eclipse/Eclipse-MZmine3-2.png"><br/>
<br/>
<h4>Step 7: Contributing your changes</h4>
If you are new to GitHub then please see this <a href="https://guides.github.com/introduction/flow/">tutorial</a> to get an understanding of the workflow on getting your changes merged into the projects main repository.<br/><br/>
You contribute with your changes by commiting them to your local repository on GitHub. This is done by right clicking on your project and selecting "Team" and then "Commit...". On you repository on GitHub you can then make a pull request to have your changes merged with the main repository.<br/><br/>
<img alt="Eclipse" src="img/eclipse/Eclipse-Commit.png"><br/>
</div>
</div>
<footer class="short" id="footer">
<div class="footer-copyright">
<div class="container">
<div class="row">
<div class="col-md-12">
<p>© Copyright 2015. All Rights Reserved.</p>
</div>
</div>
</div>
</div>
</footer>
</div>
<!-- Vendor -->
<script src="vendor/jquery/jquery.js"></script>
<script src="vendor/bootstrap/bootstrap.js"></script>
<script src="vendor/common/common.js"></script>
<script src="vendor/owlcarousel/owl.carousel.js"></script>
<script src="vendor/magnific-popup/jquery.magnific-popup.js"></script>
<!-- Theme Base, Components and Settings -->
<script src="admin/assets/javascripts/theme.js"></script>
<!-- Theme Base, Components and Settings -->
<script src="js/theme.js"></script>
<!-- Theme Custom -->
<script src="js/custom.js"></script>
<!-- Theme Initialization Files -->
<script src="js/theme.init.js"></script>
<!-- Google Analytics -->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-63013892-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>