質問するログイン新規登録

質問編集履歴

5

混乱のないように、文章を修正しました。

2020/06/20 09:06

投稿

kakuko
kakuko

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 例えば、下方のXMLファイルがあり、私の手元には以下の「参照用のID listファイル」があります。ID を照合しながら、xml ファイル内に必ずるIDを検索し、その子要素として一緒に必ず記述されている特定の要素(<Attribute attribute_name="isolation_source" harmonized_name="isolation_source" display_name="isolation source">surface water</Attribute>)の</Attribute>の前のキーワード(ここではsurface water)を抽出し、元のIDとともに出力するにはどのようにすればよろしいでしょうか?linux 初心者で、またxml ファイルを扱うのも初めてで、素人の質問で申し訳ございません。記載事項に不備がございましたら、ご質問いただけましたら幸いです。【追加1】XMLファイルを処理する場合、xmllint を有効活用すべきとコメントいただきまして試行錯誤中ですが、子要素内のIDやキーワードを抽出することもできておらず、引き続き勉強中です。【追加2】XMLファイルをソースからそのままコピーしました。
3
+ 例えば、下方のXMLファイルがあり、私の手元には以下の「参照用のID listファイル」があります。inputファイルとしてこのID list 使い、xml ファイル内の<Ids>に必ず記載されているIDと照合し、もし一致した場合に、その子要素として必ず一緒に記述されている特定の要素(<Attribute attribute_name="isolation_source" harmonized_name="isolation_source" display_name="isolation source">surface water</Attribute>)の</Attribute>の前のキーワード(ここではsurface water)を抽出し、元のIDとともに出力するにはどのようにすればよろしいでしょうか?linux 初心者で、またxml ファイルを扱うのも初めてで、素人の質問で申し訳ございません。記載事項に不備がございましたら、ご質問いただけましたら幸いです。【追加1】XMLファイルを処理する場合、xmllint を有効活用すべきとコメントいただきまして試行錯誤中ですが、子要素内のIDやキーワードを抽出することもできておらず、引き続き勉強中です。【追加2】XMLファイルをソースからそのままコピーしました。
4
4
 
5
5
  ●参照するID のlist ファイル
6
6
 

4

疑問点を絞り、書式全体を修正しました。

2020/06/20 09:06

投稿

kakuko
kakuko

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,47 +1,42 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 例えば、下方のような XMLファイルがあり(処理したいデータ形式が生物のDNA 情報の登録形式に非常に似ているためそれを活用)、ここで表示させている以降も同様の形式でデータが格納されているとします。私の手元には以下の通りaccession IDだけの情報がありますが、これを照合しながら、xml ファイル内にあるID を検索し、そのID がもつ特定の要素の二つ例えばXML内のAttributes 内にある <Attribute attribute_name="isolation_source" harmonized_name="isolation_source" display_name="isolation source">surface water</Attribute><Attribute attribute_name="metagenome-source">marine metagenome</Attribute>情報をタブ区切り付与出力するにはどのようにすればよろしいでしょうか?linux 初心者で、またxml ファイルを扱うのも初めてで、素人の質問で申し訳ございません。記載事項に不備がございましたら、ご質問いただけましたら幸いです。【追加】XMLファイルを処理する場合、xmllint を有効活用すべきとコメントいただきまして、この処理方法ご教示いただけましたら幸いです
3
+ 例えば、下方のXMLファイルがあり、私の手元には以下の「参照用のID listファイル」があります。ID を照合しながら、xml ファイル内に必ずあるIDを検索し、その子要素として一緒に必ず記述されている特定の要素(<Attribute attribute_name="isolation_source" harmonized_name="isolation_source" display_name="isolation source">surface water</Attribute>)の</Attribute>の前のキーワード(ここはsurface water)を抽出、元のIDとともに出力するにはどのようにすればよろしいでしょうか?linux 初心者で、またxml ファイルを扱うのも初めてで、素人の質問で申し訳ございません。記載事項に不備がございましたら、ご質問いただけましたら幸いです。【追加】XMLファイルを処理する場合、xmllint を有効活用すべきとコメントいただきまして試行錯誤中ですが子要素内のIDやキーワードを抽出するともきておらず、引き続き勉強中です。【追加2】XMLファイルソースからそのまコピーました。
4
4
 
5
5
  ●参照するID のlist ファイル
6
6
 
7
+ SAMN03741962
7
8
  SAMN03741963
8
- SAMN03741964
9
9
 
10
10
  ●XMLファイルと照合後に出力したいlist ファイル
11
11
 
12
+ SAMN03741962^ surface water
12
- SAMN03741963^ surface water^ marine metagenome
13
+ SAMN03741963^ surface water
13
- SAMN03741964^ surface water^ marine metagenome
14
+
14
15
  *ここで「^」はタブ区切りを示しています。
15
16
 
16
17
  ### 該当のXMLファイル
17
18
 
19
+ ```XML
18
20
  <?xml version="1.0" encoding="UTF-8"?>
19
21
  <BioSampleSet>
20
- <BioSample access="public" publication_date="2015-11-08T06:44:46.060"
22
+ <BioSample access="public" publication_date="2015-11-08T00:00:00.000" last_update="2019-06-20T17:16:02.371" submission_date="2015-05-28T09:58:39.000" id="3741962" accession="SAMN03741962">
21
- last_update="2015-11-08T06:44:46.060"
22
- submission_date="2015-05-28T09:58:39.470" id="3741963"
23
- accession="SAMN03741963">
24
23
  <Ids>
25
- <Id db="BioSample" is_primary="1">SAMN03741963</Id>
24
+ <Id db="BioSample" is_primary="1">SAMN03741962</Id>
26
- <Id db_label="Sample name">BACL4 MAG-120813-bin39</Id>
25
+ <Id db_label="Sample name">BACL4 MAG-120507-bin80</Id>
27
26
  </Ids>
28
27
  <Description>
29
- <Title>Microbe sample from Actinobacteria bacterium BACL4
28
+ <Title>Microbe sample from OM182 bacterium BACL3 MAG-120507-bin80</Title>
30
- MAG-120813-bin39</Title>
31
- <Organism taxonomy_id="1655578" taxonomy_name="Actinobacteria
29
+ <Organism taxonomy_id="1655577" taxonomy_name="OM182 bacterium BACL3 MAG-120507-bin80">
32
- bacterium BACL4 MAG-120813-bin39">
33
- <OrganismName>Actinobacteria bacterium BACL4
34
- MAG-120813-bin39</OrganismName>
30
+ <OrganismName>OM182 bacterium BACL3 MAG-120507-bin80</OrganismName>
35
31
  </Organism>
36
32
  <Comment>
37
- <Paragraph>Genome assembled from metagenome sample
33
+ <Paragraph>Genome assembled from metagenome sample SAMN03351369</Paragraph>
38
- SAMN03351393</Paragraph>
39
34
  </Comment>
40
35
  </Description>
41
36
  <Owner>
42
37
  <Name>Kungliga Tekniska Hogskolan, Science for Life Laboratory</Name>
43
38
  <Contacts>
44
- <Contact email="aaa">
39
+ <Contact email="luisa.hugerth@scilifelab.se">
45
40
  <Name>
46
41
  <First>Luisa</First>
47
42
  <Last>Hugerth</Last>
@@ -55,72 +50,47 @@
55
50
  </Models>
56
51
  <Package display_name="Microbe; version 1.0">Microbe.1.0</Package>
57
52
  <Attributes>
58
- <Attribute attribute_name="strain" harmonized_name="strain"
53
+ <Attribute attribute_name="strain" harmonized_name="strain" display_name="strain">not applicable</Attribute>
59
- display_name="strain">not applicable</Attribute>
60
- <Attribute attribute_name="Salinity (PSU)">6.2</Attribute>
54
+ <Attribute attribute_name="Salinity (PSU)">6.6</Attribute>
61
- <Attribute attribute_name="depth" harmonized_name="depth"
55
+ <Attribute attribute_name="depth" harmonized_name="depth" display_name="depth">2</Attribute>
62
- display_name="depth">2</Attribute>
63
- <Attribute attribute_name="env_biome"
64
- harmonized_name="env_broad_scale" display_name="broad-scale
56
+ <Attribute attribute_name="env_biome" harmonized_name="env_broad_scale" display_name="broad-scale environmental context">Brackish water</Attribute>
65
- environmental context">Brackish water</Attribute>
66
- <Attribute attribute_name="collection_date"
67
- harmonized_name="collection_date" display_name="collection
57
+ <Attribute attribute_name="collection_date" harmonized_name="collection_date" display_name="collection date">07-May-2012</Attribute>
68
- date">13-Aug-2012</Attribute>
69
- <Attribute attribute_name="temp" harmonized_name="temp"
58
+ <Attribute attribute_name="temp" harmonized_name="temp" display_name="temperature">5.6</Attribute>
70
- display_name="temperature">18.2</Attribute>
71
59
  <Attribute attribute_name="environmental-sample">TRUE</Attribute>
72
- <Attribute attribute_name="sample_type"
73
- harmonized_name="sample_type" display_name="sample type">Metagenomic
60
+ <Attribute attribute_name="sample_type" harmonized_name="sample_type" display_name="sample type">Metagenomic Assembly</Attribute>
74
- Assembly</Attribute>
75
- <Attribute attribute_name="isolation_source"
76
- harmonized_name="isolation_source" display_name="isolation
61
+ <Attribute attribute_name="isolation_source" harmonized_name="isolation_source" display_name="isolation source">surface water</Attribute>
77
- source">surface water</Attribute>
78
- <Attribute attribute_name="geo_loc_name"
79
- harmonized_name="geo_loc_name" display_name="geographic
80
- location">Baltic Sea</Attribute>
81
- <Attribute attribute_name="lat_lon" harmonized_name="lat_lon"
62
+ <Attribute attribute_name="geo_loc_name" harmonized_name="geo_loc_name" display_name="geographic location">Baltic Sea</Attribute>
82
- display_name="latitude and longitude">56.930850 N 17.060667
63
+ <Attribute attribute_name="lat_lon" harmonized_name="lat_lon" display_name="latitude and longitude">56.930850 N 17.060667 E</Attribute>
83
- E</Attribute>
84
64
  <Attribute attribute_name="metagenomic">TRUE</Attribute>
85
65
  <Attribute attribute_name="metagenome-source">marine metagenome</Attribute>
86
- <Attribute attribute_name="isolation-source"
87
- harmonized_name="isolation_source" display_name="isolation
66
+ <Attribute attribute_name="isolation-source" harmonized_name="isolation_source" display_name="isolation source">brackish water collected from the surface of the Baltic Sea</Attribute>
88
- source">brackish water collected from the surface of the Baltic
89
- Sea</Attribute>
90
- <Attribute attribute_name="isolate" harmonized_name="isolate"
67
+ <Attribute attribute_name="isolate" harmonized_name="isolate" display_name="isolate">BACL4 MAG-120507-bin80</Attribute>
91
- display_name="isolate">BACL4 MAG-120813-bin39</Attribute>
92
68
  </Attributes>
93
69
  <Links>
94
70
  <Link target="bioproject" type="entrez" label="PRJNA273799">273799</Link>
95
71
  </Links>
96
- <Status status="live" when="2015-11-08T06:44:46.060"/>
72
+ <Status status="live" when="2015-11-08T06:44:46.013"/>
97
73
  </BioSample>
98
- <BioSample access="public" publication_date="2015-11-08T06:44:46.120"
74
+ <BioSample access="public" publication_date="2015-11-08T06:44:46.060" last_update="2015-11-08T06:44:46.060" submission_date="2015-05-28T09:58:39.470" id="3741963" accession="SAMN03741963">
99
- last_update="2015-11-08T06:44:46.120"
100
- submission_date="2015-05-28T09:58:39.527" id="3741964"
101
- accession="SAMN03741964">
102
75
  <Ids>
76
+ --
103
77
  <Ids>
104
- <Id db="BioSample" is_primary="1">SAMN03741964</Id>
78
+ <Id db="BioSample" is_primary="1">SAMN03741963</Id>
105
- <Id db_label="Sample name">BACL4 MAG-120820-bin23</Id>
79
+ <Id db_label="Sample name">BACL4 MAG-120813-bin39</Id>
106
80
  </Ids>
107
81
  <Description>
108
- <Title>Microbe sample from Actinobacteria bacterium BACL4
82
+ <Title>Microbe sample from Actinobacteria bacterium BACL4 MAG-120813-bin39</Title>
109
- MAG-120820-bin23</Title>
110
- <Organism taxonomy_id="1655579" taxonomy_name="Actinobacteria
83
+ <Organism taxonomy_id="1655578" taxonomy_name="Actinobacteria bacterium BACL4 MAG-120813-bin39">
111
- bacterium BACL4 MAG-120820-bin23">
112
- <OrganismName>Actinobacteria bacterium BACL4
84
+ <OrganismName>Actinobacteria bacterium BACL4 MAG-120813-bin39</OrganismName>
113
- MAG-120820-bin23</OrganismName>
114
85
  </Organism>
115
86
  <Comment>
116
- <Paragraph>Genome assembled from metagenome sample
87
+ <Paragraph>Genome assembled from metagenome sample SAMN03351393</Paragraph>
117
- SAMN03351395</Paragraph>
118
88
  </Comment>
119
89
  </Description>
120
90
  <Owner>
121
91
  <Name>Kungliga Tekniska Hogskolan, Science for Life Laboratory</Name>
122
92
  <Contacts>
123
- <Contact email="aaa">
93
+ <Contact email="luisa.hugerth@scilifelab.se">
124
94
  <Name>
125
95
  <First>Luisa</First>
126
96
  <Last>Hugerth</Last>
@@ -134,47 +104,30 @@
134
104
  </Models>
135
105
  <Package display_name="Microbe; version 1.0">Microbe.1.0</Package>
136
106
  <Attributes>
137
- <Attribute attribute_name="strain" harmonized_name="strain"
107
+ <Attribute attribute_name="strain" harmonized_name="strain" display_name="strain">not applicable</Attribute>
138
- display_name="strain">not applicable</Attribute>
139
108
  <Attribute attribute_name="Salinity (PSU)">6.2</Attribute>
140
- <Attribute attribute_name="depth" harmonized_name="depth"
109
+ <Attribute attribute_name="depth" harmonized_name="depth" display_name="depth">2</Attribute>
141
- display_name="depth">2</Attribute>
142
- <Attribute attribute_name="env_biome"
143
- harmonized_name="env_broad_scale" display_name="broad-scale
110
+ <Attribute attribute_name="env_biome" harmonized_name="env_broad_scale" display_name="broad-scale environmental context">Brackish water</Attribute>
144
- environmental context">Brackish water</Attribute>
145
- <Attribute attribute_name="collection_date"
146
- harmonized_name="collection_date" display_name="collection
111
+ <Attribute attribute_name="collection_date" harmonized_name="collection_date" display_name="collection date">13-Aug-2012</Attribute>
147
- date">20-Aug-2012</Attribute>
148
- <Attribute attribute_name="temp" harmonized_name="temp"
112
+ <Attribute attribute_name="temp" harmonized_name="temp" display_name="temperature">18.2</Attribute>
149
- display_name="temperature">18.4</Attribute>
150
113
  <Attribute attribute_name="environmental-sample">TRUE</Attribute>
151
- <Attribute attribute_name="sample_type"
152
- harmonized_name="sample_type" display_name="sample type">Metagenomic
114
+ <Attribute attribute_name="sample_type" harmonized_name="sample_type" display_name="sample type">Metagenomic Assembly</Attribute>
153
- Assembly</Attribute>
154
- <Attribute attribute_name="isolation_source"
155
- harmonized_name="isolation_source" display_name="isolation
115
+ <Attribute attribute_name="isolation_source" harmonized_name="isolation_source" display_name="isolation source">surface water</Attribute>
156
- source">surface water</Attribute>
157
- <Attribute attribute_name="geo_loc_name"
158
- harmonized_name="geo_loc_name" display_name="geographic
159
- location">Baltic Sea</Attribute>
160
- <Attribute attribute_name="lat_lon" harmonized_name="lat_lon"
116
+ <Attribute attribute_name="geo_loc_name" harmonized_name="geo_loc_name" display_name="geographic location">Baltic Sea</Attribute>
161
- display_name="latitude and longitude">56.930850 N 17.060667
117
+ <Attribute attribute_name="lat_lon" harmonized_name="lat_lon" display_name="latitude and longitude">56.930850 N 17.060667 E</Attribute>
162
- E</Attribute>
163
118
  <Attribute attribute_name="metagenomic">TRUE</Attribute>
164
119
  <Attribute attribute_name="metagenome-source">marine metagenome</Attribute>
165
- <Attribute attribute_name="isolation-source"
166
- harmonized_name="isolation_source" display_name="isolation
120
+ <Attribute attribute_name="isolation-source" harmonized_name="isolation_source" display_name="isolation source">brackish water collected from the surface of the Baltic Sea</Attribute>
167
- source">brackish water collected from the surface of the Baltic
168
- Sea</Attribute>
169
- <Attribute attribute_name="isolate" harmonized_name="isolate"
121
+ <Attribute attribute_name="isolate" harmonized_name="isolate" display_name="isolate">BACL4 MAG-120813-bin39</Attribute>
170
- display_name="isolate">BACL4 MAG-120820-bin23</Attribute>
171
122
  </Attributes>
172
123
  <Links>
173
124
  <Link target="bioproject" type="entrez" label="PRJNA273799">273799</Link>
174
125
  </Links>
175
- <Status status="live" when="2015-11-08T06:44:46.120"/>
126
+ <Status status="live" when="2015-11-08T06:44:46.060"/>
176
127
  </BioSample>
128
+ ```
177
129
 
130
+
178
131
  ### 試したこと
179
132
 
180
- grepsed による抽出
133
+ grepsed、xpath による抽出

3

xmllint の使用について追加しました。

2020/06/20 09:00

投稿

kakuko
kakuko

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 例えば、下方のような XMLファイルがあり(処理したいデータ形式が生物のDNA 情報の登録形式に非常に似ているため、それを活用)、ここで表示させている以降も同様の形式でデータが格納されているとします。私の手元には以下の通り「accession IDだけ」の情報がありますが、これを照合しながら、xml ファイル内にあるID を検索し、そのID がもつ特定の要素の二つ(例えばXML内のAttributes 内にある <Attribute attribute_name="isolation_source" harmonized_name="isolation_source" display_name="isolation source">surface water</Attribute> と <Attribute attribute_name="metagenome-source">marine metagenome</Attribute>)の情報をタブ区切りで付与して出力するにはどのようにすれば、よろしいでしょうか?linux 初心者で、またxml ファイルを扱うのも初めてで、素人の質問で申し訳ございませんが、まずは長くなってもlinux のコマンドで処理できればと思い、grep やsed を使いながら抽出を試みているものの、うまく実装できない状況が続いております。記載事項に不備がございましたら、ご質問いただけましたら幸いです。
4
-
3
+ 例えば、下方のような XMLファイルがあり(処理したいデータ形式が生物のDNA 情報の登録形式に非常に似ているため、それを活用)、ここで表示させている以降も同様の形式でデータが格納されているとします。私の手元には以下の通り「accession IDだけ」の情報がありますが、これを照合しながら、xml ファイル内にあるID を検索し、そのID がもつ特定の要素の二つ(例えばXML内のAttributes 内にある <Attribute attribute_name="isolation_source" harmonized_name="isolation_source" display_name="isolation source">surface water</Attribute> と <Attribute attribute_name="metagenome-source">marine metagenome</Attribute>)の情報をタブ区切りで付与して出力するにはどのようにすれば、よろしいでしょうか?linux 初心者で、またxml ファイルを扱うのも初めてで、素人の質問で申し訳ございません。記載事項に不備がございましたら、ご質問いただけましたら幸いです。【追加】XMLファイルを処理する場合、xmllint を有効活用すべきとコメントいただきまして、これでの処理方法をご教示いただけましたら幸いです。
4
+
5
5
  ●参照するID のlist ファイル
6
6
 
7
7
  SAMN03741963

2

抽出したい要素を明確にしました。

2020/06/20 07:06

投稿

kakuko
kakuko

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 例えば、下方のような XMLファイルがあり(処理したいデータ形式が生物のDNA 情報の登録形式に非常に似ているため、それを活用)、ここで表示させている以降も同様の形式でデータが格納されているとします。私の手元には以下の通り「accession IDだけ」の情報がありますが、これを照合しながら、xml ファイル内にあるID を検索し、そのID がもつ特定の要素の二つ(例えばXML内のAttributes 内にある isolation-source と metagenome-source)をタブ区切りで付与して出力するにはどのようにすれば、よろしいでしょうか?linux 初心者で、またxml ファイルを扱うのも初めてで、素人の質問で申し訳ございませんが、まずは長くなってもlinux のコマンドで処理できればと思い、grep やsed を使いながら抽出を試みているものの、うまく実装できない状況が続いております。記載事項に不備がございましたら、ご質問いただけましたら幸いです。
3
+ 例えば、下方のような XMLファイルがあり(処理したいデータ形式が生物のDNA 情報の登録形式に非常に似ているため、それを活用)、ここで表示させている以降も同様の形式でデータが格納されているとします。私の手元には以下の通り「accession IDだけ」の情報がありますが、これを照合しながら、xml ファイル内にあるID を検索し、そのID がもつ特定の要素の二つ(例えばXML内のAttributes 内にある <Attribute attribute_name="isolation_source" harmonized_name="isolation_source" display_name="isolation source">surface water</Attribute> <Attribute attribute_name="metagenome-source">marine metagenome</Attribute>の情報をタブ区切りで付与して出力するにはどのようにすれば、よろしいでしょうか?linux 初心者で、またxml ファイルを扱うのも初めてで、素人の質問で申し訳ございませんが、まずは長くなってもlinux のコマンドで処理できればと思い、grep やsed を使いながら抽出を試みているものの、うまく実装できない状況が続いております。記載事項に不備がございましたら、ご質問いただけましたら幸いです。
4
4
 
5
5
  ●参照するID のlist ファイル
6
6
 

1

質問事項の isolation source を isolation-source に修正しました。

2020/06/20 06:24

投稿

kakuko
kakuko

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 例えば、下方のような XMLファイルがあり(処理したいデータ形式が生物のDNA 情報の登録形式に非常に似ているため、それを活用)、ここで表示させている以降も同様の形式でデータが格納されているとします。私の手元には以下の通り「accession IDだけ」の情報がありますが、これを照合しながら、xml ファイル内にあるID を検索し、そのID がもつ特定の要素の二つ(例えばXML内のAttributes 内にある isolation source と metagenome-source)をタブ区切りで付与して出力するにはどのようにすれば、よろしいでしょうか?linux 初心者で、またxml ファイルを扱うのも初めてで、素人の質問で申し訳ございませんが、まずは長くなってもlinux のコマンドで処理できればと思い、grep やsed を使いながら抽出を試みているものの、うまく実装できない状況が続いております。記載事項に不備がございましたら、ご質問いただけましたら幸いです。
3
+ 例えば、下方のような XMLファイルがあり(処理したいデータ形式が生物のDNA 情報の登録形式に非常に似ているため、それを活用)、ここで表示させている以降も同様の形式でデータが格納されているとします。私の手元には以下の通り「accession IDだけ」の情報がありますが、これを照合しながら、xml ファイル内にあるID を検索し、そのID がもつ特定の要素の二つ(例えばXML内のAttributes 内にある isolation-source と metagenome-source)をタブ区切りで付与して出力するにはどのようにすれば、よろしいでしょうか?linux 初心者で、またxml ファイルを扱うのも初めてで、素人の質問で申し訳ございませんが、まずは長くなってもlinux のコマンドで処理できればと思い、grep やsed を使いながら抽出を試みているものの、うまく実装できない状況が続いております。記載事項に不備がございましたら、ご質問いただけましたら幸いです。
4
4
 
5
5
  ●参照するID のlist ファイル
6
6