質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1099閲覧

python ループで格納したリストに定義を加えたい

22Go

総合スコア55

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/12/08 07:20

編集2018/12/08 17:11

text

1>YP_009518834.1 putative uncharacterized protein YjiT [Escherichia coli str. K-12 substr. MG1655] 2MGQSEYISWVKCTSWLSNFVNLRGLRQPDGRPLYEYHATNDEYTQLTQLLRAVGQSQSNICNRDFAACFV 3LFCSEWYRRDYERQCGWTWDPIYKKIGISFTATELGTIVPKGMEDYWLRPIRFYESERRNFLGTLFSEGG 4LPFRLLKESDSRFLAVFSRILGQYEQAKQSGFSALSLARAVIEKSALPTVFSEDTSVELISHMADNLNSL 5VLTHNLINHKEPVQQLEKVHPTWRSEFPIPLDDETGTHFLNGLLCAASVEAKPRLQKNKSTRCQFYWSEK 6HPDELRVIVSLPDEVSFPVTSEPSTTRFELAICEDGEEVSGLGPAYASLENRQATVRLRKSEVRFGRQNP 7SAGLSLVARAGGMIVGSIKLDDSEIAIGEVPLTFIVDADQWLLQGQASCSVRSSDVLIVLPRDNSNVAGF 8DGQSRAVNVLGLKALPVKGCQDVTVTANETYRIRTGREQISIGRFALNGKRASWVCHPDETFIGVPKVIS 9TLPDIQSIDVTRYTC 10 11 12>YP_009518833.1 uncharacterized protein YtiA [Escherichia coli str. K-12 substr. MG1655] 13MKEFLFLFHSTVGVIQTRKALQAAGMTFRVSDIPRDLRGGCGLCIWLTCPPGEEIQWVIPGLTESIYCQQ 14DGVWRCIAHYGVSPR 15 16>YP_009518832.1 iraD leader peptide [Escherichia coli str. K-12 substr. MG1655] 17MENEHQYSGARCSGQAAYVAKRQECAK 18 19>YP_009518831.1 protein YtiD [Escherichia coli str. K-12 substr. MG1655] 20MADYAEINNFPPELSSSGDKYFHLRNYSEYSEYTSGFFLSLMIFIKS 21 22>YP_009518830.1 protein YtiC [Escherichia coli str. K-12 substr. MG1655] 23MPVNGIFDVFDMLSIYIIYKLIVSNNTWLIMRK 24 25>YP_009518829.1 putative YjfA [Escherichia coli str. K-12 substr. MG1655] 26MHMVTYPCLTSRRFQLALIHRRVVDKRTSMHSRTASESTGARIHRPWCARHQVRPAWRCQYDKLHRVPFR 27SPELRLDSGPGYTTGSYRY 28 29>NP_418398.3 DNA-binding transcriptional repressor FabR [Escherichia coli str. K-12 substr. MG1655] 30MFILWYSASSTFGKDSDIVMGVRAQQKEKTRRSLVEAAFSQLSAERSFASLSLREVAREAGIAPTSFYRH 31FRDVDELGLTMVDESGLMLRQLMRQARQRIAKGGSVIRTSVSTFMEFIGNNPNAFRLLLRERSGTSAAFR 32AAVAREIQHFIAELADYLELENHMPRAFTEAQAEAMVTIVFSAGAEALDVGVEQRRQLEERLVLQLRMIS 33KGAYYWYRREQEKTAIIPGNVKDE 34 35

python

1with open("short.sequ.txt") as f: 2 a = [] 3 for line in f: 4 5 if line.startswith(">"): 6 print(line) 7 seq = "" 8 a = [] 9 10 else: 11 seq += "".join(line.split()) 12 count = 0 13 count += len(seq) 14 a.append(len(seq)) 15 print(a)

結果

YP_009518834.1 putative uncharacterized protein YjiT [Escherichia coli str. K-12 substr. MG1655]#1

[70]#2
[70, 140]#3
[70, 140, 210]#4
[70, 140, 210, 280]#5
[70, 140, 210, 280, 350]#6
[70, 140, 210, 280, 350, 420]#7
[70, 140, 210, 280, 350, 420, 490]#8
[70, 140, 210, 280, 350, 420, 490, 505]#9
[70, 140, 210, 280, 350, 420, 490, 505, 505]#10
[70, 140, 210, 280, 350, 420, 490, 505, 505, 505]#11

YP_009518833.1 uncharacterized protein YtiA [Escherichia coli str. K-12 substr. MG1655]#12

[70]#13
[70, 85]#14
[70, 85, 85]#15

理想は

python

1>YP_009518834.1 putative uncharacterized protein YjiT [Escherichia coli str. K-12 substr. MG1655] 2 3[70] 4[70, 140] 5[70, 140, 210] 6[70, 140, 210, 280] 7[70, 140, 210, 280, 350] 8[70, 140, 210, 280, 350, 420] 9[70, 140, 210, 280, 350, 420, 490] 10[70, 140, 210, 280, 350, 420, 490, 505] 11[70, 140, 210, 280, 350, 420, 490, 505, 505] 12[70, 140, 210, 280, 350, 420, 490, 505, 505, 505] 13[505] 14>YP_009518833.1 uncharacterized protein YtiA [Escherichia coli str. K-12 substr. MG1655] 15 16[70] 17[70, 85] 18[70, 85, 85] 19[85] 20>YP_009518832.1 iraD leader peptide [Escherichia coli str. K-12 substr. MG1655] 21 22[27] 23[27, 27] 24[27] 25>YP_009518831.1 protein YtiD [Escherichia coli str. K-12 substr. MG1655] 26 27[47] 28[47, 47] 29[47] 30>YP_009518830.1 protein YtiC [Escherichia coli str. K-12 substr. MG1655] 31 32[33] 33[33, 33] 34[33] 35>YP_009518829.1 putative YjfA [Escherichia coli str. K-12 substr. MG1655] 36 37[70] 38[70, 89] 39[70, 89, 89] 40[89] 41>NP_418398.3 DNA-binding transcriptional repressor FabR [Escherichia coli str. K-12 substr. MG1655] 42 43[70] 44[70, 140] 45[70, 140, 210] 46[70, 140, 210, 234] 47[234] 48 49max(>YP_009518834.1 putative uncharacterized protein YjiT [Escherichia coli str. K-12 substr. MG1655],505) 50 51min(>YP_009518832.1 iraD leader peptide [Escherichia coli str. K-12 substr. MG1655],27) 52>>>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2018/12/08 10:03

やりたいこと(出力結果)がよく分かりませんので具体的な欲しい結果を追記ください。
22Go

2018/12/08 16:30

#11に後に[505]、#15の後に[85]と出力し、[85]の後に最大値[>YP_009518834.1 putative uncharacterized protein YjiT [Escherichia coli str. K-12 substr. MG1655]と出力したいです
can110

2018/12/08 16:35

なるほど。「[70, 140, 210, 280, 350, 420, 490, 505, 505, 505]#11[505]」「[70, 85, 85]#15[85][>YP_009518834.1 putative uncharacterized protein YjiT [Escherichia coli str. K-12 substr. MG1655]」と出力ということですね。
22Go

2018/12/08 16:38

すみません、分かりにくかったですね。505と85という結果はショートテキストなのでこの2つしか出力されてませんが、実際は数百個の数字が出力され、その中から最大値を最後にピックアップしてその数字を出した行の名前を出力したいと思ってます。
can110

2018/12/08 16:41

はい。分かりませんので欲しい結果を「具体的な例」で示してください。
can110

2018/12/08 16:48

「>YP=A」とは何を表しているのでしょうか?入力データ例と理想の結果に食い違いがあるので理解できません。質問者さんの頭の中では何等かつながりがあり適切に変換して表現されていると思われるのですが、残念ながら第三者には分からないのです。そのあたりを認識ください。
guest

回答1

0

ベストアンサー

解決していませんがpython 出力したリスト内の数値から最大値を抽出するを参考にすると以下のようになります。最小値の実装は簡単なので割愛しています。

Python

1with open("short.sequ.txt") as f: 2 max_len,max_head = 0,"" 3 def block_func(head, seq): 4 global max_len,max_head 5 seq_len = len(seq) 6 if seq_len <= 0: return 7 last = [len(seq)] 8 print(last) 9 if seq_len > max_len: max_len,max_head = seq_len,head 10 cur_head,cur_seq,cur_list = "","",[] 11 for line in f: 12 line = line.rstrip('\n') 13 if line.startswith(">"): 14 cur_head = line 15 block_func(cur_head, cur_seq) 16 cur_seq,cur_list = "",[] 17 print(line+'\n') 18 else: 19 cur_list = cur_list + [len(cur_seq+line)] 20 cur_seq += line 21 print(cur_list) 22 block_func(cur_head, cur_seq) 23 print(max_head, max_len)

投稿2018/12/09 00:48

can110

総合スコア38233

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

22Go

2018/12/09 16:22

すみません、4行目のglobalはどうゆう意味を成すのでしょうか?
can110

2018/12/10 00:26

グローバル変数にアクセスすることを意味します。 詳細は「python global 変数」なりで検索、確認ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問