小编Pol*_*ova的帖子

除零之外的数据帧的每列中的最小值

原始数据框是这样的表:

                        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)会忽略零,但事实并非如此,我很困惑.也许有更聪明的方法来找到我需要的东西.

python types dataframe pandas

6
推荐指数
2
解决办法
856
查看次数

在bash中按指定的序列长度过滤出FASTA文件

有一个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)

awk fasta

1
推荐指数
1
解决办法
1031
查看次数

bash:按模式、空字段和多次出现提取子串

我想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)

regex bash awk extract

0
推荐指数
1
解决办法
60
查看次数

将另一行的前缀添加到每个字符串

我有一个文件:

# 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但我的努力是没有用的。

bash awk sed

-1
推荐指数
1
解决办法
51
查看次数

标签 统计

awk ×3

bash ×2

dataframe ×1

extract ×1

fasta ×1

pandas ×1

python ×1

regex ×1

sed ×1

types ×1