写在前面
经常出现没有写入权限,那么就赋予全部权限:
sudo chmod -R 777 xxx/
ls -l
drwxrwxrwx 5 root root 4096 7月 17 18:26 biosoft
即可。
1 下载处理文本
先从文章里确定项目编号SR,再进入:
https://www.ncbi.nlm.nih.gov/Traces/study/?acc=SRP078156
比如示例的是PRJNA398328,直接输入
https://www.ncbi.nlm.nih.gov/Traces/study/?acc=PRJNA398328
选择下载Metadata和Accession List的.txt文件,导入Linux服务器的对应目录。
这里使用FileZilla。
$ ls
SraRunTable.txt SRR_Acc_List.txt
2 查看下载文本
grep 筛选数据
查看一下文档,整理S并显示行数N
$ less -SN SraRunTable.txt
1 Run,Age,Assay Type,AvgSpotLen,Bases,BioProject,BioSample,BioSampleModel,Bytes,Center Name,Consent,DATASTORE filetype,DATASTORE provider,DATA>
2 SRR5933808,not collected,WXS,202,9582521046,PRJNA398328,SAMN07504110,Model organism or animal,4085555030,WEILL CORNELL MEDICINE,public,"fast>
3 SRR5933809,not collected,WXS,202,8418510792,PRJNA398328,SAMN07504109,Model organism or animal,3697215278,WEILL CORNELL MEDICINE,public,"fast>
4 SRR5933810,not collected,RNA-Seq,102,6355599396,PRJNA398328,SAMN07504108,Model organism or animal,2316762214,WEILL CORNELL MEDICINE,public,">
5 SRR5933811,not collected,WXS,202,5304098426,PRJNA398328,SAMN07504107,Model organism or animal,2002077896,WEILL CORNELL MEDICINE,public,"fast>
查找RNA
$ grep RNA SraRunTable.txt
image.png
结果标红
统计RNA个数
$ grep RNA SraRunTable.txt | wc
88 991 34169
88个
查看另一个文件,把前十个内容输入到id文件
$ head SRR_Acc_List.txt > id
$ ls
id SraRunTable.txt SRR_Acc_List.txt
$ cat id
SRR5933808
SRR5933809
SRR5933810
SRR5933811
SRR5933812
SRR5933813
SRR5933814
SRR5933815
SRR5933816
SRR5933817
更名一下便于查找:
$ mv SraRunTable.txt info
$ mv SRR_Acc_List.txt allid
把id中的编号再info中查找,结果显示十行(也可以 grep -c 计数)
$ grep -f id info |wc
10 120 3904
grep只想查找完全一样的数据(精确匹配)
$ grep -w SRR59338 id
即可
查找以S为开头的内容:
$ grep '^S' info
反向匹配,输出不含S开头内容:
$ grep -v '^S' info
查看抬头内容:
$ head -1 info
Run,Age,Assay Type,AvgSpotLen,Bases,BioProject,BioSample,BioSampleModel,Bytes,Center Name,Consent,DATASTORE filetype,DATASTORE provider,DATASTORE region,Experiment,Genotype,Instrument,Library Name,LibraryLayout,LibrarySelection,LibrarySource,Mouse_number,Organism,Platform,primary_tumor_index,ReleaseDate,Sample Name,sequencing_type,sex,SRA Study,strain,tissue,treatment,tumor_index,replicate_number
把,隔开转化为换行展示:
$ head -1 info | tr ',' '\n'
Run
Age
Assay Type
AvgSpotLen
Bases
BioProject
BioSample
BioSampleModel
Bytes
略
用cat显示行数
$ head -1 info | tr ',' '\n'| cat -n
1 Run
2 Age
3 Assay Type
4 AvgSpotLen
5 Bases
6 BioProject
7 BioSample
8 BioSampleModel
9 Bytes
10 Center Name
我们想要展示
34 tumor_index
这个数据,如果info没有分隔符,只有空格隔开
cut -f 34 info
由于本数据有分隔符, 所以需要这样:
$ cut -d ',' -f 34 info
SRP115453
SRP115453
SRP115453
SRP115453
SRP115453
SRP115453
略
摘选想要的部分:
$ cut -d ',' -f 1,16,22,25,27,32 info
SRR5934048,"gs.US,75bp PE",TRANSCRIPTOMIC,Mus musculus,RNAseq
SRR5934049,"gs.US,101bp PE",GENOMIC,Mus musculus,WEX
SRR5934050,"gs.US,75bp PE",TRANSCRIPTOMIC,Mus musculus,RNAseq
SRR5934051,"gs.US,101bp PE",GENOMIC,Mus musculus,WEX
把,分割改为空格分割
$ cut -d ',' -f 1,16,22,25,27,32 info | tr ',' '\t'
SRR5934047 "gs.US 101bp PE" GENOMIC Mus musculus WEX
SRR5934048 "gs.US 75bp PE" TRANSCRIPTOMIC Mus musculus RNAseq
SRR5934049 "gs.US 101bp PE" GENOMIC Mus musculus WEX
SRR5934050 "gs.US 75bp PE" TRANSCRIPTOMIC Mus musculus RNAseq
SRR5934051 "gs.US 101bp PE" GENOMIC Mus musculus WEX
使用sed也是一样的效果。
$ cut -d ',' -f 1,16,22,25,27,32 info | sed 's/,/\t/g'
在NCBI下载了人类的染色体注释文件
$ less -S Genome\ assembly\ GRCh38.p14.gtf
image.png
查看第一列
$ cut -f1 Genome\ assembly\ GRCh38.p14.gtf | head
查看唯一值
$ cut -f1 Genome\ assembly\ GRCh38.p14.gtf | sort -u | head
查看唯一值并计数
$ cut -f1 Genome\ assembly\ GRCh38.p14.gtf | sort | uniq -c
418636 NC_000001.11
370305 NC_000002.12
287682 NC_000003.12
188260 NC_000004.12
179029 NC_000005.10
208242 NC_000006.12
186504 NC_000007.14
155350 NC_000008.11
第一列排序,按照数字从小到大顺序
$ cut -f1 Genome\ assembly\ GRCh38.p14.gtf | sort | uniq -c | sort -k1,1 -n
从大到小
$ cut -f1 Genome\ assembly\ GRCh38.p14.gtf | sort | uniq -c | sort -k1,1 -n -r
查看最大前20个
$ cut -f1 Genome\ assembly\ GRCh38.p14.gtf | sort | uniq -c | sort -k1,1 -n -r | head -20
418636 NC_000001.11
370305 NC_000002.12
287682 NC_000003.12
232839 NC_000012.12
230507 NC_000017.11
227456 NC_000011.10
208242 NC_000006.12
196609 NC_000010.11
191798 NC_000009.12
188260 NC_000004.12
186504 NC_000007.14
把排序结果导出到临时文件tmp,节省计算资源
$ cut -f1 Homo\ sapiens\ genome\ assembly\ GRCh37.p13.gtf | sort | uniq -c | sort -k1,1 -n -r > tmp
展示文件第一列
$ awk '{print $1}' tmp
175001
146074
129967
111158
100965
91873
91384
90407
略
把文件变成多行
$ sum | awk '{print $1}' tmp | paste -s
175001 146074 129967 111158 100965 91873 91384 90407 90312 90036 82624 79536 76253 70037 69358 62438 55824 55133 3919538960 35421 32839 18614 13624 13552 13180 12915 12660 11201 10531 8787 5689 5071 4520 3649 3194 3170 30082829 2521 2246 1921 1888 1720 1690 1656 1517 1510 1351 1350 1350 1345 1308 1255 1222 1208 12071
添加+号
$ sum | awk '{print $1}' tmp | paste -s -d +
175001+146074+129967+111158+100965+91873+91384+90407+90312+90036+82624+79536+76253+70037+69358+62438+55824+55133+39195+38960+35421+32839+18614+13624
计算总和,bc计算算术表达式
$ sum | awk '{print $1}' tmp | paste -s -d + | bc
2022315
查看gtf文件第三列
$ cut -f3 Homo\ sapiens\ genome\ assembly\ GRCh37.p13.gtf | sort | uniq -c
1 ###
1 #!annotation-date 03/07/2022
1 #!annotation-source NCBI Homo sapiens Updated Annotation Release 105.20220307
758956 CDS
977338 exon
48705 gene 基因
1 #!genome-build-accession NCBI_Assembly:GCF_000001405.25
1 #!genome-build GRCh37.p13
1 #gtf-version 2.2
70852 start_codon
70497 stop_codon
95961 transcript 转录本
想单独查gene
$ cut -f3 Homo\ sapiens\ genome\ assembly\ GRCh37.p13.gtf | grep gene |wc
48705 48705 243525
与之前结果相符。
只想查询第三列gene
$ awk '{if($3=="gene")print}' Homo\ sapiens\ genome\ assembly\ GRCh37.p13.gtf | wc
32360 1071208 10074560
补充一些
在文本框复制命令
在Linux中:
cat > tmp
就直接把复制的内容保存在tmp文件中。
3 Linux习题
1、统计/usr/bin/目录下文件个数:
ls /usr/bin | wc -1
2、取出当前系统上所有用户的shell(/bin/bash),每种shell只显示一次,按顺序显示:
cut -d: -f7 /etc/passwd | sourt -u
按出现次数排序
cut -d: -f7 /etc/passwd | sourt | unoq -c | sort -k1,1 -n
3、取出gtf文件的第六行:
head -6 gtf | tail
4、取出/etc/passwd/文件倒数第9个用户名和shell,显示到屏幕并保存到/tmp/users文件(tee又显示又保存)
tail -9 /etc/passwd | head -1 | cut -d: f1,7 | tee /tmp/users
5、显示/etc目录下所有pa开头文件,并统计个数
ls -d /etc/pa* | wc -1
6、显示最近登录5个账号,查找现在多少人登录
last -n 5 | awk '{print $1}'
7、输出a,b,c,d中的字母a
echo "a,c,b,c" | awk -F, '{print $1}'
8、查看系统版本
cat /etc/issue
Ubuntu 22.04 LTS \n \l
9、查看环境变量‘PATH’有多少目录
echo $PATH
env | grep PATH
改为/分隔为换行分割
echo $PATH | tr ':' '\n'|wc
10 10 125
10、计数bashrc文件行数
wc .bashrc
下一篇我们就专注于数据格式的学习。
我们下一篇再见!
网友评论