原始数据框是这样的表:
S1_r1_ctrl/ S1_r2_ctrl/ S1_r3_ctrl/
sp|P38646|GRP75_HUMAN 2.960000e-06 5.680000e-06 0.000000e+00
sp|O75694-2|NU155_HUMAN 2.710000e-07 0.000000e+00 2.180000e-07
sp|Q05397-2|FAK1_HUMAN 0.000000e+00 2.380000e-07 7.330000e-06
sp|O60671-2|RAD1_HUMAN NaN NaN NaN
Run Code Online (Sandbox Code Playgroud)
我正在寻找大于零的数据帧的每列中的最小值.我试图用这个例子回答我的问题.我的代码看起来像:
df.ne(0).idxmin().to_frame('pos').assign(value=lambda d: df.lookup(d.pos, d.index))
但我仍然只得到零,我的结果看起来像这样:
pos value
S1_r1_ctrl/ sp|Q05397-2|FAK1_HUMAN 0.0
S1_r2_ctrl/ sp|O75694-2|NU155_HUMAN 0.0
S1_r3_ctrl/ sp|P38646|GRP75_HUMAN 0.0
Run Code Online (Sandbox Code Playgroud)
而不是这个:
pos value
S1_r1_ctrl/ sp|O75694-2|NU155_HUMAN 2.710000e-07
S1_r2_ctrl/ sp|Q05397-2|FAK1_HUMAN 2.380000e-07
S1_r3_ctrl/ sp|O75694-2|NU155_HUMAN 2.180000e-07
Run Code Online (Sandbox Code Playgroud)
我想数据类型可能存在问题,但我不确定.我假设ne(0)会忽略零,但事实并非如此,我很困惑.也许有更聪明的方法来找到我需要的东西.
有一个assembly.fasta包含重叠群名称和相应序列的 FASTA 文件:
>contig_1
CCAATACGGGCGCGCAGGCTTTCTATCGCGCGGCCGGCTTCGTCGAGGACGGGCGGCGCA
AGGATTACTACCGCAGCGGC
>contig_2
ATATAAACCTTATTCATCGTTTTCAGCCTAATTTTCCATTTAACAGGGATGATTTTCGTC
AAAATGCTGAGGCTTTACCAAGATTTTCTACCTTGCACCTTCAGAAAAAAATCATGGCAT
TTATAGACGAAATTCTCGAGAAA
>contig_3
CGTGATCTCGCCATTCGTGCCG
Run Code Online (Sandbox Code Playgroud)
我只想获得超过 30 个字母的重叠群,并获得一个新的 FASTA 文件,assembly.filtered.fasta其中仅包含具有重叠群名称的那些长序列,格式如下:
>contig_1
CCAATACGGGCGCGCAGGCTTTCTATCGCGCGGCCGGCTTCGTCGAGGACGGGCGGCGCA
AGGATTACTACCGCAGCGGC
>contig_2
ATATAAACCTTATTCATCGTTTTCAGCCTAATTTTCCATTTAACAGGGATGATTTTCGTC
AAAATGCTGAGGCTTTACCAAGATTTTCTACCTTGCACCTTCAGAAAAAAATCATGGCAT
TTATAGACGAAATTCTCGAGAAA
Run Code Online (Sandbox Code Playgroud) 我想Pfam_A从文件的每一行中提取信息:
item_1 ID=HJNANFJJ_180142;inference=ab initio prediction:Prodigal_v2.6.3;locus_tag=HJNANFJJ_180142;partial=01;product=unannotated protein;KEGG=K03531
item_4 ID=HJNANFJJ_87662;inference=ab initio prediction:Prodigal_v2.6.3;locus_tag=HJNANFJJ_87662;partial=10;product=unannotated protein;KEGG=K15725;Pfam_A=OEP;Resfams=adeC-adeK-oprM
item_8 ID=HJNANFJJ_328505;inference=ab initio prediction:Prodigal_v2.6.3;locus_tag=HJNANFJJ_328505;partial=11;product=unannotated protein;KEGG=K03578;Pfam_A=OB_NTP_bind
item_2 ID=HJNANFJJ_512995;inference=ab initio prediction:Prodigal_v2.6.3;locus_tag=HJNANFJJ_512995;partial=11;product=unannotated protein;KEGG=K00674;Pfam_A=Hexapep;Pfam_A=Hexapep_2;metacyc=TETHYDPICSUCC-RXN
item_0 ID=HJNANFJJ_188729;inference=ab initio prediction:Prodigal_v2.6.3;locus_tag=HJNANFJJ_188729;partial=11;product=unannotated protein
Run Code Online (Sandbox Code Playgroud)
在某些行中,此信息完全缺失,在某些行中可能会出现多次。
最后,我想得到一个这样的表,这样就不是空字段,而是将NaN多次出现的选项卡分开到不同的字段中:
item_1 NaN
item_4 OEP
item_8 OB_NTP_bind
item_2 Hexapep Hexapep_2
item_0 NaN
Run Code Online (Sandbox Code Playgroud) 我有一个文件:
# Sequence Data: seqnum=1;seqlen=3142;seqhdr="GUT_GENOME148255_1"
>1_59_1276_-
>2_1339_1842_-
>3_1873_2436_-
>4_2470_2928_-
# Sequence Data: seqnum=2;seqlen=3085;seqhdr="GUT_GENOME148255_2"
>1_3_266_-
>2_256_1038_-
# Sequence Data: seqnum=3;seqlen=3050;seqhdr="GUT_GENOME148255_3"
>1_22_1062_-
>2_1072_1746_-
>3_1767_3017_-
# Sequence Data: seqnum=4;seqlen=2934;seqhdr="GUT_GENOME148255_4"
>1_83_436_-
>2_438_1430_-
>3_1432_1872_-
>4_1986_2933_+
Run Code Online (Sandbox Code Playgroud)
我想添加与seqnum以 开头的每一行对应的数字>,这样它看起来像这样:
# Sequence Data: seqnum=1;seqlen=3142;seqhdr="GUT_GENOME148255_1"
>1-1_59_1276_-
>1-2_1339_1842_-
>1-3_1873_2436_-
>1-4_2470_2928_-
# Sequence Data: seqnum=2;seqlen=3085;seqhdr="GUT_GENOME148255_2"
>2-1_3_266_-
>2-2_256_1038_-
# Sequence Data: seqnum=3;seqlen=3050;seqhdr="GUT_GENOME148255_3"
>3-1_22_1062_-
>3-2_1072_1746_-
>3-3_1767_3017_-
# Sequence Data: seqnum=4;seqlen=2934;seqhdr="GUT_GENOME148255_4"
>4-1_83_436_-
>4-2_438_1430_-
>4-3_1432_1872_-
>4-4_1986_2933_+
Run Code Online (Sandbox Code Playgroud)
该过程应该遍历整个文件。我怀疑这是可以做到的,awk但我的努力是没有用的。